Quelle est une bonne façon de me familiariser avec PHP, provenant d'un arrière-plan ASP.NET? [fermé]

10

Actuellement, je suis très à l'aise avec la création d'outils / d'applications Web dans un environnement ASP.NET. Je ne cherche pas vraiment à quitter tbh, car j'aime vraiment C #, ASP.NET, MVC 3, Visual Studio, etc.

Cependant, en ce moment, je ne sais presque rien de PHP et cela semble être une lacune que je voudrais corriger.

Existe-t-il des livres (ou d'autres méthodes d'apprentissage) qui seraient une bonne ressource pour apprendre PHP? Évidemment, il y a beaucoup de livres PHP débutants, mais je suis déjà à l'aise avec une grande partie de ce qui est impliqué dans la construction d'une page Web, et intéressé à me concentrer sur PHP lui-même qui pourrait ne pas être compatible avec la portée de certains livres PHP débutants.

J'ai parcouru un peu le manuel PHP, et il ne semble pas se dérouler aussi facilement que cela pourrait être idéal. Existe-t-il un livre PHP débutant qui serait approprié? Je manque la cohésion que la plupart des livres contiennent lorsque je regarde ces échantillons. Il y a beaucoup d'informations en plus, mais cela ressemble plus à une référence lors du codage qu'à un véhicule d'apprentissage principal.

Eric
la source
5
Pourquoi pensez-vous que ne pas connaître PHP est une lacune que vous devez corriger. La connaissance de Rails, Django, J2EE, node.js, etc. n'est-elle pas une lacune que vous devez corriger? Existe-t-il une réelle demande pour vous de connaître et d'utiliser PHP dans votre ligne de travail actuelle?
Raynos
1
@Raynos Eh bien la popularité de php est plus grande que rails, django, node.js combinés ...
yannis
Pourquoi (pas une flamme) voulez-vous vous améliorer avec PHP? Est-ce pour apprendre à se développer dans un environnement plus dynamique et interprété ou plus simplement parce qu'il y en a tellement?
sbrenton
1
@Raynos - part de marché. Les chances que certaines connaissances sur php soient utiles pour comparer des solutions, évaluer un problème, aider un ami, etc. sont plus élevées que les exemples que vous avez énumérés imo. Je n'ai aucune envie de m'éloigner d'asp.net, donc connaître le "meilleur" environnement alternatif est moins utile que de connaître le plus populaire.
Eric
1
Entrez dans MVC3 qui pourrait être une bonne première étape
Daniel Little

Réponses:

7

La meilleure ressource pour apprendre PHP est le manuel PHP . Il est extrêmement bien écrit et bien structuré, et c'est l'un des plus grands atouts de la communauté PHP. Si vous êtes confiant avec ASP.net, le manuel est suffisant pour vous aider à démarrer.

Avant de commencer à lire, vous devez configurer une pile PHP. Vous pouvez installer Apache, PHP et votre base de données préférée (SQLServer est très bien) par vous-même (c'est extrêmement facile) ou vous pouvez configurer une pile prête à l'emploi comme XAMPP . XAMPP installera:

tout d'un coup (plus quelques autres trucs). Une bibliothèque importante qui manque est phpUnit , qui vous aidera évidemment avec les tests unitaires.

Ensuite, vous devez installer un IDE, vos choix évidents sont Eclipse Classic avec les outils de développement PHP (PDT) ou Netbeans pour PHP . Il y en a beaucoup d'autres, mais je recommande ces deux-là. Je les utilise tous les deux, si vous ne pouvez pas choisir entre eux, Netbeans est un peu plus facile à maîtriser, mais vous devez vraiment évaluer les deux et décider par vous-même lequel vous convient le mieux - je n'ai pas travaillé avec Visual Studio dans longtemps et je ne sais vraiment pas quel IDE peut vous sembler le plus familier.

Lorsque vous aurez dépassé les bases du manuel, vous devriez commencer à penser à un framework MVC. Encore une fois, j'en recommanderai deux:

Zend Framework est la bête et CodeIgniter est la beauté, si vous me permettez une métaphore idiote. Zend Framework a une courbe d'apprentissage abrupte, est soutenu par Zend (la société derrière PHP ), et vous pouvez presque tout faire avec. CodeIgniter est beaucoup plus facile à comprendre, a une belle documentation pour les débutants et est assez populaire. Mais la plupart de sa base de code est de la merde obsolète, car ils supportaient PHP4 il n'y a pas si longtemps.

Pour un débutant, le choix évident est CodeIgniter, mais ne vous y attardez pas. Utilisez-le comme outil d'apprentissage et passez à Zend Framework dès que possible. Encore une fois, il y a beaucoup plus de frameworks MVC dans le monde PHP, mais ces deux-là sont ceux que je recommande.

En ce qui concerne les livres, un excellent livre non débutant est PHP Objects, Patterns and Practice . Les livres PHP de Sitepoint sont toujours un plaisir à lire. Si vous tombez amoureux de PHP, vous devriez vraiment envisager un abonnement à PHP Architect .

Enfin, consultez cette grande discussion sur les raisons purement techniques de PHP comme premier choix .


Mise à jour: quelques ressources en ligne supplémentaires, qui ciblent principalement les non-débutants:

et si, pour une raison étrange, vous voulez jouer avec PHP sur IIS au lieu d'Apache, un bon point de départ est le PHP de Microsoft sur Windows . PHP sur IIS fonctionne et est un choix valable en particulier pour un développeur .Net, mais vous devriez vraiment aller avec Apache (et MySQL ou PostgreSQL au lieu de SQLServer) pour obtenir l' expérience PHP complète et également vous assurer que vos compétences sont portables sur n'importe quel autre populaire OS. Vous ne voulez pas manquer la joie de mod_rewrite .


Note personnelle: Il y a beaucoup de haine flottant pour PHP, une partie est justifiée . Si vous décidez de vous lancer, vous devez être extrêmement critique à l'égard des différentes ressources PHP, scripts, bibliothèques que vous rencontrerez en cours de route, il y a trop de conneries et il est impossible pour un débutant de faire la différence. La grande popularité de PHP peut être traduite en une communauté très grande et utile, une grande commercialisation de vos compétences, des millions et des millions de blogs, mais elle peut également être traduite en quelques milliers de téraoctets de code merdique.

yannis
la source
2

Yannis a beaucoup de bonnes choses à dire là-bas, mais j'ai lu, Construisez votre propre site Web basé sur une base de données, 4e édition , et il était rempli de tout ce que je devais savoir pour commencer sur la bonne voie pour développer des applications Web PHP professionnelles.

Je travaillais également exclusivement sur .NET avant de commencer à travailler sur PHP. PHP est beaucoup plus facile à utiliser, mais présente des problèmes particuliers lors du développement d'applications à grande échelle et ce livre vous aide à démarrer.

Un problème pour moi était que la façon dont PHP n'est pas strictement un langage orienté objet. Il a toutes sortes de fonctions sous forme procédurale et sous forme orientée objet et il faut un peu de temps pour s'y habituer, provenant d'un langage où tout est organisé en classes et espaces de noms.

Un autre était la facilité avec laquelle vous pouvez tout mélanger en PHP, ce qui rend les choses beaucoup plus difficiles. Dans .NET, les outils que vous utilisez, tels que Visual Studio, vous guident dans la pratique de bonnes normes de codage en effectuant une partie du travail pour vous. Habituellement, une page .aspx aurait son balisage HTML et son code C # séparés en deux fichiers.

Si vous êtes un grand utilisateur des outils .NET, et préférez travailler avec des contrôles ASP.NET, un autre problème est pour vous le manque de contrôles (GridView, etc.) en PHP. Je sais qu'il y a beaucoup de bibliothèques / frameworks qui vous donnent quelque chose de similaire mais ils ne font pas exactement partie du package PHP de base.

Un autre problème pour moi était de savoir comment en PHP, il y a une utilisation intensive des tableaux et des hachages servant plus comme des collections dans .NET. Ils sont partout et il serait bon de s'habituer au fait que les tableaux ne sont pas seulement une liste ordonnée du même type d'objets / unités scalaires. Ils peuvent servir de collection d'objets pour héberger toutes sortes de choses.

Je peux continuer encore et encore, mais pour mentionner l'une des principales choses que j'ai trouvées très particulières à PHP (je ne sais pas si cela pourrait également être commun dans d'autres langages), c'est la fréquence à laquelle les fonctions "include" (et connexes) sont utilisées si communément. Je peux dire que le livre de Sitepoint peut vous mettre au courant de tout cela.

tsega
la source
J'ai un lien vers les livres php de Sitepoint dans ma réponse, ils sont tous excellents. Pourriez-vous développer un peu votre réponse pour nous parler de ce que peculiar issues when developing large scale applicationsvous avez identifié? Étant donné que vous avez un arrière-plan .net en tant qu'op, il serait utile de savoir ce que les gens .net pensent être particulier à propos de php.
yannis
OK Yannis, un problème pour moi était la façon dont PHP n'est pas strictement orienté objet, il avait toutes sortes de fonctions sous forme procédurale et sous forme orientée objet et cela prenait un peu de temps pour s'habituer à venir d'un langage qui était si organisé en non seulement dans juste des classes mais tous ces espaces de noms et tout.
tsega
Hmmm, c'est un problème général, pas seulement when developing large scale applications. Quoi qu'il en soit, je pensais davantage aux problèmes conceptuels et d'approche, comme PHP adopte une approche complètement différente de .Net sur les problèmes de mise à l'échelle, quelque chose comme ça. J'ai très peu d'expérience avec .Net, donc je serais intéressé de découvrir ce que les gens de .Net trouvent conceptuellement particulier lorsqu'ils viennent sur PHP. Mais des choses comme le fait que PHP est multi-paradigme sont à prévoir, bien sûr.
yannis
1
En termes d'approches, la plupart des développeurs ASP.NET ont tendance à utiliser des contrôles personnalisés (composants - qui sont une combinaison de contrôles HTML avec Javascript et du code côté serveur) pour développer leurs applications "à grande échelle" (gourmandes en données). Cela est principalement dû au fait que la plupart des développeurs ASP.NET sont réellement passés au développement Web à partir du développement d'applications de bureau en utilisant presque les mêmes outils. Par conséquent, la plupart recherchent des moyens de traduire leurs compétences déjà acquises de travail avec des contrôles personnalisés pour s'adapter au développement Web.
tsega
Un très bon IDE à obtenir avec ce livre est Netbeans . Le débogage PHP est aussi bon que possible.
tsega