【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
クラスに対して、それぞれあるタイミングで呼ばれる関数のことです。
どのタイミングで呼ばれるかは、公式を確認してください
https://atmarkit.itmedia.co.jp/ait/articles/1804/05/news008.html
メソッド 引数 戻り値 実行される状況 __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()を実行しようとしたとき