読書メモ Laravel 認可処理

Laravel で用意されてる認可処理は2つあって、

  • 1つの認可処理に名前をつけて利用の可否を決定づけるゲート(Gate)
  • 複数の認可処理を記述するポリシー(Policy)

ゲートには、例えば、ブログの口コミなど投稿コンテンツに対して、コンテンツを投稿者飲みに編集ボタンを表示したりコンテンツ更新の許可をしたりする、(中略)文字通り「ゲート」としての処理を、クロージャとして定義する

認可 5.6 Laravel

ポリシーは特定のモデルやリソースに関する認可ロジックを系統立てるクラスです。たとえば、ブログアプリケーションの場合、Postモデルとそれに対応する、ポストを作成/更新するなどのユーザーアクションを認可するPostPolicyを持つことになるでしょう。

例. ゲート

  • AuthServiceProviderクラス

f:id:shimabukuromeg:20181013125700p:plain

  • コントローラー側

f:id:shimabukuromeg:20181013132357p:plain

個人的新出メソッド

intval

intval — 変数の整数としての値を取得する

PHP: intval - Manual

__invoke() メソッド

  • __invoke() メソッドは、 スクリプトがオブジェクトを関数としてコールしようとした際にコールされます。

PHP: マジックメソッド - Manual

  • シングルアクションコントローラ
  • アクションを一つだけ含むコントローラを定義したい場合は、そのコントローラに__invokeメソッドを設置してください。

コントローラ 5.6 Laravel