僕も最初は、フレームワークを把握する時に、「なぜ、それを覚える必要があるのか」わからなくて、苦労しました。
結論を言うと、細かいことは置いといて「作ってみる」ことが一番の早道だと感じます。
ですが、何も知らない状態では、流石に開発はできないので、本記事では、ある程度、フレームワークを把握するために、理解しておくべき項目を挙げていきたいと思います。
設定より規約
フレームワークには、「設定より規約」の考え方があります。規約を理解し、それらに沿うことで、煩わしい設定などに時間をかけずに開発できるようになるよ。というものです。
なので、規約を理解することが、フレームワークを習得するための近道になります。
以下、最低限覚えておくべき規約です。
データベースの命名規則
- データベース名は自由
- テーブル名は複数系であり、スネークケース。➡ 例: 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でも、できると思うので、また記事にしたいと思います。
まとめ
- 規約を理解しなければ、開発することは不可能。
- お勉強は「少し触れるようになるまで」が目安。後は、作りながら覚える。
では、今回はこの辺で。