
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.