エス技研

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


CakePHP4 のコマンドプログラムからコンポーネントを読み込む方法解説

      2024/06/21

CakePHP4 のコマンドプログラムからコンポーネントを読み込む

 
今回は「CakePHP4でコマンドプログラムを作成する」の全 4回のうちの 2回目で、「コマンドプログラムからコンポーネントを呼び出す方法」について解説します。
 

 
 

共通関数のコンポーネントについて

 
プログラムを作成する中で、他の「コントローラー(Controller)」でも使用する共通処理は、「コンポーネント(Component)」として別ファイルにまとめて管理をします。
(「モデル(Model)」の場合は「ビヘイビア(Behavior)」で、「ビュー(View)」の場合は「ヘルパー(Helper)」ですね。)
 
コマンドプログラムからは、「コントローラー(Controller)」用に作成されたものも含めて、「コンポーネント(Component)」の処理を呼び出して利用することができるようになっています。
 
 
今回の記事では、そのコンポーネントを呼び出して、コマンド内で利用する方法について解説します。
 
 

コマンドから共通関数のコンポーネントを読み込む処理

 
コンポーネントを読み込む処理を追記したコマンドプログラムが下記となります。
 

 
 

利用するコンポーネントを use句で指定

 
まず初めに、「use句」を記述する箇所に 11~12行目の 2行を追記します。
11行目は固定の文字列ですが、12行目は使用するコンポーネントの名称に書き換えてください。
上記では「CommonComponent.php」と言うコンポーネントを呼び出す想定の記述になっています。
 
 

コンポーネントをオブジェクトとして取得

 
続けて、コンポーネントをオブジェクトとして取得する「39行目」か「57行目」のいずれかを記述します。
 
コンポーネントだけを呼び出すのであれば 57行目の記述方法の方が簡単かと思います。
 
ただ、個人的には「initialize()」に、そのコマンド(コントローラー)内で使用するコンポーネントだけではなく、モデルの読み込みもまとめて記述する方法が好きですので、34~40行目の「initialize()」に記述する方法をオススメしたいですね。
 
 

 
 

コンポーネントを作成

 
コンポーネントは下記コマンドでコンポーネントのテンプレートファイルを生成することができます。
 

 
 
これに対して、先のコマンドから利用する「getSample()」関数を追記すると下記のようになります。
 

 
 

コマンドプログラムからコンポーネントを読み込む方法のまとめ

 
基本的に、コントローラーからとコマンドからと、コンポーネントを読み込む方法はあまり違いはありません。
ただ、少し記述の仕方が違うことと、use句で使用するコンポーネントを指定する点が違うなどしていますので、少し確認が必要かと思います。
 
 

CakePHP4の関連記事

CakePHP4系でJSONレスポンスの処理ではwithStringBodyを使う。3との違い解説
CakePHP4、CakePHP5の「warning: DebugKit is disabling...」の対処方法
MySQL+CakePHPのdate型、datetime型項目は「2999-12-31」までしか扱えない
CakePHP4のFrozenDateで1ヵ月前、先月、今月1日、来月末の日付などを算出する方法
CakePHP4のcake cache clear_allでPermission deniedはパーミッションの変更が必要
CakePHP4のクリエビルダーを使用してOR条件をAND条件でつなぐSQL文を作る方法
CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法
CakePHP4から外部のデータベースにアクセスする方法解説
CakePHP4の数値項目は「like %10%」の部分一致検索(find select)はできない
CakePHP4でロギングスコープやログレベルを使用してログを出し分ける方法を解説
 
その他の「CakePHP4」に関する記事一覧
 
 

 - CakePHP 3.x 4.x 5.x

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

CakePHP3で「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」などのエラーが出たときの確認するポイント
CakePHP3で「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」などのエラーが出たときの確認するポイント

CakePHP3の開発で発生する「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」のエラーには特有の原因もあるため、その説明と対処方法の解説。

CakePHP 2.3でOn Duplicate Key構文を実装

CakePHPで On Duplicate Key構文を Queryを利用して実装する方法をサンプルソース付きで解説します。

CakePHP4で公開側と管理側のデザインテンプレートを分ける方法・setLayout()
CakePHP4で公開側と管理側のデザインテンプレートを分ける方法・setLayout()

CakePHP4でデフォルトのレイアウトファイル「default.php」は管理側に使用し、これとは別のデザインを公開側のページに設定したい、を実装する方法を解説。

CakePHP3の検索プラグイン「friendsofcake/search」の設置方法・CakePHP3.6対応
CakePHP3の検索プラグイン「friendsofcake/search」の設置方法・CakePHP3.6対応

CakePHP3で検索を担うプラグイン「friendsofcake/search」の紹介。基本的な設置方法の紹介のほか、処理の記述方法のバリエーション、エラーの解説など。CakeDC/searchより導入は簡単!

CakePHP3でアソシエーション先のカラムでデータをソートして取得したい
CakePHP3でアソシエーション先のカラムでデータをソートして取得したい

アソシエーション先のテーブルのカラムをキーにソートをしたデータを取得したい!ときの記述方法を解説。「orderAsc()」ではなく「contain()」の中にSort条件を記述する。

CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説
CakePHP4のCakeDC/Usersの Usersへの接続、バリデーションのカスタマイズ方法解説

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

CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法
CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法

CakePHP3の標準設定のタイムゾーンは「UTC(協定世界時)」に設定されている。これを日本標準時に変更する方法(app.php、bootstrap.phpの変更方法)の解説。

CakePHP3のアソシエーションでJOINのタイプのLEFT、INNERを切り替えながら使う方法
CakePHP3のアソシエーションでJOINのタイプのLEFT、INNERを切り替えながら使う方法

CakePHP3でテーブルのアソシエーションしたデータの取得をコントローラー側でINNERかLEFTを指定する方法を解説。TableファイルにINNERで指定していてもController側で変更ができる。

CakePHP 2.3 Search Pluginで検索処理 その1設置方法

CakePHPの検索プラグイン Search Pluginの設置方法と基本的な検索処理の解説です。

CakePHP4のCakeDC/Usersのログイン時のリダイレクトとユーザ権限管理の設定解説
CakePHP4のCakeDC/Usersのログイン時のリダイレクトとユーザ権限管理の設定解説

CakeDC謹製UsersプラグインのCakePHP4版の紹介。ログイン認証後にリダイレクトする先の設定方法についての解説と実運用するために必要なコツを解説。便利な仕組みも仕様の理解があって初めてうまく使いこなせる。