CodeIgniter2から3へのバージョンアップをしましょう(急いで!)

この記事はCodeIgniter Advent Calendar 2016の3日目です。
2日目の竹腰さんの記事はこちらからどうぞ

来年CodeIgniterのバージョンは4に上がります。
そんな中ちらほら聞こえてくる「まだCodeIgniter2で運用してます」ってお話。
稀に「まだCodeIgniter1です」って話も聞きますが….. やはり3にバージョンアップするべきですよ(断言)

CodeIgniter2は2015年10月31日にサポートが切れました。今後更新されることはないです。まだDownloadできるのが不思議なぐらいです。バグ修正もされないわけで、とっとと3に更新せねばなのですよ。

https://codeigniter.com/download

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-12-03-11-47-09

アップグレード方法
ユーザーガイドに掲載されています。結構事細かに書かれています。

一番変更が多く、注意すべきは2.2.x から3.0への変更です。
2.2.0にもまだなっていない場合は、まずは2.2.0までバージョンをアップしましょう。
それから2.2.x から3.0の手順を実行した後、最新までバージョンをupしましょう。
ソースコードの改変は、ほぼファイル名とclass名だけですので割とあっさりと作業は完了します。

アップグレードするときのハマリどころ
おそらく、多くのアプリケーションでOAuth認証を利用したログイン機能を実装していますよね?Facebook SDKやTwitter SDKを利用したコードを書かれていたりするかと思います。もしくはそれらを利用したライブラリを利用しているかもしれません。CodeIgniter2ではsession classはcookieを使ってデータを保存管理し動作していますが3からはPHPのsessionで動作します。この変更は結構大きくて2系向けに書かれたOAuth系のライブラリは使えなくなっていたり挙動がおかしくなったりします。バージョンにあったものを再度DLして再設置したり少しだけ調整が必要となります。
修正そのものはそれほど時間はかかりません。動作確認を含めても1日かかることは稀かと思われます。

この際だから一緒にやっておきたいComposer対応
composer管理できちゃうものはcomposer管理になるよう修正しましょう。
2系でもできたことですが、バージョンアップするわけですしこの際ですからちゃんと対応しておきましょう。
composerを使うかどうかはconfigに設定を入れるだけです。
ユーザガイドより抜粋

CodeIgniter1 , CodeIgniter2をまだお使いの皆様。
今月中にでもバージョンアップを済ませて、気持ち良く2017年を迎えましょう!

CodeIgniter4のレポジトリが出来てました。

とりあえず速報的に。
CodeIgniter4のレポジトリが出来てました。
https://github.com/bcit-ci/CodeIgniter4

ということで、翻訳用のレポジトリを作りました。
https://github.com/NEKOGET/ci4_user_guide_src

確認用の場所も確保。もうちょっと短いURLにしたいなと思いつつ、とりあえず表示用URLも作成しました。。
http://pneskin2.nekoget.com/codeigniter/4/user_guide/index.html

CodeIgniterのライセンスがMITに変更されました!

こんばんわNEKOGETです。
CodeIgniterのライセンスがMITになったというニュースが飛び込んできました。
https://github.com/bcit-ci/CodeIgniter/blob/develop/user_guide_src/source/license.rst

これは本当に本当に嬉しいニュースです。
2013年(つまりは去年)ライセンス問題と戦うべく弁護士さんに相談し、真剣にライセンスについて調べ学んだのは本当に良い思い出です。
参考記事 : CodeIgniter3のライセンス問題に対する意見書公開

プロジェクトのオーナーが、エリスラボ社から、ブリティッシュコロンビア工科大学に変更となり、企業から大学へと変わりました。
ここしばらく、エリスラボ社のサイト内にあったCodeigniterのサイトへ転送されていたcodeigniter.comは、あたらしいサイトへと生まれ変わっています。

あとはもう、CodeIgniter3がリリースされるのを待つだけ!
期待待ちです♡

PHPカンファレンス関西 2014に行ってきました!

PHPカンファレンス関西 2014に行ってきました!
今回の目当ては郡山さんの基調講演だったわけですが、他のプログラムも非常に面白く興味深いものがたくさん有りました。
時間が経ってしまうとあれなので、とりあえず雑感を…..

基調講演の中で特に興味深かったものは、海外でのお話
会場に来ていない人からも声がかかるほどの、海外での技術に熱い人の存在。
また、地域コミュニティの勉強会がパブで行われていてそれがまたとてもかっこいい!
Dis is itのお話は、初回 PHP勉強会の後の飛び込みLT(ロングでしたw)で初めて聞いたのが最初だったことを思い出しました。
PHPは面白いよね。もっともっと面白くなるよね。

OSSを維持しつづけるには…. のCMSコミュニティの話。
Drupalの規模運営については全く知らず、またその規模の大きさに驚きました。
Symfony2への乗り換えの話など、コードとか開発そのものじゃなくて、運営の部分でのきつさ難しさが聞けたのは大きな収穫でした。考えさせられました。

フレームワーク4本勝負 FuelPHP
FuelPHPの良いところ。構造についてこんなにきちんと紹介してくれたプレゼンって無かったように思います。この講演どこかで再演やりたいです!

ライトニングトーク(LT) 市川さんの 継続的WEBセキュリティ診断サービス

もう開発している最中から、セキュリティチェックもCIしようぜってのは心に刺さりました。
テストコードは書いてるけど、それではセキュリティ的に問題ないかどうかを知る事は出来ないしと思っていたところだったので、丁度気になっていたところに気になっていた話が聞けました。
http://vaddy.net

非常に楽しい時間を過ごす事ができました。
公開された資料を見直したり等して、もうすこし昇華できたらまたもう一度感想を書いてみたいと思います。

FuelPHP&CodeIgniterユーザの集い2を開催しました。

FuelPHP & CodeIgniter ユーザの集いを開催しました。
CodeIgniter talk #03とFuelPHP勉強会 東京#6となります。
今回2回目です。

当日のつぶやきのまとめ
“http://togetter.com/li/599883

【新卒課題】フレームワークを用いた開発とそのサンプル例

 ブリッジドット株式会社 佐藤雄大( @q2e2d2 ) さん

新人教育の話がとても興味深い発表でした。メンター制度の話など。
人数によって、コンテスト風にするか、協力して作る課題にするかを決めた話。
新卒にちょうど良い課題に悩むといった話など。
丁度2日間程度のボリュームで課題設定をしてみると良いといった話は、新しいフレームワークに挑戦する自分用課題にも参考になる良い話だなと思いました。

自己紹介TIME

今回の勉強会では、CodeIgniterな人が多く参加いただきました。
また、自己紹介TIMEでのCodeIgniter押しっぷりな発言が多かった結果飛び込みでFuelPHPの発表が増えるなど、とてもよい刺激になったように思います。

「UnitTestとリファクタリング」

@NEKOGET
発表をさせていただきました。
デモではぐだぐだになってしまいました。実際にコードを書いてデモをするというのは難しいですねorz



話の中で、データベースのリファクタリングがしたくなった場合は?という話題があり、この本をご紹介させていただきました。
デモで使用したコードは近日公開します。
セッション中、アンケートをとったのですが、PHPUnitでテストコードを書くチュートリアルをした事がある人は勉強会参加している人のほぼ100%が実践していました。
実際にCodeIgniterやFuelPHPでテストコードを書いている人は1割もいないようです。
CodeIgniterについてはもう少し資料をつくったり公開したりできるようにしたいと思います。
もくもく会的な事をしてもいいのかもしれないですね。

 

CodeIgniterでXMLを処理してみる

php-XML_Builderを紹介いただきました。MITライセンスで使いやすそうです。

CodeIgniterをCLIで使った時の事例

@hiroshitoda さん
CGIモード+pcntlモジュールで、PHPでマルチプロセスできるお話でした。
リソースの問題や保守を考えると、デーモンやcronでの定期実行するものをサービスを作成したフレームワークで作る事は確かに、良い事のように思いました。
PHP5になってPHPネイティブに、マルチプロセス実行するための関数が用意されています。
http://www.php.net/manual/ja/class.thread.php
これ、初めて知りました。自分用ツールに試してみたいです。

FuelPHPの2013年を振り返る

@Tukimikage さん

開催されたfuelphp関連の勉強会の多さに、びっくりしました。(羨ましいです!)
やはり開催されるという事はそれだけ利用者が増えているという事なのでしょうね。

次回勉強会は2014年2月15日の予定です。
今からとても楽しみです。

FuelPHP ♡ CodeIgniter ユーザの集いを開催しました

FuelPHP ♡ CodeIgniter ユーザの集いを開催しました。
今回は、コワーキングスペース茅場町 Co-Edoを会場にお借りし、@Tukimikageさんと開催させていただくことができました。
募集を上回る応募をいただき、また当日はたくさんの方にご参加いただき、感激です。
勉強会も非常に盛り上がり、楽しい時間を過ごさせていただきました。
開催中のつぶやきをtoggetterでまとめました。

開催のキッカケはPHPカンファレンス2013での、フレームワークアップデートでの登壇で、登壇後勉強会やりたいですよねっていうことで意気投合し開催となりました。FuelPHP勉強会#5 CodeIgniter talk#2としての開催でもあります。

今回は私はライセンス問題について登壇させていただきました。
そもそもわかりにくい内容の発表だったのですが、ツイートを見ていた感じだと、よくわからなかったという意見の方が数名いらっしゃいました。
もうすこしわかりやすい表現でお話をしなければいけなかったと思います。資料を改善せねばですね。
そもそもライセンスとは?から話をするべきだったのかもしれません。

codeigniter2系から3へのアップデートについて
発表された方 : 株式会社サイバーエージェント 北浦 智大さま

CodeIgniter3の開発の現状と、実際にアップデートした経験についての発表でした。
私自身はまだ2系からのバージョンアップは行っておらず、興味深い発表でした。2系から3系の差はそれほど劇的ではなく、わりとすんなり移行できますよとのこと。CodeIgniter3は確実に品質が上がる方向で開発されている事から、バージョンアップのしやすさというのはとてもありがたい情報です。

FuelPHP x Ratchet で WebSocket
発表者 @madmamor さま

今回 Ratchet の発表をされた方が2名いらっしゃり、どちらもとても興味深い発表でした。 Ratchetそのものを今回初めて知ったのですがとても面白そうです。

FuelPHPでDynamoDB
発表者 @koyhoge さま

DynamoDBという存在を始めてしりました。とても面白そうです。
AWSのKVSだそうです。AWSに関しては私は不勉強で知識が薄いのですがこれはとても気になりました。これは使ってみたいです。
codeIgniterでもきっとだれか使っているはずと検索してみると、いくつか見つけることができました。
試してみたいです♡

【LT】CI用の自作CRUD Isoldeについて
発表者 : 斎藤 健太 さま
[資料発見次第追記予定]
デモがとてもすばらしく、資料を心待ちしています。
設定を書き換える事での機能変更(機能のフィルタリングと言うべきかしら?)はとても面白くまた、便利に感じました。
私もこれはぜひに使ってみたいです!

【LT】ブリッジドット株式会社のFuelPHPの事例
発表者 : ブリッジドット株式会社 佐藤雄大さま

実際の導入事例についてお話いただきました。
まずは使ってみるという取り組みが良いですね。静的ホームページをFuelPHP化。必要に応じて動的な実装をしていくことって使い始めとしてはとてもやりやすいです。私の仕事用のサイト works.nekoget.netも同じようにCodeIgniterにしてから、動的にしたい部分を順次機能実装してみたりしました。親近感満載でした!

【LT】FuelPHPを本気でcomposerに対応させた時の話
発表者 : 株式会社ガラパゴス 細羽啓司さま

興味深い発表でした。ライブラリの構成管理は確かにとても面倒で、それがフレームワークのバージョンごとにバラバラな管理というのは、ちょっと目眩がしそうです。それをcomposerで解決とういのはとてもわかりやすいなと感じました。
以前開催したCodeIgniter talk #1でも、「CI + composer で 名前空間を使った話」な発表がありました。

【LT】omoon.org の裏側(FuelPHP の task 活用例)
発表者 : @omoon さま

大阪から参加いただきました。FuelPHPがガテン系フレームワークであると知らしめた関西のFuelPHP使いさん!
flickerとEye-Fiを使って、長期運用中の自分サービスの自動化のお話でした。ここでもcomposer対応をしたい旨の話がありました。
もうcomposer 対応はあたりまえの世界がやってきているんだなぁ….

【LT】CodeIgniterを初めて使うときにハマった4つのポイント
発表者 : @noldorinfo さま

Production環境 でエラーログは悩ましいなぁと思っていました。これ本家に取り込まれてほしいです。index.phpもしくは設定ファイルで変更できるとさらに嬉しいです。E-MAILの文字化け問題の対応コードすばらしいです。私はそこはもう追いかけずにqdmailで対応してしまってそのまんまにしてしまっていました。https://gist.github.com/takekoshi/6931872 を私も試してみます!!!

【LT】FuelPHP+Ratchet+WebRTC
発表者 : @Tukimikageさま
[資料発見次第追記予定]
Ratchetの発表2人目となりました。Ratchetは本当に本当に面白そうです。
WebRTCを初めて知りました。実行できるブラウザは限定されそうですが、WindowsでもmacでもLinuxなデスクトップ環境でも動くらしく、興味津々です。

セッション4本 LT6本という、とても濃く熱いイベントとなりました。
懇親会でもたくさんの面白いお話が聞けて大満足です♡

次回は12/7(仮)にやりましょうということで、懇親会中に@Tukimikageさまと相談させていただいています。次回も合同開催でイベントを開催したいなと思います。
今からとても楽しみです!!!

PHPカンファレンス2013 フレームワークアップデートに登壇させていただきました

フレームワークアップデートにCodeIgniterのお話をさせていただくべく登壇させていただきました。

8フレームワークとモデレータでのパネルディスカッションでしたが、不勉強な部分もあり、十分に話せたかどうか自信はありませんが、内容はとても濃かったように思います。

仕事をする上で、いろんなコードと出会います。
OSSなライセンスで公開されているフレームワークを使う場合と、社内フレームワークを使っている場合とがあります。
きちんと作られているコードであれば、どちらも遜色は無いし、どちらが優れているというものでもありません。

OSSなフレームワークを採用する場合、それが大勢の人にメンテナンスされているということと、ドキュメントが整備され更新されている事が最大のメリットです。
そして、多くの人が同じコードを見ている、使っている事が大きいと感じています。
あらたな人材を外部に求める場合、そのフレームワークを使った事があるというところで、何の話をするにしても、共通のコトバで共通の事をベースにすることができる事かなと思います。
それは情報を共有する上で、
コードの話をする上で、
敷居の1つをすばやく下げてくれます。
早くコードが書ける以上のメリットがそこにあるように私には思えます。

PHPカンファレンス2013 フレームワークアップデート 集合写真

こんなすごい人たちと同じ壇上に立ち、お話させていただいたことはとても光栄です。
また皆様にお話を聞いていただけた事、とてもとても嬉しいです。

ありがとうございました。

CodeIgniter3のライセンス問題に対する意見書公開

ハミングバード法律事務所 白木先生に作成いただいた意見書を公開します。

☆意見書 (pdf)

受託開発、自社サービスでの開発を前提として、意見書を作成いただきました。
私が仕事をする上での懸念材料は全て払拭することができました。

2013年9月14日に開催されました、PHPカンファレンス2013 LT発表で登壇させていただきました発表資料については少し修正をした上で、改めて公開をさせていただきます。

ライセンス問題についてはCodeIgniter のライセンス変更問題のタイムラインにkenji_sさんが時系列で詳しくまとめてくださっています。
2011年 CodeIgniter カンファレンスにて、CodeIgniter3からOSL-3.0ライセンスへライセンスが変更になる旨が発表されました。2011年当時の日本CodeIgniterユーザ会のMLでも、ライセンスの話題について多く話し合われました。ユーザ会としての公式な見解は未だに出されていないままです。
この「ライセンス問題」があったためにフレームワーク採用の検討の際に検討の候補にあがる手前で候補からはずされてしまう状況はあまりにも深刻でした。またすでに運用フェーズに入ったCodeIgniter2系で作られているアプリケーションについて、バージョンアップをするかどうかの検討時にも、「ライセンス問題」があるために身動きがとれない状況にありました。

この意見書により、私は自信を持ってCodeIgniterを提案し、またバージョンアップの検討をすることができるようになりました。

ぜひ意見書をご覧いただき、皆様の意見をいただければと思います。