47歳でやむなくセミリタイア

病気のためセミリタイアをすることに。現在は週20時間程度のバイトをしています。その他、雑多なことを記録として書いています。

Yii2の使い方: 設定しておくべき項目

うむむ。何か今日は疲れていますので、早く寝よう。

Yii2で設定しておくべき項目のメモを2つ。

cssの指定にタイムスタンプを持たせる

私も最初嵌ってしまったのですが、cssファイルはWebブラウザ(Chromeなど)でキャッシュしてしまうため、cssファイルを変更しても、変更が有効にならないということが置きます。
WEBサイトの更新時、CSSのキャッシュを自動で読み直す方法
この場合、ここに書いてあるように、cssファイルを指定する場合に、"style.css?201712221200"のようにcssの更新日時を”?"の後ろに付けるという方法が有効です。
この設定を自動的に行なってくれるのが以下の指定です。common/config/main.php辺りに設定しておくと良いです。

return [
    'components' => [
        'assetManager' => [
            'appendTimestamp' => true
        ],
];

これを行うと、以下のような感じで、自動的にタイムスタンプを付けて、cssを指定してくれるようになります。

        <link href="/yii/assets/8c61b79e/css/bootstrap.css?v=1567576716" rel="stylesheet">

デフォルトの日本語メッセージの変更

日本語を使うようにするのは良いのですが、デフォルトではメッセージが今ひとつなので、書き換えたいと思うはずです。
まず、以下の設定を common/config/main.phpに行います。

return [
    'components' => [
        'i18n' => [
            'translations' => [
                'yii' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@common/messages',
                ],
            ],
        ],
    ],
    'language' => 'ja-JP',
];

次に、common/messages/jaのディレクトリを作成して、そこにシステムで用意された翻訳メッセージをコピーします。

$ mkdir -p common/messages/ja
$ cp vendor/yiisoft/yii2/messages/ja/yii.php common/messages/ja/

コピーしたyii.phpの日本語メッセージが使われるようになりますので、それを書き換えます。

    '{attribute} cannot be blank.' => '{attribute} は空白ではいけません。',

こんな風に翻訳メッセージが書かれているので書き換えるだけです。