CakePHPデベロッパーがLaravelをつかって思ったこと
はじめに
どうも,よしかわです.
今回はLaravelでSNS(Twitter)アプリを作成しました.
開発期間は2ヶ月ほど.開発者は僕一人だけです.
参考文献
対象読者
Laravelを初めて触る方
CakePHPからLaravelに乗り換えたい方
PHPでTwitterを作成したい方
リポジトリ概要
アプリ内タイムライン
改善点
自分自身をフォロー出来てしまう.
プロフィールの更新など未実装な部分が多数ある.
Dockerで開発環境構築
今回はDocker Composeを用いて開発環境を構築していきます.
Docker Composeは,マルチコンテナDockerアプリケーションを実行するためのツールです.
上記のとおり, webサーバにNGINX, データベースはMySQL, バックエンドはLaravel, フロントエンドはVue.jsを使います.
実行環境
ツール | バージョン |
---|---|
MySQL | 5.7.22 |
composer | 1.6.5 |
Laravel | 5.6 |
Vue.js | 2.5.16 |
なぜLaravelで開発をしたのか
CakePHPで開発している中で,一つの記事を見つけました.
LaravelがRuby on Railsのスター数を抜いたということについてです.
この記事を読んだ僕は,CakePHPではなくLaravelで開発してみようと思いました.
なぜMySQL8ではないのか
MySQL8から速度が2倍近く向上しました.また,便利な関数が使えるなど色々なメリットがあります.
MySQL8ではmysql_native_passwordがcaching_sha2_passwordに変更になり,caching_sha2_passwordがデフォルトになっています.
クライアント側もcaching_sha2_passwordに対応していなければならないということになります.
今回はLaravelのマイグレーションツールを使用したいため,MySQL5.7系を使用します.
CakePHPとLaravelの違い
Laravelは基本的にソースコードを配置する際のディレクトリ構成が自由です.
CakePHP3はディレクトリ構成が定まっているため,モデルはModelディレクトリに,コントローラはControllerディレクトリに配置するのがフレームワークの規則になっています.
そのため,フレームワークに対して自由度を求めるデベロッパーはLaravelを使うと後々困らないと思います.
CakePHPは規約が厳密であるため,規則を覚えて開発していけば開発速度はとても早いと思います.しかしながら,CakePHPは前述どおりレールに定まっていない「変わったことを行う場合」は大変です.
Laravelはディレクトリ構成が複雑であるため,学習コストは高いですが応用が利きます.
フロントエンド技術の違い
CakePHP3のフロントエンド技術にはjQueryが用いられているくらいです.
Laravelのフロントエンド技術にはデフォルトでVue.jsやBootstrapが使用されています.
開発のしやすさ
また,LaravelではLaradockやHomesteadなど開発しやすい環境が用意されています.
VirtualBoxとVagrantがインストールされていれば,Homesteadで開発できます.
LaradockはDockerがあれば開発できます.
おわりに
やっぱりLaravelのほうがデベロッパーにとっては優位なことが多いように感じます.
CakePHPとLaravelのそれぞれの良いところを使って開発していくのがベターだと思いました.