Vejo referências constantes ao "Caminho", como descrições de uma estrutura ou aplicativo específico como "Pythonic", uma pessoa como um "hacker Perl" ou "código Ruby verdadeiro", mas onde estão os "hackers PHP" os aplicativos "PHP-ic", o "verdadeiro estilo PHP"?
Isso me fez pensar - o PHP ainda tem um estilo definido? Dizer que o PHP é facilmente "mutável" para outros estilos não conta, pois o mesmo vale para qualquer linguagem razoável.
Qualquer entrada muito apreciada.
php
language-discussion
Jonathan Chan
fonte
fonte
Respostas:
Ao contrário de muitas outras linguagens de programação, o PHP não tem um pensamento unificador ou um conjunto de idéias principais: ele começou como um conjunto muito pragmático de scripts perl, e os recursos foram adicionados conforme necessário, sem muito processo de design formal. O resultado é uma linguagem bastante útil e completa, mas não muito consistente por si só. A imensa popularidade da linguagem piora as coisas; assim que um novo recurso é introduzido, ele é praticamente gravado, porque todo mundo começa a usá-lo. Assim, alguns erros de design foram consolidados, e a equipe do PHP tem muita dificuldade em fazer com que as pessoas se afastem deles -
register_globals
emagic_quotes
são apenas dois exemplos de coisas que pareciam boas idéias na época, mas que se tornaram desenfreadas.Outro fator é a cultura que cresceu em torno do PHP. Quando sua popularidade começou a crescer, o caso de uso típico do PHP era adicionar pequenos trechos da funcionalidade do servidor em documentos HTML estáticos. Uma grande parte do público-alvo era de entusiastas e não programadores que usavam o PHP para adicionar um pouco de coisas dinâmicas a seus sites estáticos. A cultura resultante é muito pragmática, sem muito interesse em estabelecer uma 'maneira adequada'; Embora seja possível escrever PHP bastante elegante, grande parte da comunidade de usuários simplesmente não se interessa muito, desde que funcione.
Por outro lado, linguagens como python, ruby, Lisp, C #, Haskell e outras tiveram uma filosofia desde o início, e a comunidade geralmente a adota e empurra a linguagem para que ela cumpra suas promessas. (Caso esteja interessado, digite
import this
uma sessão python interativa). Ter uma filosofia significa que há uma diretriz para o uso e a extensão do idioma, e isso também leva a uma comunidade mais homogênea - se você não concorda com a filosofia, é mais provável que você simplesmente se afaste e encontre uma que se encaixe melhor ; é mais provável que a comunidade resultante chegue a consenso sobre todo o tipo de coisas.Dito isto, o PHP tem pontos fortes e fracos, além de casos extremos obscuros; escrever código PHP idiomático significa usar os pontos fortes e evitar os pontos fracos e obscuros, como em qualquer outra linguagem.
fonte
Acho que quando as pessoas dizem o caminho do PHP, ele tem um peso negativo, esse é o termo que usamos em uma loja de poliolefinas (Python, C #, Ruby). Tais como "faça-o-e-jogue-para fora", como ele poderia ter feito, vazamentos de identificadores de arquivo, vulnerabilidades de injeção de SQL, loops aninhados muito profundos, funções de 3000 linhas e ainda serão classificados como ' Maneira PHP '. Se, em uma revisão por pares, alguém me dissesse que o código é muito 'PHP-way', eu ficaria profundamente ofendido.
Aprecio que isso causará algumas chamas, por isso reconheço que há pessoas conhecidas por produzir um bom código PHP, e o PHP é usado em alguns dos principais sites de produção. Só estou dizendo o que a multidão pensa e vê com mais frequência, a opinião é transmitida pelos atos da maioria, não da minoria.
fonte
Se existe uma "maneira php" é "Apenas faça!".
Embora o php possua todas as construções OO modernas, Classes, Espaços de Nome dos Módulos, Introspecção etc., além de todos os itens de programação dinâmica geralmente associados a linguagens mais fashoinable, como Python. Você raramente os vê sendo usados apenas por isso, ou vê programadores de php obcecados com a "pureza" de sua implementação.
Não tenho ideia de por que deveria haver uma diferença cultural - mas existe.
Existem vários horrores por aí e isso talvez reflita que muito código "php" é "My First Webapp" ou mesmo "My First Program".
Pessoalmente, acho muito fácil ler / entender código php profissionalmente escrito, geralmente é muito mais fácil ler do que aplicativos Java em todas as suas classes Factory e metade da lógica em arquivos XML.
fonte
Eu diria que o modo PHP é o "Programador de Fita Adesiva" - envie-o rapidamente, envie-o rapidamente, preocupe-se com tudo mais tarde e corrija os bugs sem pensar no futuro. Embora isso não seja de forma alguma uma condenação do próprio PHP (você pode fazer isso em qualquer idioma), apenas recentemente os desenvolvedores de PHP começaram a se perguntar sobre os padrões de engenharia e design de software, SOLID, testes e similares.
fonte
Eu diria que a ideia do PHP está sendo prática. O que isso significa em cada caso separado é difícil de definir, mas, por exemplo, se algo requer um formulário HTML e cinco linhas de código, não coloque a estrutura MVC com 20 classes lá. Por outro lado, se você desenvolver um aplicativo para 20 milhões de pessoas, coloque a estrutura lá e tenha controle de lógica, apresentação e fluxo separadamente. Mas não há nada de especial no PHP aqui, então acho que pode não ser uma resposta satisfatória.
Eu não acho que há um estilo PHP. Pessoalmente, acho que a noção de que existe um estilo adequado a todos os usuários de linguagem só faz sentido se a linguagem tiver um campo de uso muito restrito, o que definitivamente não é verdadeiro para PHP.
Aplicativos específicos têm seus estilos - por exemplo, se você olhar para o Zend Framework, verá um código OO com interfaces definidas, APIs controladas etc. onde você poderá reconhecer facilmente padrões familiares de design. Por outro lado, existem aplicativos adotando uma abordagem mais processual, como o Drupal.
Eu entendo que isso não dá muito do "verdadeiro estilo PHP", mas é provavelmente porque não existe isso. Existem práticas recomendadas etc., mas receio que não seja o que você está procurando.
fonte
Algumas pessoas usam php como uma marca de desdém - apenas um fato, pessoalmente, sou um fã.
No entanto, para mim, o que definiu uma abordagem php é essencialmente a falta de contexto do aplicativo. Não há contexto de aplicativo integrado comparado ao .NET ou ao mundo Java.
Isso faz com que os servidores php fiquem essencialmente sem estado (desde que as sessões sejam movidas para outro servidor, por exemplo, disco compartilhado ou db)
Isso é basicamente o que penso quando penso no modo php.
fonte
Outra resposta! Desta vez, é mais uma observação sobre a "cultura" da programação.
O PHP está na mesma posição que o Javascript (ECMAscript para pedantes!) Estava em 2002. Um pequeno grupo de programadores especialistas apreciou sua excelência, mas a opinião geral era de que era uma linguagem de script pobre e obscura, útil apenas para rolar banners e usuários irritantes. com pop-ups.
Então veio o AJAX e, de repente, o mundo inteiro ficou admirado com o poder e a elegância do Javascript.
Embora não seja tão elegante quanto o Javascript, o php compartilha muito do poder e da simplicidade dessa linguagem, e existe um consenso sobre a maneira "correta" de programar o php para sistemas grandes.
O outro indicador de quão bom é o php em sua área de especialização é a falta de frameworks para aplicativos mais sérios. Muitos programadores experientes ficam felizes em usar o "php", pois ele fica sem a ajuda de um mega framework. A pura proliferação de frameworks e outras ajudas indica para mim que Java, Python etc. não acertaram e que os programadores que usam essas linguagens estão profundamente descontentes e inseguros sobre como um aplicativo Web deve ser criado. No entanto, quando eles veem como o código php simples e simples é usado para implementar com êxito sites complexos sem as configurações XML ilegíveis, o dialeto do modelo do mês ou o roll seu próprio dialeto ORM, eles tiram a conclusão errada - que o php deve ser ruim porque não possui classes IntegerFactory, injeção de dependência etc.
De fato, todas essas coisas são facilmente implementadas no php e são frequentemente usadas, se necessário - é apenas que a implementação geralmente é um par de linhas de php e não é reconhecida como tal por programadores que estão acostumados a fazer a mesma coisa com grandes bibliotecas e APIs complexas.
php é simples. "simples" é o complemento mais alto que você pode fornecer para um software e o mais difícil de obter.
fonte