数年ぶりに Laravel に触れて、禿げそうなくらい詰まったポイントがあるので備忘がてらまとめておきます。
結論
- laravel/laravel リポジトリは Laravel プロジェクトのスケルトンコード
- laravel/framework リポジトリはいわゆる依存ライブラリ
なんでそういう話が気になったのか
とあるプロジェクトを担当することになり Laravel のコードベースを眺めていたが、あまりに久しぶりだったので、何が Laravel のコードで何が開発フェイズで追加されたコードかわかりませんでした。
しかも Git 管理もされておらず 💩 履歴を追うこともできず。。。
ということで Creating a Laravel Project した commit に対して現状のソースコードの Pull Request を作成して差分から開発フェイズで追加されたコードを特定しようとしました。
ところが思ったより差分が多く、かつ、これはスケルトンコードやろってものも差分として見えてしまいました。
案の定 composer.lock
の laravel/framework にも差分が出ていました。
しかし Creating a Laravel Project では laravel/laravel
のバージョンは指定できますが laravel/framework
のバージョンは指定できません。
ここで 1 時間以上時間を溶かし、禿げかけました 💩
しかし、以下のドキュメントを見たりして上記結論を導き出したのであった!
-
https://getcomposer.org/doc/03-cli.md#create-project
- create-project コマンドは doing a git clone/svn checkout followed by a composer install of the vendors. と等価でっせ的な内容
-
https://github.com/laravel/laravel/pull/6188
- この PR で laravel/laravel のスケルトンコードを修正していた
感想
なんか PHP 久しぶりすぎて詰まっちゃったので、どなたか同じ疑問持ってる方の参考になったら嬉しいです!
Happy Coding!