Ce que pourrait ĂȘtre la bibliothĂšque PHP standard

Chaque article critiquant PHP, suivi d'une explication de la raison pour laquelle le "$" en notation variable gĂąche la syntaxe, est sĂ»r de vous dire Ă  quel point le nom des fonctions est mĂ©diocre dans le noyau et les extensions de PHP . Et si "$" reste Ă  jamais dans le standard du langage et dans nos cƓurs (ne serait-ce que pour rappeler le bon vieux PHP), alors il est grand temps de faire quelque chose avec la dĂ©nomination des fonctions.





TLDR;

L'auteur propose ses propres rĂšgles pour nommer les fonctions centrales PHP et leur distribution par espaces de noms.





BibliothĂšque PHP standard

Tout d'abord, je vais vous parler un peu de la confusion terminologique que j'introduis délibérément dans cet article.





La bibliothÚque standard PHP (SPL) existe déjà en tant qu'extension autonome . SPL fournit des structures de données, des exceptions, des itérateurs et bien plus encore, mais cela n'a rien à voir avec les fonctions de base, telles que les fonctions permettant de travailler avec des chaßnes . Ils, à mon avis, loin du dispositif de l'interpréteur PHP, existent simplement quelque part dans le noyau et font en quelque sorte partie du standard du langage.





Je crois que les fonctions de base devraient ĂȘtre sĂ©parĂ©es en une extension distincte et le nom le plus appropriĂ© serait la bibliothĂšque PHP standard.





ProblĂšmes

Il existe de nombreuses lacunes dans la dénomination des fonctions et, en général, dans leur organisation. Les fonctions permettant de travailler avec des chaßnes sont un exemple de manuel , je les examinerai donc ci-dessous.





ProblĂšmes les plus notables:





  1. il existe plusieurs approches pour nommer en mĂȘme temps: avec le prĂ©fixe "str_" ( str_split ), avec le prĂ©fixe "str" ​​( strrev ), avec le prĂ©fixe "substr_" ( substr_compare ), sans aucun prĂ©fixe ( trim );





  2. les fonctions homogÚnes ont des arguments avec des noms différents, par exemple, dans strncmp il y a deux arguments: "str1" et "str2", dans strnatcasecmp : "string1" et "string2", et dans substr_compare : "haystack" et "aiguille";





  3. — implode explode;





  4. : strtr, strncmp, strpbrk, strrchr ..;





  5. , , substr_replace ;





  6. false , , strrpos;





  7. : soundex, levenshtein ..





, . , . , , — «‎ ».





, html- . , , , .





, , — . , , , , , PHP , . ? , , .





.
  1. PHP 8.2 — ;





  2. PHP 8.3 — , , , ;





  3. PHP 9 — deprecated, , legacy ,





  4. PHP 10 — end of life legacy .





, 7 8 - 5 , , 10 .





. — .





, , . , , . «‎\», .





- PSR-4. «‎Php», . , «‎Php\Spl».





: PSR-12 .





  1. - , . ,   «‎str_» «‎str», .





  2. lowerCamelCase.





  3. . .





  4. . .





  5. , , .





. sscanf , null. , .





  IDE , .





  1. .





  2. . «‎mixed» .





  3. union- nullable-.





  4. «‎null» , .





  5. .





proof of concept , , , — https://github.com/marvin255/php-spl-proposal/blob/master/src/StringUtilities.php.





— .





. , , : , IDE , cms.





.





strnatcmp(“test1”, “test2”);
//  
StringUtilities::compareUsingNaturalOrder(“test1”, “test2”);
      
      



str_contains(”test”, “t”);
//  
StringUtilities::contains(”test”, “t”);
      
      



, , , . , , — .





, json , , . , , — . .





- . , , PHP.





. , , PHP 7 8, .





Avec mon article, je voulais juste provoquer un dialogue et semer le doute. Quelqu'un doit le faire, et je suis sûr que c'est la communauté qui devrait pousser les responsables à penser que ces changements sont inévitables.








All Articles