CodeIgniter3のチュートリアルをちょっと見てみようかの巻(2)

こんにちわ! NEKOGETです。
この記事はCodeIgniterアドベントカレンダーのために書きました! 8日目です!
https://qiita.com/advent-calendar/2017/code_igniter

9日目の記事はayatoさんによる
Dockerで作るCodeIgniterローカル開発環境 入門編でした!
まだ読めてない人はぜひ読んでほしいです☆☆☆

CodeIgniter3のチュートリアルをちょっと見てみようかの巻(2)って事で(2)なので(1)があります!
CodeIgniter3のチュートリアルをちょっと見てみようかの巻(1) の続きです。

チュートリアルの場所
本家(英語): https://www.codeigniter.com/user_guide/tutorial/index.html
ユーザー会(日本語): http://codeigniter.jp/user_guide/3/tutorial/index.html
@NEKOGET(日本語?): http://pneskin2.nekoget.com/codeigniter/3/user_guide/tutorial/index.html

今回も本家のチュートリアルを見ていきますね。

今回のお題は「ニュースを見る機能を作ろうぜ」 です
https://www.codeigniter.com/user_guide/tutorial/news_section.html

newsを保存しておくtableはこんな感じ。
個人的な好みで言えばここに新規登録日を追加したいところです。

環境の準備 : database

modelをつくる….. 前にDatabase用意しないとダメですね。
database名どうしましょう?

ci3_tutorial とでもしましょうか?

mysqlが入ってる事を確認。

mysqlの起動
mysqlのユーザーとパスワードを作成
databaseの作成
って感じですかね…

それからapplication/config/config.phpの編集です。

よしよし入ってる。
しかし起動してない。

起動してみる。

案の定rootにパスワードがないわコラって怒られる。

パスワードの設定

mysqlに接続
途中パスワードを聞かれるので上記で設定したパスワードを入力

文字コードの確認

utf8にしとく方が楽よねって事で、一旦mysql接続を解除して /etc/my.cnfを編集
まぁここら辺も含めてansibleに書いてし待った方がいいんだけども……
知っててほしいなあという気持ちもあり難しいね。

[mysqld] に serverがutf8ですよを追記

[client]セクションを追加。utf8dですよを記載

mysqlを再起動

mysqlに接続して文字コードを確認する。

filesystemはbinaryでいいよね。
他がutf8になった事を確認。

データベースの作成

データベースができてる事を確認する。

newsテーブル作ろうかw

テーブルができた事を確認する。

データベースの準備ができた!

config.phpの変更

次は設定だねー
DBに接続する設定書いておかないとダメだよねー
configの設定についてはなぜかチュートリアルにないんだよね。不思議だねー

application/database.php

‘username’
‘password’
‘database’
‘dbdriver’
の4項目を変更したよ。
postgresqlを使う場合は、’dbdriver’ は postgre だよ!

ルーティングの設定

チュートリアルには最後の項目で書かれてるんだけど、これ設定してないとブラウザ越しに見えないので先に設定しちゃおうか☆
CodeIgniter/application/config/routes.php

これはどういう設定かわかるよね?
news/ はNews Classのindex()が処理をする。
news/view/{何か文字列} は News Classのviewメソッドが引数を持って処理する
その他は、 Pages Classのviewメソッドが処理をする
って流れだね。

Modelの作成

まずはモデルの作成だね!
application/models/News.php
Codeigniter3からModelはClassなのでファイル名の最初の1文字目は大文字だよ!

あんまり好きじゃない書き方だけども、Modelのコードね。
slugが指定されてなければ全件をretunしてる。
slugが指定されている場合は、検索した結果を1件だけ返してるコードだね。
できればlimitの設定とorder by は指定したいところだね。

Controllerの作成

次はコントローラー
これも最初の1文字目は大文字だ。合算するとこれぐらいだよね。

チュートリアルのコードはこんな感じになるかな?

Viewの作成

チュートリアルをみるとviewをどう書くのかがすごく雑だね…..
ここで必要なviewは
application/views/templates/header.php
application/views/templates/footer.php
news一覧を表示させるための
application/views/news/index.php
application/views/news/view.php

この4ファイルになるね。!

application/views/templates/header.php

application/views/templates/footer.php

application/views/news/index.php
index.phpは一覧を表示するよ!

http://{EC2のインスタンスのURL}/news

まぁ、そうだよね。
表示されるのはタイトルだけだね。
だってまだ表示する記事ないんだもの。
mysqlに接続して、記事でーたを登録してみるね!

1件登録して見たよ。

http://{EC2のインスタンスのURL}/news へアクセス。

記事が1県表示されたね!!!

次にviewへアクセス
http://{EC2のインスタンスのURL}/news/first_message

表示されたかな???

次は [ニュースを登録する機能を作ろうぜ] を(3)って事で続きを記事に書こうと思うよ!!!

CodeIgniter3のチュートリアルをちょっと見てみようかの巻(1)

こんにちわ! NEKOGETです。
この記事はCodeIgniterアドベントカレンダーのために書きました! 8日目です!
https://qiita.com/advent-calendar/2017/code_igniter

7日目の記事はこれ。
Codeigniter3を学ぶための環境をAWS Cloud9で作るの巻 (ansible編)

さて、みんなはCodeIgniter3のチュートリアルは見たことあるかな?
1,2はやったことある。でも3は2と変わらないからやってないわーって人も多いんじゃないかな?
CodeIgniter3のチュートリアルをやりながら、CodeIgniterのコードの話ができるといいかなって思ったんだ。

チュートリアルの場所
本家(英語): https://www.codeigniter.com/user_guide/tutorial/index.html
ユーザー会(日本語): http://codeigniter.jp/user_guide/3/tutorial/index.html
@NEKOGET(日本語?): http://pneskin2.nekoget.com/codeigniter/3/user_guide/tutorial/index.html

今気がついたんだけど、私のやつまだ翻訳終わってなかった….
私ダメじゃん!!!!

とりあえず本家(英語)を見ていこうか☆
チュートリアルの内容

  • 静的ページを作ろうぜ
  • ニュースを見る機能を作ろうぜ
  • ニュースを登録する機能を作ろうぜ

の3本だてだよ!

静的ページを作ろうぜ

https://www.codeigniter.com/user_guide/tutorial/static_pages.html
まぁ、あれだよね。
特に更新はしないんだけど、置いておきたいページあるよね。
ヘッダーとかさ、フッターとかちょっとだけ動的に値をおきたいんだけどメインコンテンツは変更ないし、でも都度都度コードを書き足すのは大変だよねー
こんな書き方があるよっていうご紹介。
チュートリアル的にはデータベースにばーんってつないで、そこから情報をばーんってとってきて、ほら!一連画面が出てきたよ!!!
みたいな方がいいんだろうけど、そうじゃなく静的ページを見せる時にはこんな風に始めるといいよって言っちゃうCodeignier3かわいいよね☆

チュートリアルにあるコードはこんな感じね。
これだとURLは

http://{CodeIgniterを設置したとこまでのURL}/page/view/{見せたい記事のファイル名}

私が書くとしたら、headerとfooterはもうパーツにしちゃってレイアウトファイルを共通のに作っちゃった上で書くから、こんな感じにしちゃうのが好き。

表示したいページをviewの中にどんどん作っていって
view/pages/{ファイル名}.php
ファイル名にHITするものは表示しちゃいましょ。

次に書かれてるのがrouterの設定だね。
application/config/routes.php

そうすると、
http://{CodeIgniterを設置したとこまでのURL}/page/view/{見せたい記事のファイル名}
これが
http://{CodeIgniterを設置したとこまでのURL}/{見せたい記事のファイル名}
になるわけですねー

さて、ここで気になると思うんだけど、

$route[‘(:any)’] = ‘pages/view/$1’;

のルールがあって
http://{設置してるURL}/Welcome
にアクセスされたとしますね。

Pages Classのそれと、Welcome Classのどちらが優先されるんだろう?

config/router.php

これをこんな風に書きかえたよ。

実際試した結果
application/view/welcome.php
の生身が、表示されます。

ではない場合はどうなるんだろう?
Pages classの処理が実行されて、まぁ当たり前なんだけど404です。

ちょっとこれだと苦しいねー苦しいねー
実用的ではないと思うんだー

http://{設置してるURL}/document/Welcome
こっちの方が使いやすいと思うけど、チュートリアルはこういうものだよーって伝える役割のものなのでこれでいいのかもしれないね。

さて、Router Classはどんなことしてるのか 実際のファイルを見てみようか!
これは、3.1-stableブランチのコードね!
https://github.com/bcit-ci/CodeIgniter/blob/3.1-stable/system/core/Router.php
Router Classは大きな仕事をしてるから、coreフォルダの中にいるんだよ。

で、これがどこで呼ばれて仕事してるかというと、CodeIgniterのcoreの中のCodeIgniter.phpの中でお仕事してます。
https://github.com/bcit-ci/CodeIgniter/blob/3.1-stable/system/core/CodeIgniter.php#L311

次は、「ニュースを見る機能を作ろうぜ」を見てみようね!

ちなみにCodeIgniter4では随分とモダンに高機能になってるよ!
http://pneskin2.nekoget.com/codeigniter/4/user_guide/general/routing.html?highlight=router

次のアドベントカレンダーの記事は ayatoさんの Dockerで作るCodeIgniterローカル開発環境 だよ!
お楽しみに☆

Codeigniter3を学ぶための環境をAWS Cloud9で作るの巻 (ansible編)

こんにちわ! NEKOGETです。
この記事はCodeIgniterアドベントカレンダーのために書きました! 7日目です!
https://qiita.com/advent-calendar/2017/code_igniter

前回の続きと言うか、ちゃんと環境をサクッと作れないとダメだったなって反省しました。作るものが増えるたびに手で毎回インストールして設定するとかないし!ないし!
そして session どう考えても Amazon ElastiCache 使うよね?

でも料金思うとお試しだったり勉強環境に課金するのはちょっと考えちゃうよね?

ってことでansibleを書いたよ。
https://github.com/NEKOGET/ci3_aws_c9_ansible

これでPHP7.1環境ができたよ。

開発環境にシンボリックリンクが貼られているはず

こんな風になっているはずだよ。

webコンソールから、自分が触ってるインスタンスのインパウンドに80ポートを追加すればブラウザ越しにみることができるよ。
EC2サービスからセキュリティグループ名のテキストリンクをクリック、下部にあるタブの「インパウンド」を開いて編集ボタンを押してね。 全体へ公開もできればIPを絞ることもできるのでそこは好みで。
このスクリーンショットの絵は全公開にした場合のものだよ。

これでいつでもCloud9でCodeIgniterを試せる環境になった!!!
やったー!

Welcomeページがちゃんと表示されたよ

次のアドベントカレンダーの記事はこれ!
CodeIgniter3のチュートリアルをちょっと見てみようかの巻(1) だよ☆ 楽しんでね☆

CodeIgniter3でコードを書き始めるの巻

こんにちわ! NEKOGETです。
この記事はCodeIgniterアドベントカレンダーのために書きました! 6日目です!
https://qiita.com/advent-calendar/2017/code_igniter

5日目の記事は rhapさんによる 【CodeIgniter】ビューの同じ記述をまとめる(CakePHPっぽいエレメントの実装) だよ☆

CodeIgniter3でコードを書き始める時ってどうしてる?
composer でプロジェクト作っちゃう?
それともzipファイルDLしてからのスタートかな?
今日はcomposerでプロジェクト作っちゃうの話をしよっかな?

composerって言うのは、もともとsymfonyの文化の中から生まれたものでね、

https://packagist.org/

が公式サイトなんだ。 composer installってコマンドだけ習って、サイトを見たことがない人も結構いるんじゃないかな? 自分でcomposer.jsonを書くようになってから見たよって人も多いと思うんだ。

PHP関連だとやはり象さんのアイコン多いよね。かわいいなー
ここに登録されてるプロジェクトを作るためのそれらをちょっと見てみようね。

CodeIgniter本家のパッケージ
https://packagist.org/packages/codeigniter/framework

kenjisさん作 codeigniter-composer-installer
https://packagist.org/packages/kenjis/codeigniter-composer-installer
このパッケージは、紹介しているブログやサイトがたくさんあるね。
私もすごくお世話になってます。kenjiさんありがとう!!!
紹介してるサイトがあるから、紹介しておこうと思うよ。

最初の2件は2015年の記事なんだけども、現在も有用な情報だよ!改めて追加することは何もない。
最後の「ComposerでCodeigniterをインストールする方法」はMAMP環境でのcomposer installの話を書いてくれてる。 まだまだMAMPで開発してる人も多いんだけど、案外情報ないんだよね。こうして発信してくれる人がたくさんいるのありがたいなーって思う。すごいよねー。

CodeIgniter3が動く環境を用意してみようかー

今回はAWS Cloud9を使ってみるよ。
残念ながらTokyoリージョンにはきてないんだ。
AWSに買収される前にすごく気に入って使っていたサービスなので使ってみたい。そんなこんなで、Cloud9環境でcomposerでプロジェクトを作って、スタートページが見えるところまでやってみるよ!

AWSアカウントの作り方
…は割愛していいかな?
AWS アカウント作成の流れ  が公式で公開されているね☆

自主トレ環境として大好きだったcloud9がAWSになって、探してみたら公式ブログも上がってた
https://aws.amazon.com/jp/blogs/news/aws-cloud9-cloud-developer-environments/
11/30だから、公開されたほやほやの記事だね。

AWSにログインしてから、cloud9のサービスホームに移動してみようか!
https://console.aws.amazon.com/cloud9/home?region=ap-northeast-1

残念ながら、東京リージョンでは利用できないみたいだ。
シンガポールで使ってみるよ!

[ create environment ] ボタンをクリック
環境を作る画面になるよ!

名前を決めて、概要を入力して次へ!

新しいインスタンスを作るよ!を選択
t2.microを選択 お試しに良いって書いてあるしね!Free-tierだしね!
Free-tier eligible. Ideal for educational users and exploration.

Cost-saving settingの設定は、30分。
まぁFree-tierなインスタンスを使うので気にしなくていい気もするけども。
30分したら停止する設定です。

NEXT STEPをクリック 確認画面が出ますね。

cloud9は自動保存はしないんだぞ!っていう注意書きが出ます。
ここら辺はあれだよね、githubにpushして保存したいところだよね。
lean moreのリンクをクリックすると、参考になる情報があるんでみるといいと思う。今日のところはスキップしちゃうね

環境が作られ始めたよ!
大好きなcloud9のロゴが真ん中にどーん!
数分かかるよ☆

環境が立ち上がると、cloud9おなじみの画面が表示されるよ。

cloud9のエディタは下の部分がターミナルになってるの。便利だね!
以前のcloud9はubuntuベースだったけど、AWSのcloud9はどうかな? redhat系かな?
調べてみるよ?

amazon linuxになったみたいよ!

phpは最初から入ってるみたいだけどcomposerは入ってなかったね。ちょっといれとこうか

composerの準備完了です。

Composerでプロジェクトを作ろう!

するっとinstallできました。

動くようにパスを通してみるよ

ちゃんとちゃんと環境を作るのであればhttp.confを書き換えたりするといいと思うんだけど、元の設定にあわせてシンボリックリンクを貼って対応してみるよ!

apacheの起動

インパウンドの解放とEC2インスタンスのURLの確認
(この部分は旧Cloud9では必要のなかった操作だね….)
cloud9が使ってるっぽいEC2のインスタンスを選択。パブリック DNS (IPv4)をメモとこう!
http://{パブリック DNS (IPv4)}/

セキュリティグループがテキストリンクで表示されてるのでクリック。
インパウンドにhttp80ポートを追加します。

メモしておいた http://{パブリック DNS (IPv4)}/ にアクセス
スタートページが見えました。

ここまでのまとめと反省点

現在 8:55 がっつりと AWS cloud9 部分を書き換えました。
以前のCloud9の場合は、Runを実行するとサーバが起動しURLが画面上に表示されるのでhttpの起動以降はボタン一つでできたのですがAWS Cloud9では無理でした。Previewの初期値に設定されているURLがhttpsになっていることとURLにアクセスできない状況をみるに、まだその部分は開発中なのではないかと思います。
DockerかVagrantでやるべきだったかなと反省しつつ、まぁでも11/30にリリースされたばかりのこれも触りたかったので仕方ないなあと思いました….
この環境下で以降の記事も書いてみようと思います。

追記: mysqlも入ってました

6日目でした☆

CodeIgniterの歴史

こんにちわ! NEKOGETです。
この記事はCodeIgniterアドベントカレンダーのために書きました!
https://qiita.com/advent-calendar/2017/code_igniter

この記事の前の記事は
CodeIgniterのどんな話をしようかな?の巻 です
このままだと毎日NEKOGET !!!!
25日までガラガラなんで、誰か記事頼むよ。本当お願い。

さて、歴史の話!
今、CodeIgniterはバージョン3!!!
ってことは1の時代も2の時代もあるんですね!
そして4への未来へと続く☆

みたいな話をすっごい主観的に書くよ!
ほぼNEKOGETとCodeIgniterとの仲良し記録になる予定なので軽い気持ちで読んでね☆

CodeIgniter1の時代

CodeIgniter誕生
この時代のことをNEKOGETは知りません。
出会ったのは彼が1.5か1.6の頃だからね
ユーザーガイドに書かれている誕生の時

Version Beta 1.0 Release Date: February 28, 2006

1.0はベータ版だったんだね。

Version 1.2 Release Date: March 21, 2006
ベータじゃ無くなったのは1.2 正式リリースって意味では2006年3月21日がお誕生日
おめでとう! CodeIgniter!!!
PHPのバージョンは幾つの頃だったんだろう?

http://pastport.jp/user/yandod/timeline/php-history
PHP年表によると2006年春はPHP5.1.xが最新だったみたい。namespaceもまだだし、配列もarray()の時代だね。

Version 1.5.1 Release Date: November 23, 2006

私と出会ったCodeigniterさんは1.5だったと思うんだよね。1.5.x ← ここの数字は覚えてなんだけども。
当時の私はまだDreamWeaverでPHPを書いていてね、スニペットを自分のために、登録して使えるようにしてた記憶があるよ。
まだCodeIgniter徹底入門は出てなかったと思う。
今Amazonを見て見たら 出版社: 翔泳社 (2008/6/10) って書いてあった。
知り合ってから10年以上になるんだなぁと思うと感慨深いね。
当時Codeigniterを開発していたElis.LabのホームページのHTMLがそれは美しくてね….
当時まだbootstrapもない時代で、xhtmlのmarkupがどうあるべきかみたいな話題が溢れてた時代。
htmlの構造もmarkupもclassのつけ方もそれは美しくてね、感動したのを覚えてるよ。
見た目は良くてもぐっちゃぐちゃなhtmlを吐き出さない会社の作ったPHPのフレームワークなら使って見たいと思ったんだ。
使えるようになりたいともね。(あの頃の美しかったhtmlは、もう今となっては思い出の中にしかないんだけども)

当時のCodeigniterは結構まだバグもあったのだけども当時から、application層でclassが上書きできる仕組みにはすでになっていて自分で直したものをそこで試せたし、本家に報告をして直してもらうまでの間application層で対応したものを設置して実装できたんで本体に手を入れてみたいなことをせずに修正できたんだよね。これは3になってもその仕組みは残っていてすごく便利だったんだ。
Model周りとか他のフレームワークのライブラリを使う方法とかそういう情報が結構出てたように思うよ。

CodeIgniter2の時代

すごく長かったように思うなぁ2の時代
1から2へのバージョンアップは、form_valodation classの名前が変わったのだけがちょっとめんどくさかったけどあとはそれほど難しくなかったように記憶してるよ。

https://www.codeigniter.com/user_guide/installation/upgrade_200.html?highlight=upgrade

これは、1.7から2.0へのアップグレード方法が書かれているユーザガイドのURL
完全に忘れてたんだけど、そうそう、pluginのディレクトリが無くなったのよね。

CodeIgniter2から3の時代(ライセンス問題勃発)

CodeIgniterといえばライセンス問題と言われた(?)ほどに不遇の時代。
CodeIgniterライセンスから

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

というのを、弁護士の先生にお願いをして、公開したのはすごく懐かしい思い出。決して安くななかったけど個人でこれをやれたのは勢いがあったんだなぁ私ってつくづく思うよ。
結局バージョン3になり、開発がElis.Labからブリティッシュコロンビア工科大学になりあれほどもめたライセンス問題はさらっとMITライセンスになったのでした。
本当にあの騒動はなんだったんだろうね。もうとっくに3を出してもよかったんじゃないのって時期から1年も待たされたんだよね。でも結果すごく良い状態の3に出会えたのはよかったことなのかなとも思うのよね。

元々CodeIgniterは元々ExpressionEngine CMSっていうCMSを開発するためにあったのね。で、もっと小さな規模での企業サイトを作る用のCMSがCodeIgniterで作られていてElis.Labで売られてたのね。
それらを買ってみたりしてコードを読んで勉強したのはすごく良い思い出。
seezoo っていうcmsもあった。これもまたすごく素晴らしかったんだ。

CodeIgniter3の時代

3は現行最新バージョンだね。

Version 3.0.0 Release Date: March 30, 2015
Version 3.1.6 Release Date: Sep 25, 2017

3がリリースされたのが2015年
最新版が出てるのが今年の9月
まだ本家だと2のユーザーガイドも見れる状態だけども、そろそろみんな3にバージョンアップしてほしいな。
したよね?
魔改造しちゃったCodeIgniterもうまいことApplication層へ改変コードを移動して3へのバージョンアップに挑戦してほしい。
CodeIgniter3はPHP7.2のテストも実行されてるし、passされてるよ。 怖くないよ!!!

3の続き話は後でにしようか。ちょっと長くなりそうだしね。

そして未来のCodeIgniter4

これも、4の話はボリュームかなり大きいから後から改めて話をしようと思うよ。

そんなこんなで3日目の記事を書きました。

次の記事は@rhapさんの 【CodeIgniter】プロファイラを外部ファイル出力できるようにする です!
お楽しみに☆

追記:
いやぁ、すんごい嬉しい!!!! もっともっとCodeIgniterの話をしてくれる人がいっぱい現れるといいのに!いいのに!!!
書きたくなっちゃったなーって方は是非、 CodeIgniterアドベントカレンダー に登録してくれると嬉しいなぁ。めちゃくちゃ嬉しいなぁ☆
https://qiita.com/advent-calendar/2017/code_igniter

CodeIgniterのどんな話をしようかな?の巻

こんにちわ! NEKOGETです。
今朝も美味しいトマトジュースを飲んでから、この記事を書いてます。
さて、この記事ですが、実はアドベントカレンダーの記事の1つです。
前の記事は、

なぜこのアドベントカレンダーのURLがcode_igniterなのか

でした。

アドベントカレンダーのURLはこれ!
-> https://qiita.com/advent-calendar/2017/code_igniter

さて、なんの話をしようかざっと書き出してみるよ

  • CodeIgniterのバージョンのお話
  • 現行バージョン3はPHP7.2のテストが通ってるようだよ!
  • Composerを使って外部ライブラリを利用する時に書きたいドライバー
  • 認証機能どうする? 何か良いライブラリある?
  • modelをどう書く? テーブルに1対1じゃーなくてもいいんだよ?
  • ドキュメント翻訳の話
  • 初めて学ぶ時には、なにからやればいいんだろう?
  • バージョン3でunitTestを書くには
  • HMVCエクステンションの今と昔
  • CodeIgniterは素直に書こう。何重にも継承したりするのは何か間違ってるよ?
  • AWS CILとCodeIgniterのModelの話 (バージョン4)
  • 日本語の情報は今はどこで知ればいいんだろう?

うーん 12個。
全然足りないよ?どうしようね?
話したい話、話せる話よりも、誰かが聞きたいって言ってくれる話がいいのかも知れないけども勉強会で話す内容ももうすっかりネタ切れでもあるし苦しいね。苦しいね。

  • CodeIgniterの歴史(1から4)
  • 英語で見るCodeIgniterの最新情報の追いかけ方
  • CodeIgniterのなかのCodeIgniter.phpのお話

15個

いやいや、英語じゃなくて日本語で最新情報追いかけたいわ…..
でもまぁ本家が英語だし、英語だよなぁ。
もっとちゃんとNEKOGETが発信しとけって話よね。来年….. 来年から頑張るよ!

CodeIgniter4の話しちゃう?
でもリリース2020年とか言ってるし、どうしよう???

  • CodeIgniter4の状況
  • CodeIgniter4で増える(はず)のモダンな気がする何か
  • 現状開発中のCodeIgniter4に3から移行することを考えて見る

18個
23個には全然足りないけど、とりあえずネタ出し。
書けるかな…..
書ける気が全然しないんだけども、まずは言い出して見ることも大事だよねってことでまずは公開して後悔してみる事にします!
全然違う事書くかも知れないしね。なんてったってNEKOGETだしね!

CodeIgniterは使っててすごく楽しいPHPのフレームワークです。
何も特に考えなくてもサクサク書けるからね。
それはメリットもあるしデメリットもあるよ。
ファイルはすごく多くなる。同じことまた書くの?なんてこともあるんだけど、安易に共通処理にまとめるよりはずっとシンプルでわかりやすいコードの姿を保つことができる。
でもまぁそこは考え方次第なんだと思うんだよね。
そんな主観な感じでかけたらいいなと思う、2日目の記事です。

なぜこのアドベントカレンダーのURLがcode_igniterなのかなの巻

これは、アドベントカレンダーのために書いた記事です。
アドベントカレンダーのURLはこちら
-> https://qiita.com/advent-calendar/2017/code_igniter

まぁあれです。
今年はね、アドベントカレンダーを書く時間なんてぶっちゃけないはずだし、いいやーって思ってたんですよ。でもね12月1日になってアドベントカレンダーを書かなきゃーっていうのがtwitterのタイムラインに流れ出し、書くよーって話も聞こえてきたりするわけですよ。
ああ、やっぱ寂しいよなー
CodeIgniterは元気だし、いい子だし、もっと知ってもらわないといかんよねってことでアドベントカレンダー作りました。
誰かが書いてくれる気配はあまりないので、頑張って書きます!
読んで面白いかどうかは、とりあえず後から考えます。
後悔ってやらなきゃできないしね☆☆☆

そんなわけで、アドベントカレンダーのURLの話です。
今日の今日作ったのでネタなんてありません。
何書くか、今日明日これから考えるのでまずはURLの話をします。

CodeIgniterのアドベントカレンダーなのですが、urlはcodeigniterでもCodeIgniterでもなく、code_igniterです。一瞬全部小文字か大文字ありにしたくなったわけですが、しませんでした。

なぜかって?
2016年、2015年のアドベントカレンダーのURLもそうだからです。

https://qiita.com/advent-calendar/2016/code_igniter
https://qiita.com/advent-calendar/2015/code_igniter
….

URLで遡れるのいいよねー!
去年のアドベントカレンダーを作ってくれたアヤトさんに相談されたおりに、その前はどうだったかなー?って絶対URL2016の部分を2015にしたりするよね?んじゃ、微妙は微妙だけども、code_igniterでいいんじゃない?って言っちゃったのですよね。

つまり私が!

で、2014年はなく、2013年も絶対code_igniterだと思ってたんですよ!
そうしたらですね….
https://qiita.com/advent-calendar/2013/codeigniter

まさかの全部小文字….(絶句)
2018年のアドベントカレンダーはどうなるのか今からドッキドキです!

はい!
明日のアドベントカレンダーを書くのも私の予定です☆
頑張ります☆

「はじめてのPHPフレームワーク PHP初心者がすぐ現場で活躍するための CodeIgniter3超入門」 リリース!

「はじめてのPHPフレームワーク PHP初心者がすぐ現場で活躍するための CodeIgniter3超入門」


https://gumroad.com/l/JfkAE

榊原昌彦さんと書かせていただいた本が2/14にリリースされました。
一般財団法人リレーションデザイン研究所榊原昌彦さんとともに、
「はじめてのPHPフレームワーク PHP初心者がすぐ現場で活躍するための CodeIgniter3超入門」を書かせていただきました。

書籍がない問題
CodeIgniterで日本語の本は「CodeIgniter徹底入門」が有名です。しかしこの本2008年の出版。内容も1系の本なんですね。
CodeIgniterの日本語の情報、Web上をさがしてもそれほど多くの情報にはたどり着けません。

  • ユーザーガイドが充実していたこと。
  • フレームワークのソースコードも頑張れば2日もあれば読めてしまうこと。
  • 簡単に使えてしまった結果、ブログにも書かないし質問の投稿もない….

フレームワーク経験者であればするり使えてしまうんですね。で、初心者であってもユーザーガイドを見つつそれなりに使えてしまうんです。そのために、使い勝手が良いからこそ、情報が少ないという壁に当たってしまう問題。これがすごく深刻。
難しいことを何もしていない、必要としないこのフレームワークは初心者にこそ向いている。
初心者に向けての最初のフレームワークとしてCodeIgniterの事を教えてあげられる何かがあるといいよねって話からこの本が生まれました。

感謝
査読に協力してくださった皆様、そして榊原さんのおかげで本が出ました!
私1人では到底無理でした。大感謝です!!! ありがとうございます。

今後の目標
CodeIgniter4のドキュメント翻訳など、小さな小さな活動ですがCodeIgniterが導いてくれた入り口を大事に私にできる貢献をしていきます。どうぞよろしくお願いします!

関連URL:
「はじめてのPHPフレームワーク PHP初心者がすぐ現場で活躍するための CodeIgniter3超入門」

入門書「CodeIgniter 3超入門」の販売を開始しました。の裏話。

CodeIgniter Night2を開催しました

CodeIgniter Night 2を開催しました。
大阪や静岡からも参加頂くなど、大感謝です。
楽しい会となりました。

CodeIgniter4の日本語翻訳をOmegaTでやり始めた試行錯誤中の状態の話をさせていただきました。

参加いただいた皆様はもっとプログラムの話を聞きたかったのでは?と不安になりましたが、翻訳の話を発表してきました。
竹腰さんもOmegaTで翻訳していらっしゃいますが、私も竹腰さんもやり方が違う状態で全く別々で翻訳をしています。
おそらく現状ではmergeをしようとするとやり方が全く違うため衝突するのではないかなぁと思います。もう少しやり方に慣れて確証が持てたら作業手順をまとめたいなぁと思っていますが、もうしばらくは使い方に試行錯誤しつつ翻訳していくことになりそうです。

アヤトさんの発表

もっと交流を!もっと情報をという内容の発表をいただきました。資料は後で公開してくださるそうです。楽しみ!
去年年末のアドベントカレンダーを発案してくださったりと、アヤトさんのおかげでCodeIgniterの日本語の情報が盛り上がってきた感じがあります。本当に本当にありがたい。
発表後半は参加いただいた皆様全員との座談会的な流れとなり、それも嬉しい事でした。
いろんな人のCodeIgniterの話聞きたいよね。

竹腰さんの発表

Queue実装に見る排他制御(CodeIgniter4でQueueライブラリが実装されます)

CodeIgniter4でのキューの実装についての発表をいただきました。
https://github.com/bcit-ci/CodeIgniter4/pull/347
すごくすごく楽しみです。

CodeIgniterの日本語情報 -その2-

この記事はCodeIgniter Advent Calendar 2016の12日目です。今日は他力本願な記事でいきます!

11日目の@lf_ur_さんの記事はこちらからどうぞ

CodeIgniterの情報が少ないなーわかりにくなーという話をよく耳にするので、情報がまとまっているサイトをご紹介します。

https://github.com/rdlabo/CodeIgniter_Talk
PRで項目の追加しちゃうよってことで運用されているので、CodeiIgniterの情報を持ってる人はPRするといいんじゃないかな?

よく見ると2016年の情報がない!!! PRせねば!!!