OthloBlog - オスロブログ -

名古屋のIT系学生コミュニティOthloTechのブログです。

CakePHPデベロッパーがLaravelをつかって思ったこと

f:id:yoshikawataiki:20180722095318p:plain

はじめに

どうも,よしかわです. 今回はLaravelでSNS(Twitter)アプリを作成しました.
開発期間は2ヶ月ほど.開発者は僕一人だけです.

参考文献

Laravel docs

対象読者

Laravelを初めて触る方
CakePHPからLaravelに乗り換えたい方
PHPでTwitterを作成したい方

リポジトリ概要

tsunagu

アプリ内タイムライン

f:id:yoshikawataiki:20180723112121p:plain

改善点

自分自身をフォロー出来てしまう.
プロフィールの更新など未実装な部分が多数ある.

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で開発している中で,一つの記事を見つけました.
LaravelRuby 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のそれぞれの良いところを使って開発していくのがベターだと思いました.