Yii 2.0.16


L'équipe du framework PHP Yii a publié la version 2.0.16, qui contient plus d'une centaine de correctifs et quelques améliorations . Correction de plusieurs problèmes de sécurité.


La branche Yii 2.0 a été gelée il y a plus d'un an , ce qui signifie qu'elle accepte principalement les corrections. Cela a été fait pour permettre à l'équipe Yii de se concentrer sur Yii 3. À la fin de ce post, il y a un peu plus d'informations sur Yii 3.


Cette version inclut plusieurs modifications susceptibles d'affecter les applications existantes. Assurez-vous de lire UPGRADE.md .


Un grand merci aux membres de la communauté Yii qui sont impliqués dans le développement. Sans vous, un projet d'une telle envergure n'aurait pas été possible. Un merci spécial aux traducteurs qui tiennent la documentation à jour.


Voici les améliorations les plus intéressantes qui ont encore réussi à s'infiltrer dans la version. La liste complète, comme d'habitude, se trouve dans CHANGELOG .


Enregistrement actif


Salem Ouerdani, @tunecino a ajouté un comportement pour un verrouillage optimiste.


Le verrouillage optimiste permet à plusieurs utilisateurs de modifier simultanément un enregistrement et d'éviter les conflits potentiels côté serveur. Dans le cas où un utilisateur tente d'enregistrer des modifications sur la base de données obsolètes (car un autre utilisateur a déjà été enregistré), une StaleObjectException et aucune mise à jour ou suppression n'est effectuée.


Le mécanisme de verrouillage lui-même a été implémenté dans les premières versions de Yii, mais son utilisation n'était pas si simple. Maintenant simple.


La documentation se trouve dans le manuel officiel.
et l'API OptimisticLockBehavior .


Migrations


Le générateur de migration de console utilise désormais les préfixes de table par défaut. Si vous souhaitez modifier cela, vous pouvez définir yii\console\controllers\MigrateController::useTablePrefix sur false dans la configuration de la commande de console.


Bases de données


  • Le pilote MySQL prend désormais en charge la précision de la fraction de seconde pour les types temporaires (MySQL> = 5.6.4 requis).
  • Le pilote Oracle prend désormais en charge la réinitialisation des séquences.

Aides


  • yii\helpers\Inflector appris à fonctionner correctement avec UTF-8.
  • Ajout du drapeau yii\mutex\FileMutex::$isWindows pour la boule Windows sur les machines invitées Unix.
  • yii\helpers\ReplaceArrayValue yii\helpers\UnsetArrayValue , yii\helpers\UnsetArrayValue yii\helpers\ReplaceArrayValue peuvent désormais être restaurés après la sérialisation à l'aide de var_export() .

Gridview


Ajout de l'option $filterOnFocusOut , qui détermine si le filtrage doit être effectué lorsque le focus est perdu.


jQuery


Vous pouvez maintenant installer jQuery 3.3.


Mutex


  • La fréquence des tentatives d'obtention d'un verrou yii\mutex\FileMutex::acquireLock() augmentée si $timeout fourni.
  • Ajout de la prise en charge de $timeout dans yii\mutex\PgsqlMutex::acquire() .

Correctifs de sécurité


Deux problèmes de sécurité ont été corrigés:


  • CVE-2018-14578: contourner la validation du jeton CSRF dans \yii\web\Request::getMethod()
  • CVE-2018-19454: journalisation excessive des informations sensibles dans \yii\log\Target

Modèles d'application


  • Les configurations de codéception ont été nettoyées dans les modèles de base et avancés.
  • Une configuration simple pour Docker a été ajoutée au modèle avancé.
  • Le modèle avancé nécessite désormais une version plus récente de Codeception, qui ne fonctionne que depuis PHP 7.0. Les anciennes applications fonctionneront comme avant.

Un peu sur Yii 3.0


La prochaine version majeure de Yii sera la 3.0. Une annonce détaillée sera faite plus tard, mais pour l'instant brièvement:


Architecture mise à jour : le framework est divisé en packages séparés .
Cela vous permettra de recueillir auprès d'eux ce dont vous avez besoin.


Indépendant de JavaScript : avec la réorganisation du code source, Yii est détaché du framework JavaScript dans le noyau.
Les packages clés Yii ne nécessitent pas jQuery.


Compatible avec PSR : Yii 3 suivra les recommandations de PHP-FIG. De nombreux PSR ont déjà été implémentés: journalisation, cache, DI et autres.


Yii 3.0 est en développement actif. Une annonce détaillée sera faite pour atteindre la version alpha.

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


All Articles