Você pode adicionar "ainda" a este título! Às vezes, as coisas são o que são simplesmente porque ninguém sabe como fazer melhor.
No entanto, isso não significa que tudo seja uma boa ideia.
Você simplesmente não pode fazer o seguinte:
class Child extends Parent1, Parent2 {}
No entanto, muitos desenvolvedores pensariam que existem abordagens melhores, como usar interfaces para forçar as classes a implementar comportamentos específicos.
Observe que você ainda pode aplicar algum tipo de herança múltipla a essas interfaces (se isso realmente fizer sentido no seu caso):
interface A {} interface B {} interface C extends A, B {}
No entanto, esse não é o melhor argumento contra a herança múltipla, para mim. Muitas linguagens de programação concentram-se na simplicidade e legibilidade em vez da complexidade.
A introdução de herança múltipla pode levar a muitos usos indevidos, sem mencionar o problema dos Diamonds, que seria problemático para linguagens de alto nível como PHP.
É melhor evitar complexidade desnecessária.
Muitas linguagens de programação fornecem ferramentas integradas para executar vários threads ao mesmo tempo (por exemplo, Java, C ).
Pthreads tentou introduzir multi-threading em PHP, mas Joe Watkins, o criador de pthreads e paralelo, anunciou em fevereiro de 2019 que:
pthreads não serão mais mantidos após o PHP 7.4 devido a falhas arquitetônicas.
Fonte: documentação PHP - phtreads
Se quiser se aprofundar mais, você pode verificar o paralelo, que é inspirado na simultaneidade Go.
Embora paralelo seja muito legal, você realmente precisa de tanta complexidade no seu caso?
Se você precisa de um mecanismo integrado para processamento assíncrono, agora é possível com Fibers (desde PHP 8.1).
As fibras permitem que você escreva funções interrompíveis.
Embora as fibras sejam muito legais, você realmente precisa de tanta complexidade no seu caso?
Usar soluções de terceiros, como ReactPHP ou Swoole, pode ser uma escolha melhor, especialmente se você precisar apenas de um loop de eventos.
Melhor do que isso, você pode construir um mecanismo de fila que possa lidar com mensagens e tentar novamente trabalhos com falha.
O cliente HTTP do componente Symfony também suporta várias operações assíncronas (por exemplo, solicitações/respostas simultâneas de streaming assíncrono e multiplexadas).
PHP é uma linguagem interpretada, incompatível com operações intensivas e sistemas que exigem baixa latência e alta previsibilidade.
Embora seja verdade, por que você usaria PHP para negociação de alta frequência, streaming, jogos on-line ou supervisão de alto nível de máquinas e processos?
PHP é destinado à web e a muitos outros usos criativos que você talvez conheça.
Espero que mantenha a simplicidade, pois é definitivamente um recurso.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3