クイックスタートガイドでは、データベース移行、gii 操作、AR モデル、ルーティング、検証、ビューなどを含む Yii2 フレームワークの基本を説明します。 Yii2 を初めて使用する場合、または以前に PHP フレームワークを使用したことがない場合は、これが良い出発点になります。 Yii2 フレームワークの基本をすでに使用してマスターしている場合は、高度な Yii2 チュートリアルを楽しみにしてください (後で更新します)。
Yii2 機能の基本的な使い方を説明するために、簡単なブログ管理システムを構築していきます。
このチュートリアルの完全なコードは、後で github で公開されます。
Yii2 のフルバージョンのインストールチュートリアルについては以前に書きましたので、参照用にクリックしてください。ここでは手順のみを説明し、必要な説明は行いません。
composer <span>global</span> <span>require</span> "fxp/composer-asset-plugin:~1.1.1"<span> composer create</span>-project yiisoft/yii2-app-advanced advanced 2.0.8<span> cd advanced php init<br /></span>
#之后构建本地环境,我们配置advanced.dev指向frontend/web目录
データベース駆動型アプリケーションを開発および保守する場合、コードが変更されるとデータベースの構造も変わります。たとえば、アプリケーションの開発中に新しいテーブルが追加されるため、追加する必要があります。アプリケーションを運用環境にデプロイした後は、クエリのパフォーマンスを向上させるためにインデックスを確立する必要があります。 データベースの構造が変更されるとソースコードの変更が必要になることが多いため、Yii はデータベースの変更を記録できるデータベース移行機能を提供し、データベースとソースコードの両方がバージョン管理されるようにします。
この例では、yii migrate
コマンドを使用して、ブログに対応するデータ テーブルの移行を生成します。
yii migrate/create create_blog_table
このコマンドによって生成された移行ファイルは、advancedconsolemigrations ディレクトリにあります。yii merge コマンドによって主キー ID とテーブル名が移行ファイルに追加されたことに気づいたかもしれません。次に、ファイルを編集する必要があります。テーブル名を変更し、データ テーブル ブログに列を追加します:
<?<span>php </span><span>use</span><span> yii\db\Migration; </span><span>/*</span><span>* * Handles the creation for table `blog_table`. </span><span>*/</span> <span>class</span> m160525_153315_create_blog_table <span>extends</span><span> Migration { </span><span>/*</span><span>* * @inheritdoc </span><span>*/</span> <span>public</span> <span>function</span><span> up() { </span><span>$this</span>->createTable('blog',<span> [ </span>'id' => <span>$this</span>->primaryKey(), 'title' => <span>$this</span>-><span>string</span>(100)->notNull()->defaultValue(''), 'content' => <span>$this</span>->text(), 'create_time' => <span>$this</span>->datetime(),<span> ]); } </span><span>/*</span><span>* * @inheritdoc </span><span>*/</span> <span>public</span> <span>function</span><span> down() { </span><span>$this</span>->dropTable('blog'<span>); } }</span>
移行を実行する前に、まずデータベースを構成し、commonconfigmain-local.php ファイルを開きます。次の構成を参照してください。
'components' =><span> [ </span>'db' =><span> [ </span>'class' => 'yii\db\Connection', <span>//</span><span> 修改host 和dbname 之前需要手动创建了dbname才可以</span> 'dsn' => 'mysql:host=localhost;dbname=advanced', <span>//</span><span>登录数据库的账号</span> 'username' => 'root', <span>//</span><span>登录数据库的密码</span> 'password' => '', 'charset' => 'utf8',<span> ]</span>, <span>//</span><span> other code</span> ],データベースが構成されたら、次のコマンドを実行して移行を実行します
./yii migrateこの間、確認を求められますので、「はい」を押して Enter を押してください。このコマンドを実行してデータベースを開くと、移行ファイル (consolemigrations ディレクトリ) に定義されているすべてのデータ テーブルが作成されます。ブログテーブルが作成されており、移行で定義された列が含まれていることがわかります。
4. gii を使用して AR モデルと CRUD を生成します
<span>if</span> (!<span>YII_ENV_TEST) { </span><span>//</span><span> other code</span> <span>$config</span>['bootstrap'][] = 'gii'<span>; </span><span>$config</span>['modules']['gii'] =<span> [ </span>'class' => 'yii\gii\Module',<span> ]; }</span>次に、アドレス http://advanced.dev/index.php?r=gii を介して gii モジュールにアクセスし (最初に、frontend/web ディレクトリを指すように Advanced.dev を構成しました)、その機能を使用して、この操作に必要な一連のコードの生成にご協力ください。
4.1 AR モデルクラスの生成
戻って、gii ページで [Model Generator start] をクリックして、次のように AR モデル クラスを生成します。
4.2 CRUD コードの生成
gii のその他の操作については、yii2 gii の詳細な操作手順を参照してください。
これまで、gii を使用して一連のモデルとカード操作を生成してきました。
良いヒント: 実際の開発では、バックグラウンド管理は gii を使用して開発を支援する必要があります。これにより、開発結果を迅速に向上させることができます。
上記の操作に従って、次の関連ディレクトリに 9 つのファイルが生成されます
common\models\Blog.<span>php common\models\BlogSearch</span>.<span>php frontend\controllers\BlogController</span>.<span>php frontend\views\blog\_form</span>.<span>php frontend\views\blog\_search</span>.<span>php frontend\views\blog\create</span>.<span>php frontend\views\blog\index</span>.<span>php frontend\views\blog\update</span>.<span>php frontend\views\blog\view</span>.phpその後、ルーティングを通じて http://advanced.dev/index.php?r=blog にアクセスし、ブログの特定のページ情報を確認できます。
5. ブログを追加します
続きを読む