Yii 2.0.16


A equipe do framework Yii PHP lançou a versão 2.0.16, que contém mais de cem correções e algumas melhorias . Corrigido vários problemas de segurança.


A filial do Yii 2.0 foi congelada há mais de um ano , o que significa que aceita principalmente correções. Isso foi feito para permitir que a equipe do Yii se concentre no Yii 3. No final deste post, há um pouco mais de informações sobre o Yii 3.


Esta versão inclui várias alterações que podem afetar os aplicativos existentes. Certifique-se de ler UPGRADE.md .


Muito obrigado aos membros da comunidade Yii que estão envolvidos no desenvolvimento. Sem você, um projeto em grande escala não teria sido possível. Agradecimentos especiais aos tradutores que mantêm a documentação atualizada.


Abaixo estão as melhorias mais interessantes que ainda conseguiram vazar no lançamento. A lista completa, como sempre, pode ser encontrada em CHANGELOG .


Registro ativo


Salem Ouerdani, @tunecino adicionou um comportamento para o bloqueio otimista.


O bloqueio otimista permite que vários usuários editem simultaneamente um registro e evitem possíveis conflitos no lado do servidor. No caso em que um usuário tenta salvar edições com base em dados desatualizados (porque outro usuário já foi salvo), um StaleObjectException e nenhuma atualização ou exclusão é feita.


O mecanismo desse bloqueio foi implementado nas primeiras versões do Yii, mas usá-lo corretamente não era tão simples. Agora simples.


A documentação pode ser encontrada no manual oficial.
e a API OptimisticLockBehavior .


Migrações


O gerador de migração do console agora usa prefixos de tabela por padrão. Se você quiser alterar isso, poderá definir yii\console\controllers\MigrateController::useTablePrefix como false na configuração do comando do console.


Bases de dados


  • O driver MySQL agora suporta uma precisão de segundo fracionária para tipos temporários (é necessário o MySQL> = 5.6.4).
  • O driver Oracle agora suporta redefinir sequências.

Ajudantes


  • yii\helpers\Inflector aprendeu a funcionar corretamente com UTF-8.
  • Adicionado sinalizador yii\mutex\FileMutex::$isWindows para a bola do Windows em máquinas convidadas do Unix.
  • yii\helpers\ReplaceArrayValue yii\helpers\UnsetArrayValue , yii\helpers\ReplaceArrayValue agora podem ser restaurados após a serialização usando var_export() .

Gridview


Adicionada a opção $filterOnFocusOut , que determina se a filtragem deve ser executada quando o foco for perdido.


jQuery


Agora você pode instalar o jQuery 3.3.


Mutex


  • A frequência de tentativas para obter um bloqueio yii\mutex\FileMutex::acquireLock() aumentada se $timeout fornecido.
  • Adicionado suporte para $timeout em yii\mutex\PgsqlMutex::acquire() .

Correções de segurança


Dois problemas de segurança foram corrigidos:


  • CVE-2018-14578: ignore a validação do token CSRF em \yii\web\Request::getMethod()
  • CVE-2018-19454: registro excessivo de informações confidenciais em \yii\log\Target

Modelos de Aplicação


  • As configurações de codecepção foram limpas nos modelos básico e avançado.
  • Uma configuração simples para o Docker foi adicionada ao modelo Avançado.
  • O modelo Avançado agora requer uma versão mais recente do Codeception, que só funciona desde o PHP 7.0. Aplicativos antigos funcionarão como antes.

Um pouco sobre o Yii 3.0


A próxima versão principal do Yii será a 3.0. Um anúncio detalhado será mais tarde, mas por enquanto brevemente:


Arquitetura atualizada : a estrutura é dividida em pacotes separados .
Isso permitirá que você colete com eles o que você precisa.


Independente de JavaScript : junto com a reorganização do código fonte, o Yii é desatado da estrutura JavaScript no kernel.
Os principais pacotes Yii não requerem jQuery.


Compatível com PSR : o Yii 3 seguirá as recomendações do PHP-FIG. Muitos PSRs já foram implementados: log, cache, DI e outros.


O Yii 3.0 está em desenvolvimento ativo. Um anúncio detalhado será feito para alcançar a versão alfa.

Source: https://habr.com/ru/post/pt438394/


All Articles