Categorias

PHP 6 a revolução

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.