Yii 2.0.6

    Die Veröffentlichung des PHP-Frameworks Yii Version 2.0.6.

    Installations- und Upgrade-Anweisungen finden Sie unter http://www.yiiframework.com/download/ .

    Version 2.0.6 ist eine Patch-Version für Branch 2.0 und enthält über 70 kleinere Verbesserungen und Korrekturen , zahlreiche Dokumentationsverbesserungen und signifikante Fortschritte bei der Übersetzung.

    Vielen Dank an alle an der Entwicklung des Frameworks Beteiligten . Ihre Pull-Anfragen, Diskussionen und andere Hilfe sind unverzichtbar.

    Der Entwicklungsprozess des Frameworks kann durch Setzen eines Sterns oder durch Klicken auf die Schaltfläche „ Überwachen “ auf GitHub überwacht werden .
    Sie können auch Twitter und Facebook abonnieren .

    Im Folgenden finden Sie einen kleinen Überblick über die interessantesten Neuerungen.



    Verbesserte Migrationssyntax



    Ursprünglich planten wir den Schema Builder in Version 2.1, aber pana1990 und vaseninm haben großartige Arbeit geleistet, und jetzt ist die Syntax bei Migrationen viel angenehmer geworden:

    $this->createTable('example_table', [
        'id' => $this->primaryKey(),
        'name' => $this->string(64)->notNull(),
        'type' => $this->integer()->notNull()->defaultValue(10),
        'description' => $this->text(),
        'rule_name' => $this->string(64),
        'data' => $this->text(),
        'created_at' => $this->datetime()->notNull(),
        'updated_at' => $this->datetime(),
    ]);
    


    Fehlerbehandlung



    Es gibt einige Korrekturen und Verbesserungen in dieser Version, die die Fehlerbehandlung noch stabiler und nützlicher machen sollen:

    - Yii bewältigt jetzt schwerwiegende HHVM-Fehler.
    - Wenn Sie FileCachenicht in die Datei schreiben konnten, wird sie in den Protokollen angezeigt.
    - yii\web\ErrorActionzeigt jetzt 404, aber keine leere Seite bei direkter Navigation zur URL.
    - Wenn es yii migrateaufgrund eines fehlenden Verzeichnisses nicht funktioniert, wird der Pfad dazu in einem Fehler angezeigt.
    - Json::encode()und Json::decode()besser mit Fehlern umgehen, indem verständliche Ausnahmen ausgelöst werden.
    - ErrorHandler::logException()Jetzt wird das gesamte Objekt protokolliert, nicht nur die Zeichenfolgendarstellung.

    Mehr Kontrolle über ActiveForm über JavaScript



    Sie können Fehler für bestimmte Felder aktualisieren:

    // добавить ошибку
    $('#contact-form').yiiActiveForm('updateAttribute', 'contactform-subject', ["I have an error..."]);
    // убрать ошибку
    $('#contact-form').yiiActiveForm('updateAttribute', 'contactform-subject', '');
    

    Oder für alle Felder und Lebensläufe auf einmal:


    $('#contact-form').yiiActiveForm('updateMessages', {
        'contactform-subject': ['Really?'],
        'contactform-email': ['I don\'t like it!']
    }, true);
    


    Verbesserungen yii message



    Die Dateierstellung wird jetzt unterstützt .pot.

    Der Befehl verarbeitet jetzt verschachtelte Anrufe perfekt:

    Yii::t('app', 'There are new {messages} for you!', [
        'messages' => Html::a(Yii::t('app', 'messages'), ['user/notifications']),
    ]);
    


    Auch jetzt erfolgt die Sortierung, auch wenn keine neuen Zeilen vorhanden sind, wodurch weniger Unterschiede auftreten.

    Außerdem wurde eine Option hinzugefügt markUnused, mit der Sie das Hinzufügen @@zu nicht verwendeten Leitungen deaktivieren können.

    Vermögenswerte



    Jetzt können Sie konfigurieren, was veröffentlicht werden soll und was nicht:

    class MyAsset extends AssetBundle
    {
        public $sourcePath = '@app/assets/js';
        public $js = [
            'app.js',
        ];
        public $depends = [
            'yii\web\YiiAsset',
        ];
        public $publishOptions = [
            'except' => '*.ts', // exclude TypeScript sources
            // 'only' => '*.js', // include JavaScript only
        ];
    }
    


    Sie können den Hashalgorithmus für Verzeichnisnamen von ändern web/assets. Sie können dies direkt aus der Anwendungskonfiguration heraus tun:

    return [
        // ...
        'components' => [
            'assetManager' => [
                'hashCallback' => function ($path) {
                    return hash('md4', $path);
                }
            ],
        ],
    ];
    


    Zusätzliche Felder im Sitzungsspeicher



    Jetzt können Sie problemlos zusätzliche Daten im Sitzungsrepository speichern. Wird bisher yii\web\DbSessionnur unterstützt, kann aber in Zukunft erweitert werden. Zum Konfigurieren müssen Sie die Anwendungskonfiguration ändern:

    return [
        // ...
        'components' => [
            'session' => [
                'class' => 'yii\web\DbSession',
                'readCallback' => function ($fields) {
                    return [
                        'expireDate' => Yii::$app->formatter->asDate($fields['expire']),
                    ];
                },
                'writeCallback' => function ($session) {
                    return [
                        'user_id' => Yii::$app->user->id,
                        'ip' => $_SERVER['REMOTE_ADDR'],
                        'is_trusted' => $session->get('is_trusted', false),
                    ];
                }
            ],
        ],
    ];
    

    Jetzt auch beliebt: