LoginSignup
3
2

More than 3 years have passed since last update.

RailsからLaravelのキャッチアップでつまづいたこと、気づいたことのメモ

Posted at

はじめに

実務 1 年目の Web エンジニアです。
こちらの記事は、Laravel に関する備忘録と覚えたことのアウトプットです。

こちらの記事はゆるゆるとシリーズ化していきます。
参考図書は三冊、現在二冊目を学習中です。

※非アフィリエイトリンク
PHPフレームワークLaravel入門
PHPフレームワーク Laravel実践開発
PHPフレームワーク Laravel Webアプリケーション開発

もし、Laravel の学習を始めた方がいらしたら一緒に見ていただけると嬉しいです。
ご指摘があればお願いします。

(元々 Ruby/Rails を使っていたので、同じ方がいたら何か参考になればと・・・)

今回は、

  • ディレクトリ構成に関して
  • 名前クラスと use によるクラスのインポート
  • Requestクラス
  • レイアウトの作成と継承
  • おまけの単語メモ

についてメモをしております。

ディレクトリ構成に関して

忘れがちなディレクトリ構成で重要だと思ったポイントをまとめました。

  • bootstrap アプリケーションが読み込まれるタイミングで実行される。
  • public 公開されるフォルダ。JS のスタイルシートなどを入れておく。
  • storage ファイルの保存場所。アプリケーションのプログラムが保存するログなどはここに置かれる。
  • app > Http Web アプリケーションにアクセスした時の処理をまとめておく場所。

名前空間と use によるクラスのインポート

「名前空間」とは難しい日本語だが、どこにいるか?というような情報を示す意味合いだと思っている。
useに関しては、別のクラスをインポートするために必要な記述である。
Rails の require みたいなものか…?

sample.php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

Requestクラス

クライアントからサーバーへ送る情報がリクエスト、逆がレスポンス。
use Illuminate\Http\controllers;で使えるようになる。

sample.php
use Illminate\Http\Request;

function test(Request $request) {
 $request->url();
}

※ちなみに、このメソッドの引数にRequestなどを渡すだけで利用できるようになる仕組みをメソッドインジェクションという。
依存性の注入。

使えるメソッドはこちら。(公式)

レイアウトの作成と継承

bladeテンプレートを使う場合、@section@yieldという機能を使うことができる。
@section-@sectionendで囲んだ部分が@yieldに出力される

なんかvueのコンポーネントと似てることができるなーと感じました。
本よりこちらの記事が参考になりました。

単語などtipsメモ

  • ヒアドキュメント PHP の長文テキストなどを記すときに使う。<<EOFみたいなやつ。
  • シングルアクションコントローラー アクションが一個だけのコントローラーを作成した場合、routeからもアクション指定せずに、コントローラー名だけで呼び出せる設計。
  • 当然Railsと同様コントローラーから変数をviewに渡すことができる。名前もつけられる php:sample.php function index(Request $request) { return view("hello.index", ["msg" => $request->msg]); } $msgという変数で呼び出すことができる。
  • HTMLのエスケープ処理 {{!! この中に書いたHTMLタグなどはエスケープされ、テキストとして出力される !!}}

参考になった記事

次回はコンポーザあたりからやろうかな…。

3
2
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
3
2