edo1z blog

プログラミングなどに関するブログです

cakePHP2.3 GMOペイメントのモジュールをつかう

app/Vendorにモジュールのディレクトリを配置して、require_onceする。

<?php
App::uses('AppController', 'Controller');
$vendor = App::path('Vendor');
$path = $vendor[0] . 'gpay_client' . DS;
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
App::import('Vendor', 'gpay_client/com/gmo_pg/client/tran/EntryTran');
App::import('Vendor', 'gpay_client/com/gmo_pg/client/input/EntryTranInput');
App::import('Vendor', 'gpay_client/com/gmo_pg/client/tran/ExecTran');
App::import('Vendor', 'gpay_client/com/gmo_pg/client/input/ExecTranInput');

モジュールディレクトリの場所をインクルードパスに入れる必要があるので、上記のような感じにした。

参考: App::import() でファイルをインクルードする

尚、GMOペイメントのモジュールは、コンストラクタが2つある。PHP5.4だとRedefining already defined constructorというエラーがでた。だからcore.phpの下記を修正して、エラーがでないようにした。

Configure::write('Error', array(
    'handler' => 'ErrorHandler::handleError',
    //'level' => E_ALL &amp; ~E_DEPRECATED, ←元の表記
    'level' => E_ALL &amp; ~E_DEPRECATED &amp; ~E_STRICT, //←修正内容
    //'level' => 0,
    'trace' => true
));

PHP5を試してみる - コンストラクタの名称の統一 CakePHP2.xとPHP5.4でStrict Errorが出た場合の対処法