webdev:yii2
Inhaltsverzeichnis
Yii2
Installation
Benötigt XAMPP o.ä. und Composer.
- Basic Version: Single application in single folder
- Advanced: Two applications in single folder (frontend & backend), herunterscrollen…
Hier Basic.
php ~/composer.phar create-project --prefer-dist yiisoft/yii2-app-basic yii2-test/
Laut composer help create-project werden auch dev Libs installiert. (Unterdrücken mit –no-dev)
Für den Debug Modus muss das Verzeichnis runtime/debug schreibbar sein.
Templates
$this→head()inkludiert CSS Referenzen gemäss Assets AbhängigkeitenYii::$appreferenziert auf das App Objekt. Variablen können über die Konfiguration angepasst werden, z.B. $app→language, $app→components, usw.
Class yii\bootstrap\NavBar
https://www.yiiframework.com/extension/yiisoft/yii2-bootstrap/doc/api/2.0/yii-bootstrap-navbar
- main.php
NavBar::begin([ 'brandLabel' => Yii::$app->name, // Name der Anwendung 'brandUrl' => Yii::$app->homeUrl, // URL der Anwendung 'options' => ['class' => 'navbar-expand-md navbar-dark bg-dark fixed-top'], 'innerContainerOptions' => ['class' => 'container-float w-100'], // normal wird inner Container mit der class 'container' ausgegeben 'renderInnerContainer' => false, // innerer Container nicht ausgeben ]);
Class yii\bootstrap\Nav
https://www.yiiframework.com/extension/yiisoft/yii2-bootstrap/doc/api/2.0/yii-bootstrap-nav
/* Wird 'item' definiert, wird ein Untermenü generiert. */ /* Externe URL muss als String definiert werden. Array wird gemäss urlManager in die eingestellte Form gebracht. */ /* options betrifft den "äusseren" li-Tag, mit linkOptions können zusätzliche Parameter des 'a'-Tag definiert werden */ [ 'label' => 'ELGO', 'options' => ['class' => 'ms-auto'], 'items' => [ ['label' => 'Web', 'url' => 'https://www.elgo.li', 'linkOptions' => ['target' => '_blank'] ], ['label' => 'Configurator', 'url' => 'https://configurator.elgo.li', 'linkOptions' => ['target' => '_blank']], ] ],
Tools
yii\helpers\ArrayHelper::mergeFügt mehrere Arrays zusammen, wobei spätere Werte die früheren überschreibenHtml::encode()übernimmt die HTML Codierung eines Strings\yii\helpers\Url::to(['/site/logout']);wandelt die Url gemäss urlManager um. Wenn nicht das Nav Widget verwendet wird, müssen URLs entsprechend ausgegeben werden
Konfiguration
Tabellen Präfix
https://www.yiiframework.com/wiki/42/how-to-make-customizable-db-table-prefixes-using-activerecord
- config/db.php
return [ ... 'tablePrefix' => 'sys_', ... ];
Migrations
Der Tabellenpräfix sollte vorher gesetzt werden!
php yii migrate/history
Nun ist die Tabelle fürs Tracking vorhanden.
Migrierung einer vordefinierten Migration mit Argument -migrationPath:
php yii migrate --migrationPath=@yii/rbac/migrations
Migration für Tabelle erstellen
php yii migrate/create create_videos_table --fields="id:string(16):notNull,title:string(32) ... created_by:integer(11):foreignKey(user)"
webdev/yii2.txt · Zuletzt geändert: von urs
