エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法

      2020/03/28

CakePHP3でcomposerを利用する方法

 

CakePHP3でcomposerコマンドを実行

 
ライブラリやプラグインをインストールする場合は、「composer require」コマンドを実行します。
 
CakePHP3では、各アプリごとに CakePHP3をインストールする際にも composerを使いますので、composerはインストールされているものとして話を進めます。
 
 
ちなみに、Composerがインストールされているか、否かを確認したいときは下記のコマンドを実行します。

 
バージョンが表示される場合はインストールされています。
下記のように「コマンドが見つかりません」「command not found」と表示される場合は Composerはインストールされていませんのでインストールが必要です。
 

 
 
また、Composerはインストールされていても、「composer.phar」のままの場合は、下記の記述方法で確認することができます。
 

 
これでバージョンが表示される場合は、「composer.phar」を「composer」として適切な場所に移動させるか、「php composer.phar require phpoffice/phpexcel」のようにコマンドを実行する必要があります。
(「composer.phar」を適切な場所に移動させる方法は、検索して探してください。)
 
 

composerコマンド・ライブラリ名が分かっている場合

 
例えば、「CakePHP3でPHPExcelを使ってエクセルファイルを生成、出力する方法」で紹介していますが、PHPからエクセルファイルを出力するプラグインをインストールする際は、下記のような形になります。
 

 
コマンドを実行すると、自動的にプラグインのファイルを取得しに行き、インストールしてくれます。
環境によっては、インストールが始まるまで 1分程度なんのレスポンスもない場合もありますが、きちんとインストールの処理は実行されていますので、そのまま待ちましょう。
 

 

 
上記の画面は、ローカルの Windows状に構築した XAMPP環境で実行しています。
 
 

composerコマンド・ライブラリをバージョン指定でインストールする場合

 

 
先に解説したように、上記のコマンドでライブラリをインストールすると、最新のバージョンでインストールされます。
 
ですが、バージョンを指定したい場合もあるでしょう。そういう場合は下記のように「:1.6」のように指定するバージョンを追加します。
 

 
 
また、具体的なバージョンを指定するのではなく、「1.x系」の最新版をインストールしたいという場合は、下記のように「*」を指定します。
 

 
 

composerコマンド・ライブラリ名があやふやな場合

 
プラグインをインストールする際に、正確なライブラリ名、プラグイン名が分からない場合もあるかと思います。
そのような場合は、ライブラリ名、プラグイン名の一部を入力すると、関連するライブラリのリストを表示してくれますので、その中から選択してインストールする方法もあります。
 
まずは、「composer require」だけを入力します。
 
そうすると「Search for a package:」と表示されますので、ライブラリ名の一部を入力します。
 
その結果、入力したライブラリ名にマッチしたパッケージのリストを表示してくれますので、インストールしたいものの番号を入力すれば OKです。
 
下記の場合は、「php-simple-html-dom-parser」を指定し、「3」を指定しています。
その後は待つだけです。
 

 
 


 

CakePHP3でcomposerコマンドを実行すると作成・更新されるファイル

 
composerコマンドを実行すると、指定したパッケージをインストールしてくれるだけではなく、CakePHP3で利用するために必要なファイルの更新も行ってくれます。
 
具体的には、ルートフォルダにある「/composer.json」「/composer.lock」ファイルが更新されます。
 
「/composer.json」には、「require」の値として、インストールしたパッケージの情報が追加されます。

 
また、「/composer.lock」には、ファイルのパスやバージョン、権限などの設定情報が追加されます。追加される情報はかなり多いので、ここでは割愛します。
 
 
もちろん、インストールしたパッケージ(ライブラリ、プラグイン)も所定の場所である「/vendor」フォルダの中に設置されています。
 
 
composerコマンドでは、これらの処理をまとめて行います。
「/composer.lock」に追加される情報は、アナログ的な対応で設定することは限りなく面倒なので、CakePHP3では、ライブラリやプラグインのインストールは、composerコマンドを使うものだということを理解しておきましょう。
 
 

CakePHP3で composerを使わずにプラグインやライブラリをインストールして使用するする方法

 
ここで記事を書いていますが、CakePHP3でプラグインを利用する場合は、基本的には Composerを利用してインストールをします。
ですが、Composer用のインストーラーが用意されていないプラグインもあります。
そんな場合は、ファイルをダウンロードしてきて、Vendorにファイルを設置して、という手順を踏みますが、手動でプラグインをインストールする方法は下記に記事を書いていますので、こちらを参考にしてください。
CakePHP3でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法
 
 

CakePHP3の関連記事

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のOGPはHTMLヘルパーの$this->Html->meta()を使って設定
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP 2.3 ID以外のカラムでアソシエーション(連携)をさせる場合

ID以外のカラムでアソシエーション(連携)させるための考え方とサンプルソースを用いての説明を行っています。

CakePHP3のユーザ管理・認証プラグイン CakeDC/Usersの導入・機能解説・3.1.5対応
CakePHP3のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説・3.6以降対応

CakePHP3のユーザ管理プラグイン Usersは、ユーザ登録、メール認証、ログイン認証、ユーザ管理、権限管理、reCAPTCHAなど会員制のサイトを簡単に実現可能。その導入方法、カスタマイズ方法を解説。

CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得
CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得

URLやドメイン、フォルダへのパスの取得は、ビューではUrlHelperを使い、コントローラーではRouterクラスを使います。第2引数の指定でURLを取得することも可能。

CakePHP3でレコードを追加、更新(Insert、Update)する複数の方法を紹介
CakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介

CakePHP3でレコードを追加、更新(Insert、Update)する記述方法を解説。1件ずつ処理、全件をまとめて処理、条件に該当する複数件のレコードを処理方法をサンプルコードを用いて解説。

CakePHP2の検索Plugin CakeDC/Searchで重複を省くgroup by(distinct)の実装方法
CakePHP2の検索Plugin CakeDC/Searchで重複を省くgroup by(distinct)の実装方法

CakePHP2の検索プラグイン「CakeDC/Search」で、重複レコードを省くgroup by、distinctを使う方法についての解説。設定する場所はpaginatorの条件とするので、find()関数と同じ。

CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る
CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る

他のテーブルのマスタのレコードからプルダウンリストを作成し、選択できるようにするサンプルプログラムと解説。ORMの設定によりデータベースの値を取得し、配列を作成し optionsに与える。

CakePHP 2.3 Search Pluginで検索処理 その3入力エリア一つで複数の項目を同時に検索する方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で入力エリア一つで複数の項目を同時に検索する方法を解説。

CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説

CakePHP3でCSVファイルをアップロードしレコードを追加、更新する処理の作成方法の解説。モデルとは直接関連しないフォームからCSVファイルをアップロードするため汎用的に使用可能。

CakePHP3でテーブルにカラムを追加したときに変更するポイントのまとめ
CakePHP3でテーブルにカラム(項目)を追加したときに変更するポイントのまとめ

CakePHP3でシステム開発をする際、途中でカラムを追加した場合に何を変更すればいいかを確認。カラムを追加する前後で Bakeした結果を比較し、変更になった点をリストアップした。

CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説

CakeDC謹製Usersプラグインの紹介。Usersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。