Yii 2.0.16


Das PHP-Framework-Team von Yii hat die Version 2.0.16 veröffentlicht, die über hundert Korrekturen und einige Verbesserungen enthält . Mehrere Sicherheitsprobleme wurden behoben.


Der Yii 2.0-Zweig wurde vor über einem Jahr eingefroren, was bedeutet, dass er hauptsächlich Korrekturen akzeptiert. Dies wurde getan, damit sich das Yii-Team auf Yii 3 konzentrieren kann. Ganz am Ende dieses Beitrags finden Sie weitere Informationen zu Yii 3.


Diese Version enthält mehrere Änderungen, die sich auf vorhandene Anwendungen auswirken können. Lesen Sie unbedingt UPGRADE.md .


Vielen Dank an die Mitglieder der Yii-Community , die an der Entwicklung beteiligt sind. Ohne Sie wäre ein solches Großprojekt nicht möglich gewesen. Besonderer Dank geht an die Übersetzer, die die Dokumentation auf dem neuesten Stand halten.


Im Folgenden sind die interessantesten Verbesserungen aufgeführt, die es immer noch geschafft haben, in die Version einzudringen. Die vollständige Liste finden Sie wie gewohnt im CHANGELOG .


Aktiver Datensatz


Salem Ouerdani, @tunecino, fügte Verhalten für optimistisches Sperren hinzu.


Durch optimistisches Sperren können mehrere Benutzer gleichzeitig einen Datensatz bearbeiten und potenzielle Konflikte auf der Serverseite vermeiden. Wenn ein Benutzer versucht, Änderungen basierend auf veralteten Daten zu speichern (da bereits ein anderer Benutzer gespeichert wurde), wird eine StaleObjectException und keine Aktualisierung oder Löschung durchgeführt.


Der Mechanismus einer solchen Sperre selbst wurde in den ersten Versionen von Yii implementiert, aber die korrekte Verwendung war nicht so einfach. Jetzt einfach.


Die Dokumentation finden Sie im offiziellen Handbuch.
und die OptimisticLockBehavior-API .


Migrationen


Der Konsolenmigrationsgenerator verwendet jetzt standardmäßig Tabellenpräfixe. Wenn Sie dies ändern möchten, können Sie yii\console\controllers\MigrateController::useTablePrefix in der Konsolenbefehlskonfiguration auf false .


Datenbanken


  • Der MySQL-Treiber unterstützt jetzt Sekundenbruchteilgenauigkeit für temporäre Typen (MySQL> = 5.6.4 erforderlich).
  • Der Oracle-Treiber unterstützt jetzt das Zurücksetzen von Sequenzen.

Helfer


  • yii\helpers\Inflector gelernt, mit UTF-8 richtig zu arbeiten.
  • Flag yii\mutex\FileMutex::$isWindows für den Windows-Ball auf Unix- yii\mutex\FileMutex::$isWindows .
  • yii\helpers\UnsetArrayValue , yii\helpers\ReplaceArrayValue können jetzt nach der Serialisierung mit var_export() wiederhergestellt werden.

Gridview


Option $filterOnFocusOut hinzugefügt, die festlegt, ob gefiltert werden soll, wenn der Fokus verloren geht.


jQuery


Jetzt können Sie jQuery 3.3 installieren.


Mutex


  • Die Häufigkeit der Versuche, eine Sperre yii\mutex\FileMutex::acquireLock() erhöht, wenn $timeout .
  • Unterstützung für $timeout yii\mutex\PgsqlMutex::acquire() in yii\mutex\PgsqlMutex::acquire() .

Sicherheitskorrekturen


Zwei Sicherheitsprobleme wurden behoben:


  • CVE-2018-14578: CSRF-Token-Validierung in \yii\web\Request::getMethod()
  • CVE-2018-19454: Übermäßige Protokollierung vertraulicher Informationen in \yii\log\Target

Anwendungsvorlagen


  • Codeception-Konfigurationen wurden sowohl in den Basis- als auch in den erweiterten Vorlagen bereinigt.
  • Der erweiterten Vorlage wurde eine einfache Konfiguration für Docker hinzugefügt.
  • Die erweiterte Vorlage erfordert jetzt eine neuere Version von Codeception, die nur seit PHP 7.0 funktioniert. Alte Anwendungen funktionieren wie zuvor.

Ein bisschen über Yii 3.0


Die nächste Hauptversion von Yii wird 3.0 sein. Eine ausführliche Ankündigung erfolgt später, aber vorerst kurz:


Aktualisierte Architektur : Das Framework ist in separate Pakete unterteilt .
Auf diese Weise können Sie bei ihnen sammeln, was Sie benötigen.


JavaScript-unabhängig : Zusammen mit der Reorganisation des Quellcodes wird Yii vom JavaScript-Framework im Kernel getrennt.
Für wichtige Yii-Pakete ist jQuery nicht erforderlich.


Kompatibel mit PSR : Yii 3 folgt den Empfehlungen von PHP-FIG. Viele PSRs wurden bereits implementiert: Protokollierung, Cache, DI und andere.


Yii 3.0 befindet sich in der aktiven Entwicklung. Eine detaillierte Ankündigung erfolgt nach Erreichen der Alpha-Version.

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


All Articles