この記事はCodeIgniter Advent Calendar 2016の4日目です。
僕は2014年末頃から CodeIgniter を独学で学び始めました。その時とても頼りにしていたのが公式ドキュメントの日本語訳です。(当時は2系が最新だったのでこちらを読みました。)
その充実ぶりは、Webアプリケーションフレームワークの入門者である僕が勉強し始めるには十分なものでした。
しかしググったりTwitter検索していたりすると、公式ドキュメント以外にも断片的な情報を少しずつ得ることができました。
ここではその断片的な情報の中から、僕がもっと深く知りたい OR 調べてみようと思った事を書き残していこうと思います。
もしこれら中にご存じの話やビビッと来るような情報があれば、ぜひCodeIgniter Advent Calendar2016に参加してみてください。
Twitter編
CodeIgniterに限らず、YouTube上で技術解説をしている方が意外と多い。だいたいは英語だけどざっくりとなら理解できる。まだ何本かしか見たことがないので、ざっくり感想だけでも文章にして、日本語でググった時に引っかかる形にしたい。おぉ、Cli for #CodeIgniter 3.0のビデオチュートリアルが!! > http://t.co/0slJnRdSgI
— kenjis (@kenji_s) 2015年5月7日
Unitテスト自体の勉強と合わせて使ってみたい。codeigniterユーザーやばい。https://t.co/MFNUklgIGV
— rochefort (@rochefort8) 2015年9月3日
使おうぜ。 https://t.co/46rBg2p1tj
CodeIgniter本体のコードに関するコーディング規約が何らかの難点を持っている様子なのですが、ちょっと良く解ってない。CodeIgniter自体のコードを書く時はともかく、CodeIgniterを使って何かをする時には良くない、という事でしょうか?CodeIgniterのコーディング規約はCodeIgniterにPRするときに使うものです。無視したら拒絶されます https://t.co/abC5f5cqmE
— kenjis (@kenji_s) 2015年12月10日
kenjisさんのGitHubリポジトリ、さらっとしか見ていないけど便利な物がたくさんある様なので、解説記事とかあると嬉しいかもしれない。 READMEが充実している物ばかり。[これとか](https://github.com/kenjis/codeigniter-deployer)。嬉しい。https://t.co/MEfuRWHWfb kenjisさんところで必要なものが全部揃っている感すごい。 #CodeIgniter
— NEKOGET (@NEKOGET) 2016年1月2日
詳細未確認編
強力なMonkeyPatch機能。patchFunction()でmd5()の挙動を制御 #oscnagoya #codeigniter
— 日本CodeIgniterユーザ会 (@codeigniter_jp) 2016年5月28日
オープンソースカンファレンス名古屋2016の話? ### [GitHub - rdlabo/CodeIgniter_Talk: Codeigniter開発の参考になるwebサイトをまとめていきます。](https://github.com/rdlabo/CodeIgniter_Talk) いわゆる[あとで読む]状態なのですが、この中でビビッときた物は自分の言葉にしてAdvent Calendar の記事にしたいと思っています。おまけ データベースを実際に動かしてテストしたい場合。Seederを使う #oscnagoya #codeigniter
— 日本CodeIgniterユーザ会 (@codeigniter_jp) 2016年5月28日
番外編
まだ正規表現で消耗してるの? // Speaker Deck
こちらで紹介されていた hexpress というツールをCodeIgniterで使ってみたい。既にやったよという方がいれば話を聞いてみたいです。
JavaScriptフレームワークに対する、あるGoogle社員の争い
こちらはJavaScriptに関するニュース記事ですが、記事の最後にこんな言葉があります。
「フレームワークを使うことはいいアイデアかも知れないが、
そのフレームワークが何を抽象化しようとしていることを深く理解することは
更に良いことだ。」
あまり深くは知らないのですが、CodeIgniterは過去にユーザーからの要望を、明確な設計思想の下に「それはCodeIgniterのやり方じゃないよ」と退けた事がある様です。
CodeIgniterの設計思想について、僕はまだ上手に言語化できないのですが、これについて何らかの知見をお持ちの方がいたら是非教えてください!
PHPer人生、一度はフレームワークを作っておこう! // Speaker Deck
PHP界隈の有名人、uzullaさんによるスライドです。
詳細は割愛しますが、ここではフレームワークを作ってみることによって得られる知見について書かれています。
とは言え実際にフレームワークをゼロから自作するのは大変苦労が予想されますが、既にあるもののソースコードを読んでみれば同等の知見が得られるのではないでしょうか。
幸いにもCodeIgniterは軽量なフレームワークであり、バージョン3以降はMITライセンスの下で管理されています。コア部分にもコメントが書き込まれており、コードリーディングに最適なフレームワークの1つといえるのではないでしょうか。
以前PHPからOracleに接続できるフレームワークを調べていた時に system/database/
以下を読んでみましたが、理解が追いつかない程の難解さは感じませんでした。(当時の僕はautoloaderの存在も知らないようなレベルでした。)
最近はGoogle翻訳の精度が上がった(特に技術系の英日翻訳)ので、挑戦してみてはいかがでしょうか。
次のアドベントカレンダー5日目はまだ空席なのですが、この記事用に貯めていたネタがまだ残っているのでそれを活用するつもりです。