0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Laravel】諸々復習

Last updated at Posted at 2020-07-15

この記事は以下の書籍を参考にして執筆しました。

ルーティング

ルート情報の基本(GET)

Route::get(アドレス,関数等)

第2引数はクロージャ。

function (){
  return ;
}

returnで返される値が表示内容。

view

view(テンプレ名)

テンプレファイルをトードしてレンダリングして返す。
テンプレはresources/viewsフォルダの中に作る

コントローラの利用

シングルアクションコントローラの利用

1つのコントローラに1つのアクションだけしか用意しないという設計のこと
要するに
コントローラ:アクション=1:1

シングルアクションメソッドの基本形
class クラス名 extends Controller
{
    public function __invoke()
    {
        //アクション処理
    }
}

出典:PHPフレームワークLaravel入門 第2版

これ以外にアクションメソッドは用意しない。
ルート情報の記述も変わってくる。

ルート情報
Router::get('アドレス','コントローラ名');

###invokeはPHPの基本機能
__invokeはPHPのマジックメソッド
__invokeはそのクラスのインスタンスを関数的に実行する。
インスタンスに()をつけて関数として呼び出せる。
したがってコントローラに限らず一般的なクラスも「インスタンスをそのまま関数として実行させたい」という場合に利用される。

リクエストとレスポンス

ResponseとRequestをアクションメソッドで利用するにはこうする

public function index(Request $request,Response $response){...

出典:PHPフレームワークLaravel入門 第2版

引数に追加するだけで使えるようになる。

###なぜ追加するだけで使えるのか
理解のためには「サービス」と「サービスコンテナ」の機能を知る必要がある。
アクションメソッドに引数を追加することで、サービスコンテナによって対応するクラスのインスタンスがその引数に渡されていた。
この機能はメソッドインジェクションという

PHPテンプレートの利用

ビューについて

テンプレはLaravelのビューを担当する。

ルート情報でテンプレを表示する

viewメソッド

view('フォルダ名.テンプレ名')

出典:PHPフレームワークLaravel入門 第2版

テンプレはviewsフォルダから検索される。
例えば、view('hello.index')なら
views/helloフォルダの
index.phpファイルが読み込まれる。

単にview('hello')だけならhelloという名前のファイルを探してしまう。

サービスとビューコンポーザ

ビューコンポーザ

コントローラとは別にビジネスロジックを使って必要な情報などを処理しビューにデータを結合する機能。

ビューのビジネスロジック

ビューコンポーザを作ってアプリに登録することでビューをレンダリングする際に処理を自動実行できる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?