Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de abrir um espaço de discussão sobre as novas implementações feitas para o PHP 7 previsto para ser lançado em meados de outubro/2015.
Como destaque, gostaria de colocar as seguintes RFCs (as quais eu considero de extrema valia):
Já implementadas:
Aceitas:
Além dos demais detalhes do core:
Como amante da orientação à objetos, não posso deixar de ficar feliz com as novas implementações.
Mas também devo salientar a reescrita de código e questões de compatibilidade com códigos legados.
Além de muitos artigos que li a respeito sobre o quanto pode-se ou não mater código legado compatível.
Enfim, quero ver como está a comunidade em geral.
Faço minha quase todas as suas palavras. Principalmente em relação a tipagem, eu sempre utilizo cast type explcítico, como no exemplo abaixo:
return (boolean)$varBoolean;
E também gostaria de uma sintaxe mais limpa como é a do C# e Java, mas não vou reclamar de barriga cheia, já que é uma implementação que há muito eu aguardava.
Sobre questão das exceptions, tenho como referência o autor Robert "UncleBob" Martin, pois o capítulo sobre exceptions do livro Clean Code abriu a minha mente. Me deu uma perspectiva muito diferente do fluxo de um sistema e suas exceções.
Vejo também a vantagem em erros poderem ser tratados e não mais suprimidos. E, talvez a maior vantegem de todas, o tratamento de fatal erros, o que é um pé no saco quando seu script é abortado em runtime e nada do que você colocou de tratamente funcionou :skull:
Mas também não posso deixar de questionar nossas origens. Como você mesmo comentou:
[...]Prefiro testar o valor de retorno, como fazemos em C ou Bash[...]
Tenho a impressão que é a sua linguagem de "origem" ou, ao menos, uma que você tem grande afinidade.
Eu, por outro lado, iniciei em Java e, após, tive conhecimento de PHP e C#. O tratamento do fluxo através de exceptions me proporciona um código mais limpo. Apesar de eu ser contra, com todas as minhas forças, do uso de exceções verificadas (o que ocorre apenas em Java), também conhecido como assinanatura de exceções. Além de violar o princípdio de aberto e fechado, ficar "cascateando" cada assinatura quando a inclusão da cláusula throws ocorre em um baixo nível numa hierarquia é um porre.
Eu comecei a programar usando PHP. Conheci o C um pouco mais tarde, na faculdade. Mas sempre gostei de C. Ele é bem restritivo, bem o oposto do PHP, onde se faz de tudo e a linguagem aceita.
Falando em erros, acho que error_reporting deveria deixar de existir. display_errors é útil pra suprimir erros em produção. Mas acho que todos os níveis de erros deveriam ser exibidos. Tem muito iniciante por aí gerando 974839 notices e nem sabe disso... fica tudo escondido
Concordo com a extinção da supressão de erros. Sem contar com a quantidade de logs desnecessários que são gerados.
Addendo ao material:
A questão da "tipagem" é algo que sinto falta há tempos no PHP. Não precisa ser tipagem forte como em C, mas também não precisa ser porr@-loca como é o PHP hoje. Conversões implícitas de string para inteiro e vice-versa são coisas que deixam os programadores muito mal acostumados, além de poder gerar resultados inesperados.
Acho que a checagem de tipos vai ajudar a escrever códigos mais consistentes. Gostei dessa adição. Só não gostei da sintaxe de colocar "dois-pontos tipo_de_retorno"... vou me sentir programando em Pascal... :P
Sobre as Exceptions, fico um pouco com o pé atrás. Nunca fui um fã delas. Acho que quebram muito o fluxo do código. Prefiro testar o valor de retorno, como fazemos em C ou Bash. Mas é questão de preferência.
A grande vantagem é poder tratar Fatal Errors.