CakePHP3 にて外部ライブラリを使用する
CakePHP3では外部ライブラリを読み込むときは Composer を使って読み込むのが一般的です。
他社が提供しているライブラリには、Composer に対応していないライブラリも数多くあり、中には古い PHP バージョンから対応するために名前空間を使用していないライブラリもあります。あるときに名前空間を使用していないライブラリを読み込む必要があったときに手間取ったので、そのときの対応方法をまとめます。
外部ライブラリの読み込み方法
外部ライブラリを読み込むときの作業は
1.「composer.json」ファイルに外部ライブラリへのパスを追加
2.「composer.json」ファイルの設定変更を反映するコマンドの実行
の2点になります。
では実際に例を確認しながら確認してみましょう。
「composer.json」ファイルに外部ライブラリへのパスを追加
下記のような「FooItem」ライブラリを読み込みたいときは、「composer.json」の autoload の項目にパスを追加します。仮にパス「plugins/fooLib/src/fooItem.php」に設置する場合は、「”FooItem\\”: “plugins/fooItem/src”」と記述します。なお「”App\\”: “src/”」の後ろにカンマ「,」を追加することをお忘れなく。
composer.json に追記する場所
1 2 3 4 5 6 |
"autoload": { "psr-4": { "App\\": "src/", "FooItem\\": "plugins/fooItem/src" ←ココに追加してください } }, |
FooItem のソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php namespace FooItem; class FooItem { public function init() { (初期化の処理が入っているよ) } public function getName() { (ゲッター的な処理が入っているよ) } public function setName($name) { (セッター的な処理が入っているよ) } } |
「composer.json」ファイルに外部ライブラリへのパスを追加
「composer.json」の設定変更を反映させるときは、
コマンドを実行します。
「composer dump-autoload」コマンドの実行サンプル
1 2 3 |
hoge@hostname:~/cakephp$ composer dump-autoload Generating autoload files > Cake\Composer\Installer\PluginInstaller::postAutoloadDump |
ページ数: 688ページ
出版社:SBクリエイティブ
発売日:2018/06/21
出典:amazon