Em que ano php 7 saiu. Anúncio de tipos escalares

Vale a pena mudar para uma nova versão do PHP 7.0? - Definitivamente está, nem sequer pense - vá!

Na sétima versão, há muitas inovações. Os principais são:

  • o kernel de Phpng é baseado em Phpng. O novo kernel dá um aumento nos locais de produtividade de 40%;
  • dICAS DO TIPO E VALORES DE RETORNO. Agora, ao declarar uma função para cada variável, você pode especificar seu tipo, bem como o tipo de dados que retornará a função. Tipos disponíveis: int, flutuante, string e bool;
  • operador de comparação combinada e muito mais.

Algumas extensões foram removidas no PHP 7:

  • mysql.

Já no PHP 5.6.x, o uso dessas extensões foi indesejável. Em vez de "mysql", use "PDO" e, em vez de EREG → PREG.

Você pode se familiarizar com mais detalhes com as novidades PHP 7 na página oficial.

Eu deveria ir para o PHP 7?

No este momento A coisa mais simples que você pode fazer para aumentar o desempenho do site é ir para PHP 7.0.x. O ganho de velocidade também depende de como seu projeto é escrito. Se você ainda duvide, mostre algumas comparações:

Benchmark PHP 5,6 vs php 7 Para estruturas de Necto (Zend Framework, Magento, Drupal, MediaWiki, WordPress, Laravel, Sugarcrm, etc.):

Para todas as estruturas, o crescimento da produtividade é significativo. Vamos ver qual é o caso das funções e projetos do kernel:

Benchmark PHP 5,6 vs php 7 Para as funções e desenhos do kernel:

Se os gráficos convenceram você, você poderá tentar transferir seu site para a nova versão do PHP e experimentar o aumento do projeto real.

Colegas com elasticweb disseram que antes de iniciar um novo servidor com o PHP 7, eles lançaram um grande projeto de estado trabalhando no Laravel 5. Foi um tipo de teste de desempenho. nova versão PHP e servidor como um todo. Anteriormente, este projeto estava no servidor com PHP 5.6. Depois de transferir o site, a página começou a ser aberta muito mais rápido, enquanto o uso de recursos foi reduzido pela metade.

Para preparar a mudança para o PHP 7, eles usaram o Relatório do Assistente de Migração PHP 7 (Mar). A maior parte do popular CMS / Quadro já tem compatibilidade com o PHP 7, portanto, a tarefa principal foi reduzida para testar plugins personalizados.

Wordpress 4, Drupal 8/7 e Última versão Joomla está pronto para php 7!

Olá!

3 de dezembro foi um lançamento PHP 7. Fomos transferidos para você uma descrição de novos produtos da página de documentação http://php.net/manual/en/migration70.new-features.php. Esta é a primeira parte.

Anúncio de tipos escalares

Agora, dois tipos de modos de conversão são usados: conversão implícita (coercive) e explícita (estrita).

Tipos estão disponíveis para parâmetros:

  • cordas (string),
  • inteiros (int),
  • comunhão flutuante (flutuador),
  • variáveis \u200b\u200bbooleanas (bool).

Isso complementa o tipo de dados definido no PHP 5: nomes de classes, interfaces, matrizes (array) e callizável.

Resultado:

Para ativar o modo de digitação estrita, use a diretiva de declaração no início do arquivo:

Declarar (strict_types \u003d 1)

O modo de digitação aplica-se a um arquivo específico. Ativando a digitação rigorosa afeta a saída de valores escalares, valores de retorno, funções de PHP incorporadas e funções de extensão.

Definição de tipos de valores devolvidos

No PHP 7, tornou-se possível declarar o tipo de valor de retorno. Isso correlaciona diretamente com um novo modo de digitação: com digitação estrita, os valores de retorno devem corresponder rigorosamente o tipo especificado, caso contrário, a exceção será descartada TypeError..

Um conjunto de tipos de valores devolvidos é o mesmo que para argumentos.

Resultado:

Array (\u003d\u003e 6 \u003d\u003e 15 \u003d\u003e 24)

Operador de unificação com valor nulo

O operador de unificação com nulo (??) é inserido para melhorar a legibilidade do código no caso quando o operador ternário e a isset () geralmente são usados. O operador retorna o primeiro operando se o argumento for definido e não for igual a NULL e o segundo operando em qualquer outro caso.

Operador "espaçonave"

Compare duas expressões, retornando -1, 0 e 1, quando o primeiro argumento é menor, igual ou mais do segundo, respectivamente. A comparação é feita usando as regras de comparação usuais dos tipos de PHP.

1; // 0 echo 1<=> 2; // -1 echo 2<=> 1; // 1 // ponto flutuante (float) echo 1,5<=> 1.5; // 0 echo 1,5<=> 2.5; // -1 echo 2.5<=> 1.5; // 1 // linhas ecoam "A"<=> "uma"; // 0 echo "A"<=> "B"; // -1 echo "b"<=> "uma"; // 1?\u003e

Definição de matrizes constantes definem ()

Matrizes constantes podem ser declaradas usando Definir (). No PHP 5.6, eles só poderiam ser definidos usando a diretiva const.

Classes anônimas

Apoio para o anúncio de classes anônimas com nova classe.. Isso pode ser usado para decorar objetos descartáveis \u200b\u200bsem escrever uma aula inteira.

logger; ) Função pública SetLogger (logger $ logger) ($ this-\u003e logger \u003d $ logger;) $ App \u003d novo aplicativo; $ App-\u003e SetLogger (Log de função pública (string $ msg) (echo $ msg)); Var_dump ($ app-\u003e getlogger ()); ?\u003e

Resultado:

Objeto ( [E-mail protegido])#2 (0) {}

Símbolos Unicode escape

Os símbolos Unicode são definidos pelo código hexadecimal em cotações duplas ou string de definição de Herdoc. Adicionando um ou mais dígitos "0" antes que o código do símbolo seja permitido.

Eco "\\ u (aa)"; Echo "\\ u (0000aa)"; Echo "\\ u (9999)";

Resultado:

ª ª // O mesmo que antes, mas com a liderança opcional 0 "s 香

Encerramento :: Chamada ()

Método de fechamento :: Chamada () é uma maneira mais produtiva de vincular temporariamente o contexto do objeto a fechar e sua chamada.

x;); $ getX \u003d $ getXcb-\u003e Bindto (novo A, "A"); // fechamento intermediário de eco $ getx (); // php 7+ $ getX \u003d função () (retornar $ this-\u003e x;); Echo $ getX-\u003e ligue (novo a);

Resultado:

O resto das inovações está na segunda parte. Fique atento.

Vá para Php 7.0 ou espere? Então pensamos tanto, pesamos, fingimos. No entanto, ontem veio o momento em que foi necessário tomar uma decisão rapidamente

Aconteceu que o mestre de ninguém, nenhum hylopeda sysadmin, não quer. O portal começou a desacelerar da carga. Vindo visitantes que pagaram acesso a materiais fechados e simplesmente visitantes que estão enviando simultaneamente 100k + para os assinantes do portal, o Helpdeske não é capaz de trabalhar adequadamente com o administrador e fornecer assistência às pessoas

Como resultado, a noite foi realizada com PHP 5.6 no PHP 7.0

Breves características do servidor

  • SO: FreeBSD.
  • RAM: 5GB.
  • CPU: Xeon E5335 2.00GHz * 4 (kernels)

Como é o FreeBSD e mantenha ao mesmo tempo mais de uma versão PHP não é possível (na verdade, é possível, mas terá que acertar), o Downym tinha apenas 40 minutos que levou a demolição do PHP 5.6 e instalou PHP 7.0.

A propósito, ainda temos um servidor no Gentoo, que fornece uma oportunidade. Atualmente há PHP 5.6, 7.0, 7.1. Mas isso é para a palavra

E é isso que fizemos. Vamos olhar para os gráficos do dia onde dia de ontem, e à direita hoje

O que não mudou

O que mudou

O que colidimos com dificuldades

  • No atual PHP 7.0 não há módulo de memcache. Eu tive que baixar o porto de terceiros
  • Nenhum módulo mysql. Para isso, você precisa estar pronto e com antecedência para prever o plano de transição para o MySQLI. Quadros mais ou menos modernos suportam mysqli
  • Se você estiver usando o PECL-PDFLIB, estará pronto para o que não funcionará. Nós usamos wkhtmltoptdf.
  • Parte do portal usado MPDF. Não funciona com o PHP 7.0. Instalado fresco com compositor
  • Conduziu um código de refatoração de luz

Resultado

Com o mesmo número de visitantes do portal, a carga no servidor caiu duas vezes

Alexander Black.

administrador do sistema

De acordo com alguns estudos, cerca de 80% de todos os locais estão escritos nele. E nem tudo é estranho, porque até mesmo tais gigantes da rede gostam Em contato com e Facebookforam criados com a ajuda dele. Sobre a popularidade também pode ser julgado porque o pedido "" é solicitado em mecanismos de busca com muito mais frequência do que outros idiomas. Então um pedido hospedagem Perl. Cumprimenta 150 – O acima mencionado hospedando PHP.

A linguagem foi criada em 1994 e foi originalmente um conjunto de scripts. Com o tempo, os scripts foram refeitos para o intérprete em S.

As principais características e características da linguagem PHP:

  • capacidade de trabalhar com vários servidores da Web ( IIS.);
  • facilidade de aprendizagem e flexibilidade no trabalho;
  • suporte para bancos de dados - , MSSQL, Oracle, Postegre, MongoDB e outros;
  • para o sistema operacional popular, há pacotes de php apropriados, ou seja, você pode criar sites em;
  • compatibilidade com a maioria dos serviços de hospedagemfornecido pelos provedores. Você pode facilmente colocar o site escrito no PHP em qualquer hospedagem. Como proteger o PHP no servidor? Nosso conselho.
  • pHP não fica imóvel e constantemente se desenvolve, o que atrai desenvolvedores de todo o mundo.

Que tipo versão PHP. São relevantes no momento?

Por certo, é considerado versões relevantes do PHP 4 e 5. A versão 4 tem sua própria popularidade e é usada para escrever vários aplicativos da Web. O PHP 5 tem muitos recursos adicionais, mas, por sua vez, não é totalmente compatível com a quarta versão do idioma. portanto alguns programas (escritos no PHP 4) não poderão funcionar no ambiente PHP 5. Como ferramentas adicionais para a língua da linguagem são muitas vezes usadas módulos. Por exemplo, os módulos especiais foram desenvolvidos para trabalho com gráficos ou módulos que implementam interações com diferentes bancos de dados.

Depois de entrar na 5ª versão do idioma, todos esperavam o sexto. Mas o PHP 6 nunca foi capaz de se implementar, devido a problemas com o apoio ao Unicod, portanto, em 2010, o desenvolvimento e a implementação desta versão foram descontinuados.

Php 7 é uma nova versão com novos recursos.

Há não muito tempo atrás, 3 de dezembro de 2015, uma nova versão de uma linguagem de programação popular foi lançada -Php 7.0.0. Isso deu ao desenvolvimento da série PHP 7. A linguagem já conseguiu conquistar seus fãs pela história da existência de vinte anos. A linguagem de script da finalidade geral é usada para criar vários aplicativos da Web, incluindo a escrita paga e gratuita CMS. Por exemplo, Joomla! Drupal, WordPress e TP.

Avançar fale sobre novos recursos do PHP 7 E vamos descobrir por que os desenvolvedores esperaram tanto por ele. Afinal, apesar das freqüentes críticas desta linguagem, a maioria dos provedores de hospedagem o apoia, incluindo as últimas versões PHP. A linguagem é a mais exigida sobre os critérios de uso. A nova versão é essencialmente experimental e com base no PHPNG (próximo PHP Generation), o princípio da crescente produtividade é baseado em uma redução no consumo de memória.

O idioma PHP 7 é projetado com a adição da nova versão do Zend Engine. Se você compará-lo com a versão anterior de 5.6 (a nova versão do qual apareceu em novembro do mesmo ano), os desenvolvedores da Web do idioma observam principalmente o desempenho aprimorado da nova tecnologia: Php 7 dobra o pedaço do predecessor.

Considere os itens,o que a nova versão do PHP oferece :

  • cheio suporte de 64 bits sistemas;
  • o uso de memória é muito reduzido;
  • adicionado a funcionalidade da sintaxe abstrata;
  • os erros mais fatais são transformados em exceções;
  • hierarquia melhorada de exceção;
  • gerador aleatório Os números se tornaram mais seguros;
  • classes anônimas;
  • removido sapis desatualizado SAPI / AOLSERVER, SAPI / Apache SAPI / Apache_Hooks, SAPI / Apache2Filter, SAPI / Caudium, SAPI / Continuidade, SAPI / ISAPI, SAPI / MILTER, SAPI / NSAPI, SAPI / PHTPD, SAPI / PI3Web, SAPI / ROXEN, SAPI / THTTPD , SAPI / TUX, SAPI / WEBJAMES, EXT / MSSQL e EXT / SYBASE_CT);
  • pare de apoiar o desenhista no estilo do PHP 4, no qual o nome do construtor coincide com o nome da classe;
  • criada fechamento do Método :: Chamada ();
  • além disso, openssl existe suporte TLS Extension Alpn (Negociação de protocolo de camada de aplicativos) para corresponder aos protocolos de nível de aplicativo que são usados \u200b\u200bpara garantir uma conexão segura. Aplicado em SPDY e HTTP / 2;
  • um operador da união com nulo ?? ;
  • fornecendo um agrupamento de definições na declaração de uso (por exemplo, use doutrinecommoncollectionsexpr (comparação, valor, composiexpression);) e muito mais.

Download e se familiarizar com todas as vantagens da nova versão PHP em página OficialTambém você pode baixar o guia de migração. Nova versão - não apenas a próxima versão do PHPe o início do desenvolvimento de uma nova maneira em linguagens de programação. Para lançá-lo, levou dois anos de desenvolvimentos zelosos, que ajudou a criar um produto melhorado.

Se você estiver procurando por 7ª versão confiável , Entre em contato para a empresa Hyper host.nossos servidores de hospedagem virtual suportam PHP 7. Esperamos que novas oportunidades cheguem ao seu gosto. Nós, por sua vez, ficaremos felizes em ajudar!

7435 vezes 1 hoje visto uma vez (a)

O PHP é uma linguagem de programação que é usada principalmente no desenvolvimento da web, por via de regra, na parte traseira. PHP tem uma história suficientemente longa - sua primeira versão apareceu há mais de 20 anos, em 1995. Durante este tempo, 7 versões PHP foram emitidas, a última das quais apareceu em dezembro de 2015. Sobre ela e será discutido neste artigo.

O lançamento do PHP 7.0 tornou-se um avanço, já que baseou-se no projeto PHP Experimental e ativamente desenvolvido, o nome é descriptionado como "PHP próxima geração" - "a próxima geração PHP". Essa tecnologia poderia ser usada em versões anteriores do PHP, no entanto, foi no PHP 7, foi introduzido como fundamental. Quando é desenvolvido, o objetivo foi definido para aumentar o desempenho do PHP, mas não perdendo a compatibilidade.

Motor Zend.

O PHP 7 é baseado na terceira versão do motor Zend, na qual o projeto PHPNG foi desenvolvido.

Inovações

Em primeiro lugar, as inovações no PHP 7 afetaram os aplicativos de parâmetros mais importantes - esse desempenho e consumo de memória.

A principal mudança na qual é principalmente mencionada na conversa sobre o PHP 7, este melhoria de desempenho: Os indicadores PHP 7 são aproximados para os indicadores HHVM (desenvolvidos pelo sistema do Facebook, o que permite acelerar a transformação de código PHP várias vezes). Não é a última razão para isso foi o fato de que o co-fundador da Zend Technologies (PHP Kernel Empresas) Zeev Suraski considera HHVM como um dos concorrentes de Zend. E o desenvolvedor líder da PHP 7 Zend Technologies Company e Phpng Autor Dmitry Stans garante que a diferença no desempenho do PHP 5.0 e PHP 7 no banco de teste sintético.PHP é 14 vezes. Na prática, a maioria dos usuários está inclinada a acreditar que o PHP 7 é cerca de duas vezes mais rápido que a versão anterior.

A HHVM usa a chamada compilação JIT (just-in-time) para a conversão de código - apesar do fato de que o JIT na versão 7 PHP não apareceu, o PHP 7 suporta uma melhor migração, o que permite melhorar o desempenho às vezes . É um novo nível de grande produtividade Dmitry Stack destaca como a principal característica do PHP 7.

A melhoria de desempenho conseguiu alcançar e graças ao fato de que o compilador agora gera um código de byte mais espetacular e curto.

Hoje em dia, é extremamente importante pensar em usuários não apenas em dispositivos estacionários, mas também móveis, para que os desenvolvedores do PHP 7 melhorassem o desempenho do motor e redução do consumo de memória, além de adicionaram a capacidade de usar um armazenamento local nativo. Além disso, o PHP 7 permite realizar tarefas assíncronas.

A propósito, o desenvolvimento levou em conta as tendências populares na redução do consumo de recursos do planeta, portanto, o PHP 7 capacidade de lidar com mais tráfegoUsando todos os mesmos recursos do servidor.

Novas características

No PHP 7 existem muitos novos recursos, cada um dos quais torna o desenvolvimento de mais confortável e simples. Em seguida, você pode se familiarizar com alguns deles.

  • Duas novas exceções (Exceção e erro) - Se nas versões anteriores do PHP, era impossível lidar com erros fatais, em uma nova versão, a ação que leva a esta emit exceções, ou seja, a conclusão do script não acontecerá.
  • Classes anônimas - Agora PHP 7 suporta este tipo de aula, que é frequentemente usado em C ++ e Java para executar funções de retorno de chamada. Essas classes são usadas principalmente para criar itens simples:

setLogger (novo logger ()); // php 7+ código $ util-\u003e setlogger (nova classe ($ msg) (echo $ msg;)));

As classes anônimas podem ser investidas, mas não estarão disponíveis propriedades protegidas ou privadas da classe externa.

  • Capacidade de indicar tipos escalares. (Dicas do tipo escalar) - em versões anteriores, foi possível indicar o tipo de valores recebidos; Agora você também pode indicar tipos escalares:

Linhas (` string`), inteiro (`int`), números (` flututer), pedregulhos (`bool`).

Esta inovação destina-se a facilitar a escrita do código e melhorar sua legibilidade. Mas o uso desses valores como os nomes das classes são categoricamente proibidos, porque Isso pode levar a erros críticos.

  • Design de uso abreviado - a oportunidade apareceu no PHP 7 combine a declaração de grupos de usoque, sem dúvida, será afetado positivamente tanto em velocidades quanto na percepção do código:
  • Novos operadores Operador de coalescimento nulo (??) e Operador de comparação combinada. (<=>Além disso, ele é conhecido como operador da nave espacial) - esses dois novos operadores, que alguns referem-se a ajuda com açúcar sintático a escrever um código mais conciso e compreensível.

O operador de coalescência NULL é um operador da União que verifica se a variável existe e retorna seu valor (ou valor padrão):

$ Ação \u003d $ _post ["ação"] ?? "índice";

O operador de comparação combinado é um operador de comparação que é útil para uso em funções de retorno de chamada para Usort (). Compara dois valores e, dependendo do resultado, retorna -1, 0 ou 1:

Função Order_func ($ A, $ B) (retorne $ a<=> $ B; )

A prioridade desta operação é igual às prioridades de outras operações de comparação, e não pode ser associada ao desafio anterior, porque Este é um operador não abassociativo.

  • Função Assert ()- No PHP 7, esta função é processada de maneira especial de excluir a sobrecarga; Você pode usá-lo para depuração e desativar ainda mais.
  • Filtração inservializar () - Esta inovação garantirá a segurança da serialização de objetos. O desenvolvedor será capaz de determinar quais classes devem ser tratadas e quais não são.
  • Representação inteiros na forma de 64 bits No PHP 7 para Windows X64: Agora PHP suporta cordas a mais de 231 bytes em conjuntos de 64 bits.
  • Delegação de Geradores - com ajuda O gerador complexo pode ser dividido em vários menores. Como algumas outras inovações, esta inovação visa escrever um código mais limpo e conveniente para reutilização.
  • A aparência de uma nova classe Intlchar. - Aumenta o conjunto de recursos da biblioteca para localizar os componentes internacionais para aplicativos Unicode e possui métodos de classe e um confundo para trabalhar com Unicode.
  • A capacidade de definir matrizes como valores constantes que são declarados através de definir ().
  • A capacidade de atribuir palavras-chave reservadas aos nomes dos métodos.
  • O surgimento de um novo identificador de valores simples php_int_min.

Quanto às funções antigas, a parte dos recursos mais reclamados foi excluída: por exemplo, as tags ASP e Script foram removidas, bem como expressões regulares compatíveis com POSIX, e extensão EXT / MySQL.

PHP e servidores da Web

PHP é amplamente utilizado ao escrever uma variedade de aplicativos da web, porque Esta linguagem é compatível com vários servidores da Web (Apache, NginX, IIS), bancos de dados (MySQL, Postgre, MongoDB, etc.), além de sistemas operacionais.
Portanto, tradicionalmente inovações foram tocadas por não apenas a linguagem como um todo, mas também as de suas partes associadas à hospedagem.

Primeiro de tudo, o PHP 7 foi introduzido Árvore de sintaxe abstrata (AST) - Uma árvore de sintaxe abstrata, que é um link intermediário no processo de compilação. É neste modelo que um analisador de sintaxe agora é baseado. Graças a isso, agora você pode criar um código de operação mais produtivo.

Outra inovação é Sintaxe variável uniforme. - sintaxe universal para variáveis. Isso permite, por um lado, para resolver algumas das inconsistências associadas ao cálculo dos valores variáveis, mas, por outro lado, cria a necessidade de reescrever algumas partes raramente usadas do código.

Vamos retornar mais uma vez para um aumento no desempenho PHP 7: é favorável para refletir sobre a funcionalidade de toda a hospedagem, porque eles poderão aumentar o número de seus usuários sem aumentar o número de servidores ou outras melhorias.

Uma das razões para melhorar o desempenho é otimização da estrutura dos dados internosO que melhorou muito o processo de trabalhar com a memória.

É impossível não dizer sobre alguns problemas de compatibilidade revertidos que podem ocorrer ao alternar para o PHP 7. Por exemplo, não é possível usar várias expressões padrão no switch, porque Caso contrário, você verá um erro. No entanto, em geral, esses problemas são insignificantes no contexto desses novos recursos que o PHP 7 oferece.

Resultado

O Release Php 7 não é apenas o lançamento da nova versão PHP, mas um certo ponto de partida para as seguintes versões PHP da nova geração. Os resultados de uma multiplicidade de inovações PHP 7 tornaram-se um código mais limpo, conveniente e compreensível, aumentar significativamente a produtividade e muito mais que você pode avaliar de forma independente, atualizando o servidor virtual para a sétima versão do PHP.