JobeetでYii2フレームワークを学習する(1)

Yiiは2008年12月3日にPRADOの開発エンジニアが、PRADOの欠点を改善し、さらに簡単で拡張性が高く高速なPHP5に基づくフレームワークとして公開され、その純粋なオブジェクト指向の設計や優れたキャッシュ機能により大規模プロジェクトの開発に耐える性能、充実したドキュメントのお陰で世界で人気のあるフレームワークの一つになりました。

しかし国内では日本語ドキュメントの少なさから利用が少ない為、初心者によっては学習コストが高いイメージがあります。

同じく大規模プロジェクト向きのフレームワークとして、Symofonyがありますが、こちらは日本語ドキュメントが充実しており、Jobeetという求人サイトをゼロから開発しながら仕事に十分活かせるレベルまで学習できる情報があります。

この記事では、Symfonyの求人サイト(Jobeet)をYiiで開発する過程を説明する事で少しでもYiiの良さを知って頂く事を目的としています。

説明の範囲について

この記事では、Yiiに直接触れる部分のみ説明しており、サーバやデータベース等の設定については、省略している箇所があります。

これからサーバやデータベース等の勉強も含めて、この説明を頼りに学習されている方には、大変申し訳ございません。

開発環境

  • Webサーバ
    お名前.com KVM CentOS 7.1
  • PHP
    バージョン 7.1.30
  • データベース
    MySQL 5.7.26 Community Server (GPL)
  • フレームワーク
    Yii2
  • パッケージ管理ツール
    Composer

Yii2の導入・設定

Yii2のインストール

Yii2を以下のコマンドでインストールします。

$ cd /var/www/html
$ composer create-project --prefer-dist yiisoft/yii2-app-basic yii-jobeet.takeho.com

コマンド実行後、yii-jobeet.takeho.comディレクトリが作成され、このディレクトリ内にYiiがインストールされている事が確認できます。

サーバの設定

Webサーバの設定で以下のディレクトリをドキュメントルートとして設定します。

/var/www/html/yii-jobeet.takeho.com/web

バーチャルホストの設定例

<VirtualHost *:80>
    ServerName  yii-jobeet.takeho.com
    DocumentRoot  /var/www/html/yii-jobeet.takeho.com/web
</VirtualHost>

サーバ設定完了後、ブラウザから以下のURLにアクセスしてYii2のインストール確認をします。

http://yii-jobet.takeho.com/

データベースの設定

Yii2にデータベースの接続情報を指定します。

config/db.php
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=<データベース名>',
    'username' => '<ユーザ名>',
    'password' => '<パスワード名>',
    'charset' => 'utf8',

    // Schema cache options (for production environment)
    //'enableSchemaCache' => true,
    //'schemaCacheDuration' => 60,
    //'schemaCache' => 'cache',
];

コード生成ツールの設定

Yii2にはデータベースのスキーマーよりCRUD(Create、Read、Update、Delete)処理のコードを自動生成するGiiというツールがあります。

こんな便利なツールを使わない手はありませんので、以下のように設定ファイルを編集します。

config/web.php
...省略
    $config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
        // uncomment the following to add your IP if you are not connecting from localhost.
        'allowedIPs' => ['<アクセス元IPアドレス>'],
    ];
...省略

Giiは第三者が自由に操作できると危険な為、アクセス元IPアドレスの設定箇所allowedIPsの値に、アクセス元IPを記載します。

注意

allowedIPsの値にワイルドーカード”*”を指定した場合、全てのアクセスに対し許可されてしましますので、ご注意ください。

設定が完了したら、ブラウザから以下URLにアクセスできるか確認します。

http://yii-jobeet.takeho.com/index.php?r=gii

デバックツールの設定

Yii2にはログの閲覧、リクエスト、レスポンスの詳細や実行に掛かる処理状況をタイムライン形式で確認できる高性能なデバックツールがあります。

こちらも利用できるよう設定します。

config/web.php
・・・省略
    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii\debug\Module',
        // uncomment the following to add your IP if you are not connecting from localhost.
        'allowedIPs' => ['<アクセス元IPアドレス>'],
    ];
・・・省略
注意

allowedIPsの値にワイルドーカード”*”を指定した場合、サーバの情報は勿論の事データベースのアクセス情報や暗号化に必要なキーの情報が第三者に閲覧可能な状態になりますので、ご注意ください。

URLフォーマットの変更

Giiの画面のアクセスURLでは

http://yii-jobeet.takeho.com/index.php?r=gii

のように?やindex.phpなどを交えて複雑な内容になっていますので、

http://yii-jobeet.takeho.com/gii

のように綺麗なURLでアクセスできるように設定します。

config/web.php
・・・省略
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            ],
        ],
・・・省略

タイトルとURLをコピーしました