Laravel WEBエンジニア プログラミング 中級者

フレームワークの把握の仕方【Laravel】

 

悩む人
フレームワークを学ぼうと思っているけど、本を読んでいても、今一つ理解ができない・・理解しやすいように教えてほしい。

 

僕も最初は、フレームワークを把握する時に、「なぜ、それを覚える必要があるのか」わからなくて、苦労しました。

結論を言うと、細かいことは置いといて「作ってみる」ことが一番の早道だと感じます。

 

ですが、何も知らない状態では、流石に開発はできないので、本記事では、ある程度、フレームワークを把握するために、理解しておくべき項目を挙げていきたいと思います。

 

 

設定より規約

フレームワークには、「設定より規約」の考え方があります。規約を理解し、それらに沿うことで、煩わしい設定などに時間をかけずに開発できるようになるよ。というものです。

なので、規約を理解することが、フレームワークを習得するための近道になります。

 

以下、最低限覚えておくべき規約です。

データベースの命名規則

  • データベース名は自由
  • テーブル名は複数系であり、スネークケース。➡ 例: public_users
  • カラム名の規則は以下。
カラム名 意味
id 主キー
created_at 登録日時
modified_at 更新日時

DBカラムを作る際、上記の3つは決まっています。

 

モデル名

モデル名は単数系であり、アッパーキャメルケース。

➡ 例: PublicUser

 

コントローラー名

指定なし。アッパーキャメルケース。

➡ 例: PublicUserController

 

ビュー名

指定なし。スネークケース。

➡ 例: public_user

 

まずは、最低限上記を覚えておけば良いと思います。都度、必要になれば覚えるスタイルが一番効率的です。

なぜなら、忘れるから。これに尽きます。

 

複数系か単数系か名前の指定が無いものに対しては、モデルに合わせて、単数で合わせると理解しやすいと思います。

 

よって、データベースのテーブル名のみ複数系と覚えておけば良いですね。

 

Laravelのコーディング規約は「PSR-2」に沿っています。よって、PSR-2のコーディングルールに沿って、コーディングを行うことが理想です。

コーディングルールは一気に覚えることは難しので、少しずつ覚えるようにしましょう。

 

なるべく、artisanコマンドを使用して、自動でコードを吐くようにしておけば、コーディングルールに沿った形になっているので、後は、右ならえで、コードの命名規則に沿って書いていけばよい思います。

 

あと、規約に沿ったとしても、ある程度の初期設定は免れません。

 

「どこが設定より規約やねん」

 

となりますが、初期設定が気になる方は、コチラの記事も参考にしてください。

 

Laravel6の初期設定まとめ

 

各ディレクトリの役割

全体像を把握することは、とても大事です。全てのディレクトリの把握は、しなくていいと思いますが、開発時に「どこに何のファイルを作成するのか」は把握しておきましょう

 

appディレクトリ

appディレクトリの中に、モデル・コントローラー類のファイルを配置します。

なので、開発を行っていく際に、必ず使用するディレクトリなので、確実に覚えておきましょう。

 

configディレクトリ

名前の通り、各設定ファイルが配置されています。特に使用するのは「app.php」「database.php」辺りじゃないでしょうか。

「何か設定をしなければいけない」と思った時は、configディレクトリを連想しておきましょう。

 

databaseディレクトリ

マイグレーションを利用して、DBを作成する際に、必要になるディレクトリです。

とりあえずは、利用しなくても開発は進めることはできます。

 

publicディレクトリ

WEBサイトの各部品を配置します。例えば、CSS、画像とか。あと、robots.txtなどの配置も入ります。

 

resourcesディレクトリ

ビューのファイルを配置する場所です。また、元のアセット(部品)のファイルもこの場所になります。LESSとかSASSファイルなど。

 

routesディレクトリ

例えば、各アクションを、ビューの処理とつなぎ合わせる際に、ルーティングを行います。

その作業を行う場所が、routesディレクトリの「web.php」です。

 

bootstrap/cacheとstorageディレクトリ

この二つのディレクトリは、フレームワーク側で書き込みを行います。

本番環境へのリリース時に、ディレクトリを書き込み可能にする必要があります

でないと、「開発環境では動いていたのに、本番環境では、動かない。なんでじゃー」という事態を招くことになります。

 

「Permission denied」のエラーが出たら、storageディレクトリなどの権限を疑ってみましょう。

 

venderディレクトリ

直接触ることはないですが、composerコマンドを実行し、各パッケージが管理されている場所です。

「composerで実行したパッケージは、venderディレクトリにある」ということは把握しておきましょう。

 

ディレクトリも隅から隅まで、把握する必要はなく、とりあえず、上記あたりの把握ができていれば、開発を進めることができると思います。

 

フレームワークの開発順序

Cakephpには、「bake」という、CRUDを瞬時に作ってしまう便利な機能があります

まだ、調べていないですが、WEBシステムはCRUDが基本なので、DB設計・作成が済めば、一気にbakeしてしまって、レイアウトを整えつつ、ページネート、バリデート、みたいな流れでガガガっと僕は、作ってしまいます。

 

そして、「モデル」→「コントローラー」→「ビュー」という流れで処理を記述し、最後のビューは、最初に作ったレイアウトの細かい微調整や表示を整えていく。という感じで進めます。

開発の仕方は、人それぞれですが、初学者の方の目安になれば幸いです。

 

Cakeのbake部分は、多分、Laravelでも、できると思うので、また記事にしたいと思います。

 

まとめ

  • 規約を理解しなければ、開発することは不可能。
  • お勉強は「少し触れるようになるまで」が目安。後は、作りながら覚える。

 

では、今回はこの辺で。

 

-Laravel, WEBエンジニア, プログラミング, 中級者
-

© 2021 FuwaFuwaShoChan BLOG