Maison  >  Article  >  développement back-end  >  Pourquoi php ne convient-il pas aux grands projets ?

Pourquoi php ne convient-il pas aux grands projets ?

青灯夜游
青灯夜游original
2019-10-12 14:48:445190parcourir

Pourquoi php ne convient-il pas aux grands projets ?

Pourquoi PHP n'est-il pas adapté aux grands projets ?

1. Mauvaise prise en charge de la récursion

La récursion est un mécanisme permettant aux fonctions de s'appeler elles-mêmes. Il s’agit d’une fonctionnalité puissante qui peut transformer quelque chose de complexe en quelque chose de très simple. Un exemple d’utilisation de la récursion est le tri rapide. Malheureusement, PHP n'est pas très bon en récursivité. Zeev, un développeur PHP, a déclaré : « PHP 4.0 (Zend) utilise une approche par pile pour les données denses plutôt qu'une approche par tas. Cela signifie que le nombre de fonctions récursives qu'il peut tolérer est nettement moins limité que les autres langages. » . C'est une très mauvaise excuse. Chaque langage de programmation doit fournir un bon support de récursivité.

2. De nombreux modules PHP ne sont pas thread-safe

Il y a quelques années, Apache a publié la version 2.0 du serveur Web. Cette version prend en charge le mode multi-threading, dans lequel une partie du logiciel peut exécuter plusieurs parties en même temps. L'inventeur de PHP affirme que le cœur de PHP est thread-safe, mais que les modules non essentiels ne le sont peut-être pas. Mais neuf fois sur dix, vous souhaitez utiliser ce module dans un script PHP, mais cela rend votre script incompatible avec le mode multithread d'Apache. C'est pourquoi l'équipe PHP déconseille d'exécuter PHP en mode multithread d'Apache 2. La mauvaise prise en charge du mode multithread par PHP est souvent citée comme l'une des raisons pour lesquelles Apache 2 reste impopulaire.

3. PHP n'est pas solide pour des raisons commerciales

En utilisant le cache, les performances de PHP peuvent être augmentées de 500 % [voir test de référence]. Alors pourquoi la mise en cache n'est-elle pas intégrée à PHP ? Parce que Zend, le fabricant de PHP, vend son propre accélérateur Zend, ils ne veulent donc bien sûr pas abandonner leur produit commercial.

Mais il existe une autre option : APC. (Zend a lancé plus tard Zend Optimizer, un accélérateur - traducteur gratuit)

4, Pas standard Le caractère de format de date

De nombreux programmeurs connaissent le caractère de format de date, qui vient d'UNIX et du langage C. Plusieurs autres langages de programmation ont adopté cette norme, mais curieusement, PHP possède son propre jeu de caractères de format de date totalement incompatibles. En C, "%j" représente le jour de l'année, et en PHP il représente le jour du mois. Cependant, pour rendre les choses encore plus confuses : la fonction strftime et la fonction date_format de Smarty (un moteur de modèles PHP populaire) utilisent des caractères de formatage C/UNIX.

5. Licences déroutantes

Vous pensez peut-être que PHP est gratuit, et que tous les modules PHP mentionnés dans le manuel sont également gratuits. Faux! Par exemple, si vous souhaitez générer des fichiers PDF en PHP, vous trouverez deux modules dans le manuel : PDF et ClibPDF. Mais ces deux produits sont sous licence commerciale. Ainsi, pour chaque module que vous utilisez, vous devez vous assurer que vous acceptez sa licence.

6. Règles de dénomination des fonctions incohérentes

Certains noms de fonctions sont composés de plusieurs mots. Il existe généralement trois habitudes de combinaisons de mots :

● Épissage direct : getnumberoffiles

● Séparés par des traits de soulignement : get_number_of_files

● Règle de Camel : getNumberOfFiles

La plupart parmi eux Choisissez une des langues. Mais PHP est utilisé.

Par exemple, si vous souhaitez convertir certains caractères spéciaux en entités HTML, vous utiliserez la fonction htmlentities (épissage direct de mots). Si vous souhaitez utiliser la fonctionnalité inverse, vous devez utiliser son petit frère html_entity_decode. Pour une raison particulière, le nom de cette fonction comporte des mots séparés par des traits de soulignement. Comment est-ce possible ? Vous savez qu'il existe une fonction appelée strpad. Ou est-il str_pad ? À chaque fois, vous devez vérifier quel est le symbole ou attendre une erreur. Les fonctions ne sont pas sensibles à la casse, donc pour PHP, il n'y a aucune différence entre rawurldecode et RawUrlDecode. C’est également mauvais car les deux sont utilisés et leur apparence est différente, ce qui déroute le lecteur.

7. L'enfer des citations magiques

La citation magique peut protéger les scripts PHP des attaques par injection SQL. C'est bien. Mais pour certaines raisons, vous pouvez désactiver cette configuration dans le php.ini. Donc, si vous souhaitez écrire un script flexible, vous devez toujours vérifier si les références magiques sont activées ou désactivées. Une telle « fonctionnalité » est censée faciliter la programmation, mais en fait, elle la rend plus compliquée.

Résumé

Pour de très petits projets, cela peut être un langage de programmation très satisfaisant. Mais pour les projets plus importants et plus complexes, PHP montre sa faiblesse.

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn