CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法
2020/03/28
CakePHP3でcomposerを利用する方法
CakePHP3でcomposerコマンドを実行
ライブラリやプラグインをインストールする場合は、「composer require」コマンドを実行します。
CakePHP3では、各アプリごとに CakePHP3をインストールする際にも composerを使いますので、composerはインストールされているものとして話を進めます。
ちなみに、Composerがインストールされているか、否かを確認したいときは下記のコマンドを実行します。
1 2 |
$ composer --version Composer version 1.6.5 2018-05-04 11:44:59 |
バージョンが表示される場合はインストールされています。
下記のように「コマンドが見つかりません」「command not found」と表示される場合は Composerはインストールされていませんのでインストールが必要です。
1 2 |
$ composer --version -bash: composer: コマンドが見つかりません |
また、Composerはインストールされていても、「composer.phar」のままの場合は、下記の記述方法で確認することができます。
1 2 |
$ php composer.phar --version Composer version 1.6.5 2018-05-04 11:44:59 |
これでバージョンが表示される場合は、「composer.phar」を「composer」として適切な場所に移動させるか、「php composer.phar require phpoffice/phpexcel」のようにコマンドを実行する必要があります。
(「composer.phar」を適切な場所に移動させる方法は、検索して探してください。)
composerコマンド・ライブラリ名が分かっている場合
例えば、「CakePHP3でPHPExcelを使ってエクセルファイルを生成、出力する方法」で紹介していますが、PHPからエクセルファイルを出力するプラグインをインストールする際は、下記のような形になります。
1 |
composer require phpoffice/phpexcel |
コマンドを実行すると、自動的にプラグインのファイルを取得しに行き、インストールしてくれます。
環境によっては、インストールが始まるまで 1分程度なんのレスポンスもない場合もありますが、きちんとインストールの処理は実行されていますので、そのまま待ちましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
C:\xampp\htdocs\cake3> composer require phpoffice/phpexcel Using version ^1.8 for phpoffice/phpexcel ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Installing phpoffice/phpexcel (1.8.1) Downloading: 100% Writing lock file Generating autoload files > Cake\Composer\Installer\PluginInstaller::postAutoloadDump C:\xampp\htdocs\cake3> |
上記の画面は、ローカルの Windows状に構築した XAMPP環境で実行しています。
composerコマンド・ライブラリをバージョン指定でインストールする場合
1 |
composer require phpoffice/phpexcel |
先に解説したように、上記のコマンドでライブラリをインストールすると、最新のバージョンでインストールされます。
ですが、バージョンを指定したい場合もあるでしょう。そういう場合は下記のように「:1.6」のように指定するバージョンを追加します。
1 |
composer require phpoffice/phpexcel:1.6 |
また、具体的なバージョンを指定するのではなく、「1.x系」の最新版をインストールしたいという場合は、下記のように「*」を指定します。
1 |
composer require phpoffice/phpexcel:1.* |
composerコマンド・ライブラリ名があやふやな場合
プラグインをインストールする際に、正確なライブラリ名、プラグイン名が分からない場合もあるかと思います。
そのような場合は、ライブラリ名、プラグイン名の一部を入力すると、関連するライブラリのリストを表示してくれますので、その中から選択してインストールする方法もあります。
まずは、「composer require」だけを入力します。
そうすると「Search for a package:」と表示されますので、ライブラリ名の一部を入力します。
その結果、入力したライブラリ名にマッチしたパッケージのリストを表示してくれますので、インストールしたいものの番号を入力すれば OKです。
下記の場合は、「php-simple-html-dom-parser」を指定し、「3」を指定しています。
その後は待つだけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
C:\xampp\htdocs\cake3> composer require Search for a package: php-simple-html-dom-parser Found 15 packages matching php-simple-html-dom-parser [0] monashee/php-simple-html-dom-parser [1] emanueleminotto/simple-html-dom [2] rdir/simple-html-dom [3] sunra/php-simple-html-dom-parser [4] sb15/php-simple-html-dom-parser [5] simple-html-dom/simple-html-dom [6] shent/simple-html-dom [7] alc/dom-parser-helper [8] dimabdc/php-fast-simple-html-dom-parser [9] royalmar/simple-html-dom-parser [10] axllent/simplehtmldom [11] asymptix/php-html-dom-parser [12] aayaresko/yii2-advanced-html-dom [13] newrey/simplehtmldom [14] mgargano/simplehtmldom Enter package # to add, or the complete package name if it is not listed: 3 Enter the version constraint to require (or leave blank to use the latest version): Using version ^1.5 for sunra/php-simple-html-dom-parser Search for a package: ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Installing sunra/php-simple-html-dom-parser (v1.5.2) Loading from cache Writing lock file Generating autoload files > Cake\Composer\Installer\PluginInstaller::postAutoloadDump C:\xampp\htdocs\cake3> |
CakePHP3でcomposerコマンドを実行すると作成・更新されるファイル
composerコマンドを実行すると、指定したパッケージをインストールしてくれるだけではなく、CakePHP3で利用するために必要なファイルの更新も行ってくれます。
具体的には、ルートフォルダにある「/composer.json」「/composer.lock」ファイルが更新されます。
「/composer.json」には、「require」の値として、インストールしたパッケージの情報が追加されます。
1 2 3 4 |
"require": { : "sunra/php-simple-html-dom-parser": "^1.5" }, |
また、「/composer.lock」には、ファイルのパスやバージョン、権限などの設定情報が追加されます。追加される情報はかなり多いので、ここでは割愛します。
もちろん、インストールしたパッケージ(ライブラリ、プラグイン)も所定の場所である「/vendor」フォルダの中に設置されています。
composerコマンドでは、これらの処理をまとめて行います。
「/composer.lock」に追加される情報は、アナログ的な対応で設定することは限りなく面倒なので、CakePHP3では、ライブラリやプラグインのインストールは、composerコマンドを使うものだということを理解しておきましょう。
CakePHP3で composerを使わずにプラグインやライブラリをインストールして使用するする方法
ここで記事を書いていますが、CakePHP3でプラグインを利用する場合は、基本的には Composerを利用してインストールをします。
ですが、Composer用のインストーラーが用意されていないプラグインもあります。
そんな場合は、ファイルをダウンロードしてきて、Vendorにファイルを設置して、という手順を踏みますが、手動でプラグインをインストールする方法は下記に記事を書いていますので、こちらを参考にしてください。
CakePHP3でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法
CakePHP3の関連記事
CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールするCakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
その他の「CakePHP3」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP4で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。
-
-
CakePHP4で複数の引数(パラメータ)を付与してコマンドを実行する方法
CakePHP4でコマンドを実行する際に引数(パラメータ)をコマンド内で受け取る処理について解説。複数個の引数にも対応する記述方法も解説。
-
-
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakeDC謹製Usersプラグインの紹介。Usersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。
-
-
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングをする方法を解説。インストール方法、読み込み方法。および、具体的なスクレイピングを実行するサンプルソースも。
-
-
CakePHP3のUpload Plugin 3.0をバリデーションなど実運用向けのカスタマイズ方法解説・その2
CakePHP3でファイル、画像をアップロードするプラグイン、upload plugin 3を導入する手順を解説した記事。3部作のその2でバリデーションなどの実用的なカスタマイズ方法を解説。
-
-
CakePHP4、5のnewEmptyEntityで作成したオブジェクトは空なのか、確認してみた
CakePHPでレコードを新規登録をする際にnewEmptyEntity()を使って空のEntityを作成するが、これのempty、is_nullなどのでの判定結果がtrueかfalseか確認してみた。
-
-
cakephp3 カスタムバリデーションを簡易的に実装する方法
CakePHP3の独自のバリデーションをテーブルクラス内に簡単に記述する方法を解説。他のテーブルクラスでは使えないが、記述する量は少なく実装できるため、他で使わない処理を書くのには便利。
-
-
VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する
VirtualBoxにCentOS、Apache、MySQL、PHPをインストールするところから初めてCakePHP3の開発環境を構築する手順を詳細解説。この記事1つで全ての設定が完了する。
-
-
CakePHP3のプラグイン「CakeDC/Users」を日本語化・翻訳ファイルもダウンロード可
CakePHP3のユーザ管理、ログイン認証プラグインである「CakeDC/Users」のメッセージを日本語にする手順の解説とともに、日本語の翻訳ファイルを提供。ファイルを設置すれば日本語になる!
-
-
CakePHP3でテーブルにカラム(項目)を追加したときに変更するポイントのまとめ
CakePHP3でシステム開発をする際、途中でカラムを追加した場合に何を変更すればいいかを確認。カラムを追加する前後で Bakeした結果を比較し、変更になった点をリストアップした。