こんにちは。主催のアヤトです!
このAdvent Calendarは先日の CodeIgniter Night というイベントの最後のLTの最中で作った物です。
是非このAdvent Calendarに参加してみて下さい。
ざっくりCodeIgniterの解説
CodeIgniterは軽量のフレームワークで、その設計は良くも悪くも3系まで変わらず、シンプルです。
学習コストはとても軽く、PHP5のクラスの継承を知っていれば後は公式ドキュメントを読むだけで使い始める事が出来るでしょう。(≠使いこなす)
MVCの概念に従って使う事を前提にしていますが、その縛りは緩いものです。
Web開発に必要な機能が全て揃っている、という訳ではなく、むしろフレームワークとしての役割は最低限に留まっています。
その為、他のフレームワークと比べると、素のPHPに近いパフォーマンスを発揮できるという利点を持っています。以下はパフォーマンス比較の記事です。
- PHP MVC Framework Showdown: 7.0 Performance – Will Bowman – Medium
- PHP Framework Benchmarks for 2015 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something
テストである事を忘れてはいけませんが、これは利点と捉えて良いでしょう。
反面、機能が足りていない部分もあるという事で、他のフレームワークの使用経験があれば、「◯◯が無くてつらい」と思うこともあるでしょう。
もっとCodeIgniterの情報に触れてみたい
CodeIgniterは2系までライセンス関係で揉めた事があり、2015年4月に3系がMITライセンスでリリースされるまで、日本国内の情報がほとんど停滞していた様に思います。
以前、知り合いがちょっとしたツールを作ろうとした事がありました。
彼は素のPHPを使う事に慣れていましたが、それ故にフレームワークの助けを借りずに作る苦しさも知っていました。
これを機に某フレームワークの使い方を学ぼうと頑張っていましたが、その使い方やルールを覚えるだけで四苦八苦していました。
作りたい物に対して学習コストが重いとモチベーションの維持が難しくなります。
一方、使う技術の選定にあたっては、困った時にリーチ出来る情報の多さが決め手になり得ます。
仕事でもプライベートでも、困った時にサッと誰かに聞く事が出来る物を使いたいですよね。周りにそういう人が居なければ、書籍やググった時の情報の多さが決め手になるでしょう。
実際、前述の知り合いは日本国内の情報の多さから某フレームワークを採用していました。学習コストがかかる事は織り込み済みでしたが、「本もあるし何とかなるだろうと思っていたが、実際つらい」と言っていました。
CodeIgniterは歴史の長さに比べ、肥大化する事なくシンプルなままでいるフレームワークです。
その学習コストの低さは大きなメリットであり、日本国内の情報がもっと増えれば良いなと思っています。
もしフレームワークやPHPそのものの学び始めであれば、CodeIgniterを選択肢に加えてみてください。
また、CodeIgniterに関する知見をお持ちの方であれば、是非このAdvent Calendarに参加してみて下さい。