Theres aucune raison que vous ne pouvez pas utiliser le PHP pour les grands projets. Après tout, Facebook est construit sur PHP. Il y aura des problèmes, cependant, mais il y a des problèmes avec tout grand projet.
Ce qui fait de PHP est si répandue de la faible barrière à l'entrée et à bas prix d'hébergement. Il fonctionne comme une extension d'Apache et vous pouvez très bien juste commencer à coder. Si vous accédez à plus d'entreprise plates-formes telles que .Net ou Java, ils ont beaucoup plus de barrière à l'entrée, mais ils viennent aussi avec beaucoup d'infrastructures pour vous aider à faire des applications que l'échelle.
Par exemple, l'abstraction de base de données en PHP est (à mon humble avis) lamentable. C'est spécifique au fournisseur. Avec MySQL, les gens ont tendance à faire des choses comme:
function get_users($surname) {
mysql_query("select * from users where surname = '$surname'");
...
}
ce qui est mauvais pour plusieurs raisons:
- Il fait d'une mauvaise utilisation du cache de requêtes;
- Il ne gère pas s'échapper de caractères (qui, bien sûr, peut être fait avec
mysql_escape_string()
mais vous serez surpris de voir combien souvent, les gens ne font pas cela); et
- Il est assez facile de code de façon à permettre des attaques par injection SQL.
Personnellement, je préfère mysqli pour toutes les raisons ci-dessus, mais il a ses propres problèmes: à savoir que l'utilisation de champs LONGTEXT accidents de mysql et l'a fait depuis au moins 2005, avec toujours pas de fix (oui je l'ai et plusieurs autres ont soulevé un bug).
Comparez cela à Java (avec lequel je suis plus familier) et JPA ou Ibatis sont infiniment mieux ORM solutions avec la hausse des coûts de démarrage, mais ils vont vous aider au niveau d'une entreprise.
Si vous n'êtes pas interdit de faire de grands projets sur PHP. Il est simplement plus difficile que vous avez à faire de plus en plus le travail vous-même à reproduire ce que les autres plateformes de vous offrir.
Cela étant dit, PHP + memcached/TTB + beanstalkd va un long chemin.
Oh que c'est l'autre problème: PHP n'est pas vraiment de fond de soutien de traitement ou d'enfiler. Vous avez besoin d'autre chose pour que la (ou des scripts autonomes). Si vous utilisez autre chose, pourquoi ne pas l'utiliser pour le Web des trucs aussi (par exemple, Java, Ruby, .Net, etc)?