スポンサーリンク

それでも僕は Laravel5 VS CakePHP3 でCake3を選んだ。その理由3つ

Web開発

中小企業で社内システムを発注するときに、
パッケージか独自設計か、独自設計なら何かフレームワーク使うのかなどなど、
いろいろ悩むところです。
 
今回僕は、勤務している農業機械店の顧客管理システムを移管するにあたり、
PHPフレームワークのCakePHP3を使って実装することにしました。

また、エンジニアやベンチャーの方々に聞くと
最近はLaravelかRailsに決まってるでしょ? と言われそうですね。
はたまた Django かもしれません。
 
実際、比較の際に自分で使ってみても、Railsはスマートで感動しましたし、
Laravelも必要な機能は大方最初からフレームワークで用意されていて
細かいところも柔軟にできて素晴らしいと思いました。

ですが、「小さな会社のIT担当(雑用係)」として忙殺される今、
CakePHP3はかなり「アリ」な選択でした。

選択の大きいな理由はこの3つです。

格安レンタルサーバー(月1000円未満)でもそこそこの速度で動く

 試しに似たような3テーブルだけのCRUDをLaravelとCakePHPで作ってみました。
 手持ちの4つくらいのレンサバに乗せて比べたところ、
 Laravelは2つはもっさりなら動く、残り2つは動かない。

 Cakeは1つは使えるレベルで動く、2つはもっさりなら動く。
 残り1つは動かないという結果でした。
 
 もちろんSSH接続してComposer入れてごにょごにょするとか、
 設定ちゃんといじればLaravelも動くんでしょうが、
 そういうのに時間かけたくなかったです。

 とにかくアップしてレンタルサーバですぐ動く、
 これは助かります。
  
最終的には、社内LAN上のLAMPに置くことになりましたが、
10年以上前の化石みたいなPCでもCakeは快適に動いています。
Laravelはまぁ遅いけど使えるね、くらいの感じでした。

SE的にはLaravelの方が今っぽくていいか、とおもいつつも
やっぱり、ごにょごにょする時間がないので
とりあえずちゃんと動くCake3を使うことにしました。

bakeコマンドで「動くCRUD」画面がすぐできる。

CakePHPにはBAKEコマンドで動く画面がすぐできます。
Bakeした各画面をちょろっと見た目をいじって、ハイ、完成です。
 
 もちろん、Laravelでもプラグインで似たようなCRUDを生成してくれます。
 でも、そういう余計な作業をできるだけせずとも、
 最初から動くものがすぐできる。

 おそらくゴリゴリUI作り込むようなプロジェクトには
 CakePHPのBakeは邪魔くさいかもしれません。
 でも、今回はたかが帳票系のシステムです。
 複雑な結合もありません。

 それなら標準機能だけでパパっと作れるほうが
 今の私にはありがたいです。

 

CakePHPは外部のエンジニアさんに依頼しやすい

Cakeの特徴の1つの「設定より規約を優先」
これは外注SEさんに依頼するときに結構威力を発揮しました。

 もちろん、作ろうとしているモノが簡素なモノという理由も
 あるのでしょうが、余計な設定やら何やら、ほぼ打合せ無しでイケました。
 これもこちらの時間削減におおいに役立ちました。

 依然自由度の高いフレームワークで小規模プロジェクトやった時は
 「プロジェクト向けの設定を決める」のに時間がかかった覚えがあります。

 基本設計だけ渡せば、内部処理をあまりつめなくても
 思った通りのソースが届く。
 変なソースのバグ取りしなくてよい。
 ありがたや。ありがたや。 

おわりに

というわけで、開発の簡単さでCakePHP3になりました。

ただし繰り返しますが、これはあくまで、複雑なテーブル結合の必要が無くて
トランザクション処理も社内向けだからテキトーでOKという条件下での選択です。

追伸
勉強するならCakeとLaravelどちらですか?と
何度か質問されました。

「どちらでもよい」が正直な想いですが、
あえていうならこれもCakePHP3です。

理由は、Cakeに標準でついてるデバッガーがめちゃめちゃ優秀だから。
なんかエラーが起きると、エラーメッセージを読んで
キーワードで検索かけると大抵解決します。
 
あと、上述したBAKEで動く画面が即席でできるのも、
「フレームワークを使った開発って何をするのか」
を理解する上で、学習コスト削減に一役買ってくれると思います。

CakePHPでちょろっとなんか作った経験があれば
LaravelやらRailsやらになっても理解するコストは低くなります。