2016年8月30日火曜日

cakephp3 Cache

PHP Ver 5.6.27
CakePHP Ver 3.1.9


画像やJavascript、CSSをキャッシュしたい場合は、以下のように設定

app.php
-------------------------------------------
    'Asset' => [
        'timestamp' => true, // 画像,JS,CSSのキャッシュを無効にする(デバッグモードのときのみ)
    ],

-------------------------------------------
デバッグモード時に限らず、常にクエリストリングを付けたい場合 : 'force'

2016年8月2日火曜日

Cakephp3 での例外スロー時のPHPUnit -- cakephp3 phpunit throw Exception --

PHP Ver 5.6.27
CakePHP Ver 3.1.9


例外をスローした場合のUnitTestの比較方法を色々と調べてみたが、

------------------------------------------
setExpectedException(InvalidArgumentException)
------------------------------------------

私の環境では、この方法だとなぜか上手くいかない。

try catchでの方法も試してみたが、これも上手くいかない。

なので、少し力技ではあるが、以下のようにした。

------------------------------------------
$this->assertInstanceOf('InvalidArgumentException', $this->_exception);
$this->assertEquals('Invalid Argument', $this->_exception->getMessage());
------------------------------------------


注意:
NotFoundExceptionなどはフルpathで指定しないといけない。
------------------------------------------
$this->assertInstanceOf('Cake\Network\Exception\NotFoundException', $this->_exception);

cakephp3 多言語化 -- localization --

PHP Ver 5.6.27
CakePHP Ver 3.1.9


文字変換用ファイル作成

・src/Locale/{Lang}/default.poを作成
  {Lang}は日本語なら”ja_JP”、英語なら”en_US”

・変換文字列を記載
  msgid "{変換前の文字列}"
  msgstr "{変換後の文字列}"

例:
  msgid "Tweet"
  msgstr "ツイート"

・ini_setで言語の指定
  ini_set('intl.default_locale', 'ja_JP');

これで文字列が変換される。

但し、default.poファイルはキャッシュされるので、追記や変更を行った場合は、tmp/cacheディレクトリを削除するのをお忘れなく。