【laravel】アクションとは?コントローラとマジックメソッドの関係

最終更新日

この記事では、アクションとは?コントローラとマジックメソッドの使い方と、それらの関係についてまとめました。

コントローラのメソッドには、マジックメソッドが使われるのでマジックメソッド一覧としてまとめました。

アクションとは

アクションとは、コントローラーにある処理のことです。

具体的に、

app>Http>controllersを開くと以下のようなものがあると思います。これがアクションです。

public function index()
{
  //ここに処理を
}

マジックメソッドとは

laravelにおいてマジックメソッドを使用することで、コントローラの性能を定義することができます。

以下の関数名 __construct()__destruct()__call()__callStatic()__get()__set()__isset()__unset()__sleep()__wakeup()__serialize()__unserialize()__toString()__invoke()__set_state()__clone() および __debugInfo() は、PHP クラスにおける特殊関数の名前です。 これらの関数に関連する特別な機能を使用する場合を除き、 クラス内にこれらの名前を有する関数を作成してはいけません。
全てのマジックメソッドは public として宣言されていなければ なりません
PHP は、__ で始まる関数名を特殊関数として取り置きしてあります。 特殊な機能を必要としないのであれば、 関数名を __ で始めないほうが良い。
参考:https://www.php.net/manual/ja/language.oop5.magic.php

上記記載の通り、特殊な関数のことです。
クラスに対して、それぞれあるタイミングで呼ばれる関数のことです。
どのタイミングで呼ばれるかは、公式を確認してください

https://qiita.com/ntm718/items/ac26b99a8a6bae0692ea
メソッド引数戻り値実行される状況
__construct()任意なしインスタンスが生成されるとき
__destruct()なしなしインスタンスが破棄されるとき
__call()任意任意アクセス不能な非staticメソッドを実行しようとしたとき
__callStatic()任意任意アクセス不能なstaticメソッドを実行しようとしたとき
__get()プロパティ名任意アクセス不能なプロパティからデータを読み込もうとしたとき
__set()プロパティ名と値の2個なしアクセス不能なプロパティにデータを格納しようとしたとき
__isset()プロパティ名true/falseのどちらかアクセス不能なプロパティに対してisset()、あるいは、empty()を実行しようとしたとき
__unset()プロパティ名なしアクセス不能なプロパティに対してunset()を実行しようとしたとき
__sleep()なし配列インスタンスに対してserialize()を実行したとき
__wakeup()なしなしインスタンスに対してunserialize()を実行したとき
__toString()なし文字列インスタンスを文字列に変換しなければならないとき
__invoke()任意任意インスタンスを関数のように実行しようとしたとき
__set_state()配列インスタンスインスタンスに対してvar_export()を実行しようとしたとき
このメソッドはstatic
__clone()なしなしcloneキーワードを使ってインスタンスのクローン生成を実行したとき
__debugInfo()なし配列インスタンスに対してvar_dump()を実行しようとしたとき
https://atmarkit.itmedia.co.jp/ait/articles/1804/05/news008.html

fem