PHP
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á (<?) – assim àqueles no general do php que contam o curto-Tag são ‘ depreceated ‘ – hah! ; -)
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.
Texto traduzido de:
Introdução a JSON em PHP
JSON (com a pronuncia djeisón), um acrônimo para “JavaScript Object Notation“, é um formato leve para intercâmbio de dados computacionais. JSON é um subconjunto da notação de objeto de JavaScript, mas seu uso não requer Javascript exclusivamente.
A simplicidade de JSON tem resultado em seu uso difundido, especialmente como uma alternativa para XML em AJAX. Uma das vantagens reivindicadas de JSON sobre XML como um formato para intercâmbio de dados neste contexto, é o fato de ser muito mais fácil escrever um analisador JSON. Em JavaScript mesmo, JSON pode ser analisado trivialmente usando a função eval(). Isto foi importante para a aceitação de JSON dentro da comunidade AJAX devido a presença deste recurso de JavaScript em todos os navegadores web atuais.
Exemplos simples de uso de JSON em PHP5:
json_decode
{'foo-bar'}; // 12345
?>
json_encode
1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?>
