残念なお知らせだ。
Yiiの記事を書いてからというもの、著しくアクセス数が落ちたことと、まるで読まれていないことと、業務でYii使ってたけど部署異動でやらなくなるし、それにモチベーション的にどうでも良くなったので、この連載は一時停止するよ。
以前、MySQLで正しくランキングを作る記事と、i18nをちゃんとやる記事を途中まで書いてたんだけど、今のところ再開の見込みはゼロ。やっぱり飽きちゃったというか、今それどころじゃないよね、という体。
今回のYiiに関してはもしかしたら再開する可能性がある。なので中止じゃないんだ。あくまで『もしかしたら再開』するかもしれないレベル。でも恐らく二度とやらない気もする。
さてさて、本日もMockeryでもっこりしていこうと思う。もっこり。
まずはYiiのシェルyiicをつかって、ベースとなるアプリケーションをさっくさくに作ってしまおうか。
yiicの使い方は簡単だけど、もしわからなかったり、忘れてしまったり、自信がなくなってしまったら、公式サイトを覗いてみればいいだろう。
公式サイトはここだ。
『初めに:はじめてのYiiアプリケーションの作成』
で、具体的な使い方はこうなる。
framework/yiic webapp <Webアプリ名>
さて、Mockeryだ。約束通りMockeryだ。
実はPHPUnitのepubをゲットしたので、全部読んだ後にもう一度PHPUnitやろうかと思ってたんだよね。
と言うのも、実は俺自身、あんまりテストとかってしたことがなくて、その重要性とかわかっていつつも、面倒臭いの一言でやらずじまいでいたわけよ。
そりゃ10年以上(15年くらい?)ほとんど一人で開発してれば、チーム開発手法(スクラムなどのアジャイル系)なんかさっぱりわからんし、GithubだってPull Requestなんか一度も使ったことがなかった。
今勤めてる会社は規模がデカイので、当然Githubなどのチーム開発向けのサービスも使ってるし、ちゃんとコードレビューもみんなでやってる。そしてPHPUnitをつかってテストもしてるんだ。
Seleniumというテストフレームワークもつかってるので、ブラウザで自動テストなんかもできてしまう。恐ろしい世の中だ。
テストなんか学生時代で終わらせておきたかった。このまま死ぬまでテストするのかと思うとめまいがしてくるけど、テストが通った時(グリーンな状態)は思ってたより嬉しかったりするんだよね。
というわけで、テストは大事だ。本能的には『テストなんか犬が喰えクソがッ!!』って思ってるけど、建前上、『テストは大事』ってことにして話を進めるので、気分の悪いお客様はとっとと去れ。
PHPUnitというのは、いわゆるxUnit系のテストフレームワークだ。
なにを言ってるの?と思うかもしれないけど、この記事を読み終わるときには余裕で他人に語れる程度には説明しておくので安心されたし!!
というわけで早速行ってみよう。
君がプログラマだとするとよくあるパターンだろうけど、実行中のプログラムの変数の値を画面に表示させてみたりすることがあると思う。
JavaScriptならalert()を使ってみたり、PHPならvar_dump()、もしくはprint_r()だ。
頭のなかでは$fooは(int)100、$barが(string)"hogefuga"のはずなので、それを画面にプリントアウトして目で確認しようという感じだ。俺もよくやってた。むしろ今でもやってたりする。
キャメルケース(CamelCase)というのはラクダのこぶのように、アルファベットの単語の1文字目を大文字にすることだ。
例えばカナダを代表するアーティスト、アヴリル・ラヴィーンをキャメルケースで表すと、彼女の名前はアヴリル・ラモーナ・ラヴィーンなので、Avril Ramona Lavigneとなる。これのスペースを省略し、一つの文字列にしたものがCamelCaseだ。
つまり、AvrilRamonaLavigneとなる。
昔はギタリストのウィヴリーと結婚していたのでアヴリル・ラモーナ・ラヴィーン・ウィブリーが本名だったけど、今はウィブリーではない。その分文字数が少なくなった。
さて、1文字目を大文字にしないで小文字のままにしておく場合もある。実を言うとこっちがキャメルケースだったりする。
composer(コンポーザ)というのは指揮者のことだ。何故かIT業界では、すでに存在する意味を持つ単語を節操もなくそのまま使うケースが多い。はっきりいって検索でどっちがヒットするのか不明な場合が多いし、迷惑だと思う。
だからcomposerって名前とか、日常でも使う単語をそのまま使ってるプロダクトはあんまり好きじゃない。
とは言え、好きじゃないのはネーミングだけで、機能は好きな場合が多い。
composerはphp専用のパッケージ管理ツールだ。もともとSymphonyという大げさで仰々しいPHPフレームワークについていたおまけ要素だったらしいが、便利なので独立したらしい。
映画で言うスピンアウト的なプロダクトだね。うん。そして案外簡単に設定できる。
環境というのは、例えばWindowsにVirtualBoxを乗せてその上でCentOSを走らせているようなVM環境で開発してたら、それがローカル環境だ。
どこかのサーバに一式アップロードし、自分たちと限られた人たちだけが閲覧可能な状態であれば、いわゆるステージングと呼ばれる環境かもしれない。
クライアントに最終チェックしてもらう前に、自分たちで限りなく本番に近い環境で且つ、自由にいじれる先進的な環境も持っているなら、それはテストサーバなのかもしれない。
いずれにせよ、環境というのはサーバ、基盤のことと考えていいと思う。でもこれらの環境には当然ながら設定に差異があり、設定ファイルにそれぞれ環境から判別させるロジックを書いていたら、面倒くさい。
今回はBootstrapとデバッグに関して書こうと思う。
チュートリアルではMVCの概念とか、エントリスクリプト(ポイント)とかデバッグに関して書いてあるんだけど、今回は少し独自解釈した内容でお届けする予定。
まぁそれほど大してすごい内容ってわけじゃないけどね。
ところでブートストラップってのはもう知ってると思うけど、知らない人のために説明しておくよ。
簡単に言うと、一つのポイントにリクエストするだけで、そこから順にライブラリなどをたどって、最終的に元の場所にレスポンスとして戻ってくるという流れだ。直訳すると、自力で進む、的な内容になる。
最近のフレームワークは昔のとは違い、ジェネレータ機能が最初から含まれてる場合が多いよね。
Ruby on Railsは残念ながら触ったことがないのでわからないけど、CakePHPにはbakeがある。
そしてこのYiiにはGiiがある。発音はギィでいいのかな。
余談だけどZiiというのもあるので、Giiをジィと呼ぶと紛らわしくなるので、カタカナでギィと発音することにするよ。
そしてジェネレータはややおせっかい度とホスピタリティが高いんだけど、のちのち嫌がらせにしか思えなくなる事請け合いなしなので、本当は個人的には使いたくない。
さぁ、やると言ったらやるんだ、俺的に。
早速行ってみよう。
ところでYiiってなに?なんでそんな変な名前なの?
井伊さんが作ったの?
それともすごく( ・∀・)イイ!!から?
そんなことはない。ロシア人と中国人が率先して作ってるわけで、わざわざ世界で一番面倒くさい日本語を使って命名してるとは思えない。
実は答えは単純で、なぁんだそうなんだ、で終わる。
PHPのフレームワークはいろいろ出てきてて、CakePHPやCodeIgniter、Symphonyなんかとくらべて全然知名度が低いYiiだけど、その命名の由来はこういうことらしい。
Is it fast? ... Is it secure? ... Is it professional? ... Is it right for my next project?
Yes, it is!
速い? ... 安全? ... プロが使える? ... 次のプロジェクトに合っている?
Yes, it is!
ね、なぁんだそういうことなんだ、でしょ。ようするになんでもできちゃう、的なニュアンスを醸し出したかったんだろうね。
はいご無沙汰ね。うん。
半年くらい開いちゃったかな。
いろいろなことがあってブログにまで手が回らなかったよ。
というわけでサクッと再開。
そうそう、PHPのフレームワークだけどさ、ずっとCakePHPを使ってたけど、今の職場がYii(1.1)使ってるので、Yiiを覚えようと思うんだよ。
今の職場でYiiをいじってて最初に思ったことは、Javaみたいだ!って感じ。
実は俺はJavaはほとんどできないんだけど、トレーニング的にチュートリアルを10個くらいやったことがある。
YiiはとにかくOOPだ。