PHP
Sass
laravel
docker

[初心者]Laravel始めたての人は寄って行って

はじめに

初心者学生エンジニアです。
私は現在業務でlaravelを使っているのですが、つまづいた箇所・紛らわしいなーという箇所を解説できたら初学者に役立つかなーと思い書こうと思いました。

  • 自己紹介
    • 情報,数学系学科の学生
    • 現在はPHP,Goなどを使って開発を行なっている
    • サーバーサイドとフロントサイド一通でやったりやらなかったり
  • 1年程前の私
    • サーバーって何?webって?MySQLってプログラミング言語?開発って何?みたいな状態
    • エンジニアになりたいと思い全く未経験でインターンとして開発に携わる

開発環境

laradockっていう便利なのを使いました。

  • OS X 10.13
  • PHP 7.1.7
  • Laravel 5.5.3
  • docker 17.09.0-ce
  • docker-compose 1.16.1
  • nginx + PHP-FPM + MySQL

dockerっていうのは、自分のPCの内部に独立した実行環境(仮想環境)を作れるソフトウェアです。
自分のPCに擬似サーバーを作れるみたいな感じです。

docker-composeっていうのは、いくつかの実行環境をそれぞれdockerでコマンド打って立ち上げるのがめんどくさいので、それらを一括で立ち上げてくれるライブラリです。
大半の開発では複数サービスが必要(例えばnginx + PHP-FPM + MySQL)ですからね。

こういったインフラ系のことは最初から全部理解しようとするのは心が折れるので、まず使ってみて必要な分ずつ徐々に勉強していくといいと思います。

で、このdocker-composeは手順書のようなものが必要なのですが、それがlaradockっていうお助けキャラで、dockerとかあまりわかっていなくても割となんとかなります。
laradockについては説明は省くので、他のサイトを参考にしてください!
自分はこのqiitaの記事を参考にさせていただきました!https://qiita.com/yudaifuijta0121/items/846d5e8e86ec5b2d908e

あとはcomposerのインストールとかですかね。

ディレクトリ構成

よく触るファイル

├── app
│   ├── Console
│   ├── Exceptions
│   ├── Http
│   ├── Models
│   ├── Notifications
│   ├── Observers
│   ├── Providers
│   ├── Services
│   └── helpers.php
├── database
│   ├── factories
│   ├── migrations
│   └── seeds
├── public
│   ├── css
│   ├── js
├── resources
│   ├── assets
│   ├── lang
│   └── views
├── routes
│   ├── admin.php
│   ├── user.php
│   └── web.php
├── storage
│   ├── debugbar
│   ├── framework
│   └── logs
├── bootstrap
├── config
├── tests
└── vendor

これが大体自分がメインだと思うディレクトリ・ファイルですね。
簡単に説明すると、

  • app
    • app ってざっくりなディレクトリ名なのでわかりずらいですが、ビジネスロジックをがしがし書いてくところです。MVCのMCはapp以下にあります。
  • bootstrap
  • config
    • 諸々の設定ファイルがあるところです。データベースの接続情報とか色々設定してます。
  • database
    • factories : テストの際にデータを保存できるかとかを確認しないといけないので、そのためのダミーデータを作ったりしするとこだと思います。テストまだ書いてないからよくわからない
    • migrations : テーブル定義をするファイル。ここにマイグレーションファイルっていう各テーブルにどんなカラムがあるかとかを書いたファイルをおいて、コマンド打つとDBにテーブルを作ってくれます。
    • seeds : テーブルにデータを入れるためのやつ。自分のプロジェクトでは値はロジックを書く場合と、csvを使って一括挿入する場合があります。
  • public
    • コンパイルされたcssファイルとjsファイルとかが置かれてます
  • resources
    • asstes : コンパイルされる前のjsファイルやsassファイルなどがおいてあります。
    • lang : 言語別のバリデーションのメッセージとか書くところですね。
    • view : MVCのVに当たるビューファイルがおいてあります。
  • routes
    • 名前のままですが、ルーティングの設定をするところですね。
  • storage
    • debugbar,logsはデバッグバーのキャッシュ的なものとエラーログとかがたまり続けるみたいです。定期的に消しましょう。
  • tests
    • テストコードがあるファイルですね
  • vendor
    • laravelが用意してくれてるフレームワークのコアなのでいじらないようにしましょう。composerがバージョン管理とかはしてくれるので、git管理もしません。

とりあえずこんな感じ。

あえてニュアンスでとどめている箇所がいっぱいあるので、話半分くらいに読んでもらい、イメージを掴んでいただければいいかなと思います。

続きはまた更新します。

と前回書いたのですが、久々に読むと書き直したいなーってとこがありつつ、更新するのめんどくさいのでわからないところはコメントしていただければ回答なり新しい記事なり作りたいと思います。(そろそろ1年弱くらい経つのでやっとこさ初学者の域は脱してきました。)

最後まで読んでいただきありがとうございました。