Web Developer's Struggle Memories

日々の業務から思ったこと、学んだことを書き連ねていきます。

CodeIgniterを約半年使ってみた感想など

@sakaki さんにハッパをかけられたので、約束通りCodeIgniterについて書く! @sakakiさんのブログ記事にも自分の拙い投稿を取り上げていただいた(その記事はこちら)ので、 ちゃんと約束は果たさんとね(*^^)v

※タイトルの「約」の文字は半年過ぎたら消しますww

CodeIgniterの良さ

以前にも書いたが、このフレームワークの良さは、こんな感じ。

  • 学習コストが低い
  • 軽量
  • 高速
  • 拡張性が高い
  • MVC分離性
  • インストールが簡単
  • 日本語の記事が豊富
  • マニュアルの日本語訳も進んでいる

いろいろあるけど、やっぱり一番は学習コストの低さ!ヘボプログラマーの自分でも、マニュアルをザーッと読んだだけで、 すぐに開発を始められるくらいお手軽でわかりやすい。マニュアルもわかりやすい。初めて何かフレームワークに触れてみようか、という人には是非オススメしたい♪ ちなみに私の勤務している会社では、新人研修のカリキュラムに入ってる。

敷居は凄く低いのに、有名なフレームワークだけあって、ちゃんと作りこまれていて機能も豊富。コアクラスの拡張もしやすい。また、 Ajaxバッチもとても書きやすい。

インストールは、composerを使ってコマンド一発で入るけん、凄く簡単なのも嬉しい(^^)

後は、個人的にこのフレームワーク独自のActive Recordは気に入ってる(*・ω・) なんとなくEC-CUBE(2系)に似ているから、というのもあるが、個人的にはすごく書きやすい。

modelとの連携が非常に簡単なのも助かる(=゚ω゚)ノ あまり他のフレームワークを触った事がないけん同じかもしれんが、クラス作るときにコアクラスを継承していれば、コンストラクタでインスタンス作れば別のmodelが簡単に呼び出せて使える。これは便利!

CodeIgniterの欠点(というか個人的にマイナスなところ)

これもまず列挙すると、

  • テスト周りが貧弱
  • migrationが少々書きにくい
  • デフォルトだとパスにindex.phpが含まれる
  • 人によっては煩雑なコードになる

こんなところ。とにかくテストコードがイケてない。最初から備わっているテストを使ってみたが、まぁ使いづらいし何よりイケてない。。。 せっかくの素晴らしいフレームワークなのに、これはいただけない。これ改善してほしいわ(´・ω・`)

migrationはちょっと分かりにくかった。CodeIgniter 徹底ガイド !というサイトには大変お世話になって書けたが、 もう少しなんとかなったんじゃないかなぁ。慣れればこれはこれで良いとは思えるが、初心者には優しくないかと。

後はパスにindex.phpが入る問題。これなんでこう言う作りにしたんか、設計思想が知りたいところ。 まぁ、.htaccessapacheの設定で消すことはできるけん、そんな問題じゃないが。

他のフレームワークについて

…と書いたが、自分が触れたことがあるフレームワークは、

  • EC-CUBE(2.4〜2.13を約2年半)
  • Yii(約1年半)
  • FuelPHP(1.8を2日w)
  • CakePHP(2日でやめた)

だけじゃけ、比較というほどでもないが(笑)

ECのOSSではおそらく知名度はNo.1であろうEC-CUBE。これはいわゆるオレオレフレームワークで、もともとECサイト用のパッケージだけん、 厳密にはフレームワークではないが、ほぼそう言っても差し支えないので入れた。

日本では一時期CakePHPがすごく流行っとって、自分も触れてみようと思ったんだが、その当時は自分がPHPそのものを勉強中だったけん、 結局使わずじまい。ただ、仕事で物流システムに触れる機会があり、そのシステムがCakePHPで書かれておりちょっとだけコードを見たのだが、 分かり辛かった印象がある。(書いた人のコードが読み辛かっただけかもしれんが)いかにも納期に追われてて、とにかく動けば良い、 という感じで作られてた。要は、あんまり良い印象がない!(笑)

次にYiiだが、これは重い。すごく制約が厳しく、フレームワークの仕様にそって書かないといけないため、仕様を理解するのに非常に時間がかかった。 また、DBとの接続が増えると、速度が極端に下がる。さらに言うと、ちょっと複雑なクエリだとこのフレームワークの仕様では書けなかった事がままあった。 だけん、欲しいデータを個別にとって、PHPで頑張ってデータを一つの配列にマージしてた。ただ、migration周りは非常に良くできていて使いやすかった。 そこくらいしか、このフレームワークが良いとは思えなかったな。

そしてFuelPHPCodeIgniterの開発者の方の数人もこのフレームワークの開発に携わっており、それの影響か、やっぱり火に関わる名前がちょこちょこある。 (名前も日本語訳では燃料だし、oilコマンドとかもある)まだ触り始めたばぁじゃけ、良くわからんが、結構CodeIgniterに似ている印象。

最後に

まぁECサイトを作るとしても、webアプリ作るとしても、CodeIgniterが良いよと。みんなもっとCodeIgniterを使おうぜと。 とにかくこのフレームワークを宣伝したかったので、今回は満足!ほなー。