2016年9月15日木曜日

Google Translateを使用してサイトを多言語化 -- use Google Translate For Localization --

  • Google Translate 登録画面へアクセス(事前にGoogleアカウント取得)
    • https://translate.google.com/manager/website/
    1. 「今すぐウェブサイトに追加」 ボタン押下
    2. ウェブサイトの URLを入力
    3. ウェブサイトの言語を選択
    4. 「次へ」 押下
    5. 翻訳する言語を選択
      1. すべての言語を選択すると一般的に使われない言語が多いので、言語を指定を選ぶことをおすすめ
    6. 表示モード選択
    7. 詳細設定選択
    8. 「コードを取得」 ボタンを押下 
    9. 表示されたHTMLをWebサイトに貼り付け

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ディレクトリを削除するのをお忘れなく。

2016年7月16日土曜日

Google API Client について

Google API Client 1系では、Google_Auth_AssertionCredentials というクラスを利用するが、2系からは使い方が変わったらしい。

資料もあまりないので、自分でドキュメント調べて、実装しようと試みたが、私の利用しているレンタルサーバーはSSLに対応していないので、そもそも利用できなかった。

実装する前に、ちゃんと調べるべきだった。。。

2016年7月1日金曜日

cakephp3 phpunit利用時にメールを飛ばさないようにする方法 -- do not mail send to use phpUnit --

PHP Ver 5.6.27
CakePHP Ver 3.1.9


SetUpメソッドに以下の内容を記載

------------------------------------------------
    public function setUp()
    {
        parent::setUp();

        Email::dropTransport('default');
        Email::configTransport('default', [ 'className' => 'Debug', ]);
    }
------------------------------------------------
※parent::setUp() を呼び出すことを忘れずに


cakephp3 get Controller Name / Action Name

PHP Ver 5.6.27
CakePHP Ver 3.1.9


いつも忘れちゃうので、備忘録として

  • Controller Name
    • ControllerまたはViewで$this->name

  • Action Name
    •  ControllerまたはViewで$this->request->action