O que a Biblioteca PHP padrão poderia ser

Cada artigo criticando o PHP, seguido por uma explicação de por que o "$" na notação de variável bagunça a sintaxe, certamente contará a você como a nomenclatura de funções é ruim no núcleo e nas extensões do PHP . E se "$" permanecer no padrão da linguagem e em nossos corações para sempre (mesmo que apenas como um lembrete do bom e velho PHP), então é hora de fazer algo com a nomenclatura de funções.





TLDR;

O autor propõe suas próprias regras para nomear funções centrais do PHP e sua distribuição por namespaces.





Biblioteca PHP padrão

Em primeiro lugar, vou falar um pouco sobre a confusão terminológica que introduzo deliberadamente neste artigo.





A Standard PHP Library (SPL) já existe como uma extensão independente . O SPL fornece estruturas de dados, exceções, iteradores e muito mais, mas não tem nada a ver com funções básicas, como funções para trabalhar com strings . Eles, na minha opinião, longe do dispositivo do interpretador PHP, simplesmente existem em algum lugar no kernel e são, por assim dizer, parte do padrão da linguagem.





Eu acredito que as funções básicas devem ser separadas em uma extensão separada e o nome mais apropriado para isso seria a Biblioteca PHP padrão.





Problemas

Existem muitas lacunas na nomenclatura das funções e, em geral, na sua organização. As funções para trabalhar com strings são um exemplo de livro didático , portanto, irei considerá-las a seguir.





Problemas mais notáveis:





  1. : «‎str_» (str_split), «‎str» (strrev), «‎substr_» (substr_compare), - (trim);





  2. , , strncmp : «‎str1» «‎str2», strnatcasecmp: «‎string1» «‎string2», substr_compare: «‎haystack» «‎needle»;





  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, .





Com o meu artigo, queria apenas provocar um diálogo e plantar as sementes da dúvida. Alguém tem que fazer isso, e tenho certeza que é a comunidade que deve levar os mantenedores a pensar que essas mudanças são inevitáveis.








All Articles