Neste artigo falarei sobre o PHP 6 as boas notícias e as más notícias que estão por vim, então vamos lá.
Começando
Quando agente começou a se acostumar com o PHP 5 já esta mudando, não é? Como falam a “felicidade de pobre dura pouco.”. Mais não vamos desanimar, e aliás o PHP 6 já a um tempinho atrás á ser desenvolvido, e uma das promessas é o suporte ao Unicode, que vai permitir a criação e gestão mais fácil de aplicações internacionalizáveis.
O maior colaborador do PHP o Derick Rethans, falou sobre o PHP 6 á um tempinho atrás. Com o PHP 5.1 vindo aí, fica a pergunta, como vão chamar a próxima versão do PHP??? O Derick deu a sugestão de PHP 6 que já é oficial, isso porquê vai ter uma grande mudança no suporte ao Unicode.
4 dias depois de Derick ter mostrado suas sugestões e opiniões sobre a nova versão do PHP, Rasmus, o pai do PHP, deixou uma lista de características para próxima versão, nas quais acho positivas para mim:
* Será removido o register_globals;
* Será removido também o magic_quotes_;
* Adicionar a extensão do filtro da entrada que incluirá um mecanismo para que os colaboradores de aplicação o girem muito facilmente fora de qual trocaria as disposições cruas de GPC para trás caso que o local o teve girado sobre pelo defeito.
* Incluir um “esconderijo” do opcode pelo defeito. Os muitos do trabalho têm entrado no pecl/apc recentemente, mas eu não sou pendurado acima em qual um vai.
* Remover o safe_mode e focalizá-lo no open_basedir;
* Remover algum material que foi marcado como “deprecated” desde PHP 3/4;
* Fazer identificadores caixa-sensíveis;
* Remover os vários pseudônimos da função.
Se prepare para o PHP 6
Unicode
A sustentação de Unicode no presente pode ser ajustada em a por a base do pedido. Isto iguala a PHP que tem que armazenar Unicode e variants do non-Unicode de nomes da classe, do método e da função nas tabelas de símbolo. No short – usa-se acima de mais recursos. Sua decisão deve fazer o Unicode que ajusta o usuário largo, para não pedir largamente. Unicode de giro fora onde não requerido pode ajudar ao desempenho e citam alguma corda funcionam como sendo até aplicações mais lentas e inteiras de 300% 25% mais lento em conseqüência. A decisão para movê-la para o php.ini em minha mente faz exame do controle away do usuário, e põe-no nas mãos do anfitrião da correia fotorreceptora.
Se você compilar PHP você mesmo ou for responsável para este em seus usuários então você pode ser interessado saber que PHP 6 requererá os libs de ICU (de qualquer maneira se Unicode for desligado sobre ou). O sistema da configuração afiançará para fora se os libs requeridos de ICU não puderem ser encontrados. Em um nutshell, você terá uma outra coisa a instalar se você quiser compilar PHP.
Registo Globals a ir
Diga adeus povos, este está indo finalmente. Será não mais por muito tempo um ajuste da lima do ini, e se encontrado lhe levantar um E_CORE_ERROR, apontá-lo à documentação sobre porque é “bad”. Isto significa que PHP 6 quebrará finalmente todos os certificados da era PHP3 (ou algum certificado usando globals do registro) com nenhum recourse em tudo com exceção de para re-code o. Aquele é um movimento bold(realce), mas needed.
Citações da mágica a ir
A característica mágica das citações de PHP estará indo, e como com globals do registo está indo levantar um E_CORE_ERROR se o ajuste for encontrado em qualquer lugar. Isto afetará magic_quotes, magic_quotes_sybase e magic_quotes_gpc.
Modalidade segura a ir
Isto pode satisfazer os colaboradores que têm os anfitriões da correia fotorreceptora que insistem em cima da modalidade segura! Mas irá agora totalmente, outra vez levantando um E_CORE_ERROR se encontrado. A razão é que aparentemente sentiram que deu ‘ o sinal errado ‘, implicando que fêz PHP seguro, quando o infact ele não em toda vontade do open_basedir (thankfully) seja mantido.
‘ var ‘ ao pseudônimo ‘ público ‘
‘ var usado PHP4 ‘ dentro das classes. PHP5 (em seu movimento de OO) fêz com que isto levantasse um aviso sob E_STRICT. Este aviso será removido em PHP 6 e preferivelmente ‘ o var ‘ significará a mesma coisa que ‘ o público ‘. Este é um movimento agradável mas I se qualquer um atualizar seus certificados para o trabalhar sob E_STRICT em PHP5 será redundante para ele.
Retorne pelo erro da vontade de Referência
Ambos ‘ # = & StdClass() novo ‘ e ‘ o &foo da função ‘ levantarão agora um erro de E_STRICT.
Modalidade do compatbility zend.ze1 a ir
ze1 tentado sempre retê-lo o comportamento PHP4 velho, mas aparentemente “não trabalha 100%” de qualquer maneira, assim que será removido totalmente e jogar um E_CORE_ERROR se detectado.
Freetype 1 e sustentação de GD 1 a ir
A sustentação para ambos estes libs (muito muito velhos) será removida.
o dl() move-se para SAPI somente
Cada SAPI registará o uso desta função como necessário, only os CLI e encaixam SAPIs farão isto de agora sobre. Não estará disponível em outra parte.
FastCGI sempre sobre
O código de FastCGI será limpado acima e permitido sempre para o cgi SAPI, não poderá ser incapacitado.
Disposições longas do registo a ir
Recorde os globals de HTTP_*_VARS do yesteryear? Jorre se você não estão usando já $_get, $_post, etc. – comece fazer assim agora, porque a opção para permitir disposições longas está indo (e jogará um E_CORE_ERROR).
Movimentos da extensão
As extensões de XMLReader e de XMLWriter mover-se-ão na distribuição do núcleo e ser-se-ão sobre optam perto.
A extensão do ereg mover-se-á para PECL (e para ser removido assim de PHP). Isto significa que PCRE não estará permitido ser incapacitado. Isto fará a maneira para a extensão regular nova da expressão baseada em ICU.
O exntesion extremamente útil de Fileinfo mover-se-á na distribuição do núcleo e permitido pelo defeito.
Adições do motor de PHP
64 inteiros do bocado
Um inteiro novo de 64 bocados será adicionado (int64). Não haverá nenhum int32 (se supõe a menos que você especificar int64)
Goto
Nenhum comando ‘ goto ‘ será adicionado, mas o keyword da ruptura será estendido com uma etiqueta de estática – assim que você poderia fazer ‘ o foo da ruptura ‘ e saltará ao foo da etiqueta: em seu código.
ifsetor()
Olha como nós não estaremos vendo este, que é um shame. Mas preferivelmente?: o operador terá ‘ a exigência do parâmetro médio ‘ deixada cair, que os meios você poderiam fazer algo como este: “# = $_get[‘foo ‘ ]?: 42;” (isto é se o foo for verdadeiro, $foo igualará 42). Isto deve conservar algum código, mas eu pessoalmente não penso que é como ‘ readable ‘ porque o ifsetor seria.
disposições multi-não ofuscantes do foreach
Esta é uma mudança agradável – você poderá ao foreach através das listas de disposição, isto é. “foreach($a como $k = > list($a, #))”.
{} contra [ ]
Você pode atualmente usar-se {} e [ ] alcançar índices da corda. Mas {} a notação levantará um E_STRICT em PHP5.1 e será ida totalmente em PHP 6. Também [ ] a versão ganhará a funcionalidade do substr e do array_slice diretamente – assim que você poderia fazer “[ 2, ]” para alcançar os caráteres 2 à extremidade, etc.. Muito acessível.
Mudanças de OO
Emperramento De estática
Um keyword novo será criado para permitir o emperramento atrasado da estática – static::static2(), este executarão a avaliação runtime do statics.
Namespaces
Olha como este é ainda undecided – se executam namespaces que estará usando seu estilo somente. Meu conselho? Não prenda sua respiração!
Valores Do retorno Tipo-sugeridos
Embora se decidissem de encontro a permitir propriedades tipo-sugeridas (becaue é “não a maneira de PHP”) que adicionarão a sustentação para valores do retorno tipo-sugeridos, mas têm para decidir-se ainda em uma sintaxe para isto. Mesmo assim, será uma adição agradável.
Chamando funções dinâmicas como a vontade E_FATAL da estática
No momento em que você pode se chamar métodos de estática e dinâmicos, se são de estática ou não. Chamar uma função dinâmica com a sintaxe de estática da chamada levantará um E_FATAL.
Adições a PHP
Apc a estar na distribuição do núcleo
O esconderijo APC do opcode será incluído na distribuição do núcleo de PHP como o padrão, entretanto não será girado sobre o defeito (mas o ter conserva a compilação de contudo uma outra coisa em seu usuário, e os anfitriões da correia fotorreceptora são mais prováveis permitir que seja permitido)
Remendo endurecido de PHP
Este remendo executa um grupo da segurança extra verifica dentro PHP. Ultrapassaram ele e as seguintes mudanças ocorrerão agora dentro de PHP: A proteção de encontro a rachar da resposta do HTTP será incluída allow_url_fopen será rachada em dois: allow_url_fopen e allow_url_include. allow_url_fopen serão permitidos pelo allow_url_include do defeito serão incapacitados pelo defeito.
E_STRICT funde em E_ALL
O wow, este é completamente sério! As mensagens do nível de E_STRICT serão adicionadas a E_ALL pelo defeito. Isto mostra que um movimento marcado pela equipe de PHP educar colaboradores ‘ em mais melhor praticou e indicando avisos do língua-nível no “hey, você o está fazendo a maneira errada”.
Farewell < %
Removerão a sustentação para os Tag do estilo do ASP, mas o Tag do curto-código de PHP remanescerá (Conclusão
PHP 6 está fazendo exame de um movimento interessante em minha mente – é como se os colaboradores de PHP querem educar agora colaboradores sobre a maneira direita codificar algo, e remove aquelas edições lingering com o “bom você DEVE fazê-lo esta maneira, mas você pode imóvel fá-la a maneira velha”. Este não será o caso mais longo. Removendo totalmente os gostos de globals do registo, as citações da mágica, long disposições, {} índices da corda e as cham-tempo-pass-por-referências forçarão colaboradores a limpar acima de seu código.
Quebrará também um crapload dos certificados além do reparo que não envolve algum reescrever sério. É isto um a coisa má? Eu não penso assim que eu mesmo, mas eu v o fazer o adoption de mais lento PHP 6 uniforme do que aquele de PHP5, que é um shame real. Entretanto têm que pular este obstáculo em algum ponto, e uma vez que o fizeram a progressão às versões futuras deve ser mais rápida.
Com informações de HTML Staff.