
Esta é a questão opostaEste. Meu objetivo é que não haja necessidade de escrever apenas código PHP5 para ter compatibilidade com PHP4. Não é nada útil e devido às diferenças entre os modelos de objetos nessas duas versões, deve penalizar o desempenho do intérprete (ou estou errado?).
Então minhas perguntas são:
- é possível recompilar o PHP5 sem retrocompatibilidade com o PHP4 ou desabilitá-lo de alguma outra forma para ganhar desempenho?
- se não for possível, existe algum projeto em algum lugar que vise esse objetivo?
Responder1
Não é possível porque não há necessidade; tudo (exceto umpequeno número de itens) no PHP4 é basicamente um subconjunto do PHP5. Portanto, os desenvolvedores de PHP não precisaram criar separadamente um “modo de compatibilidade” para que o PHP5 pudesse executar o código PHP4. É mais ou menos como se a NBA mudasse repentinamente o tamanho de uma cesta de basquete regulamentar para ser 2 "mais larga em diâmetro, ela ainda seria automaticamente'compatível com versões anteriores'com bolas de basquete existentes.
Qualquer coisa que fosse removida no PHP5 já estava obsoleta no PHP4, portanto, scripts PHP4 escritos corretamente devem funcionar perfeitamente no PHP5, com apenas pequenas modificações. As maiores “perdas”, além dos recursos obsoletos do PHP3, são extensões que não estão mais incluídas na instalação padrão do PHP5.
E o novo modelo de objeto substituiu o antigo do PHP4, mas além de alterar as peculiaridades de cópia dos objetos, as diferenças entre os modelos de objetos estão principalmente na implementação. Então, novamente, a maioria dos scripts PHP4 provavelmente funcionarão em PHP5 com apenas pequenas modificações. E não há recurso explícito de compatibilidade com versões anteriores a ser desativado.
Portanto, esta não é uma área de otimização com a qual valha a pena se preocupar. Você conseguiria mais otimizando seu código PHP5 e usandoMemcachedouAPC. E se você quiser fazer o PHP rejeitar o uso de código obsoleto (para tornar seu códigoà prova de futuroem vez de uma otimização do servidor), basta usar a E_STRICT
configuração de relatório de erros.