こんばんは。
PHP+フレームワークを覚えてみようということで、Zendをはじめてみました。

CodeZine「Zend Framework入門(著:川北 季 氏)」を参考にとりあえず環境構築とHello Worldを。


【環境構築】
(1)XAMPPを入れる。

Apache、PHPを拾ってくるのが面倒だったので、XAMPPを使用。
初めてXAMPPを使ってみましたが、なるほどこれは便利だ。

Apache、Tomcat、PHP、MySQLなどなど、よく使うオープンソースのソフトウェアが楽に管理ができる。
本番環境など、余計なものが入っていては困る環境には適さなくとも、開発環境には便利です。


操作は「Service」のチェックボックスをクリックすることでモジュールのインストールが行われます。
インストールされたら「Start」ボタンで起動。
終了は「Stop」ボタンでOK。

httpd.confなども「config」ボタンから簡単にアクセスできます。

$hidebuabeshiさんのブログ-XAMPPの管理画面



(2)Zend落とす

さて、次にZendを拾ってきます。
http://framework.zend.com 
から拾ってきます。
ZendFramework2はあんまり入門サイトが見つからなかったんで、とりあえずZF1にしました。


(3)Zend入れる

実に簡単でした。
1. 解凍
2. libraryにパスを通す
3. library/Zend に格納

これで完了。
中身をいじる必要ありませんでした。(ライブラリだから当然か…)

【HelloWorld】
Zend Framework入門(2):Hello World!アプリケーションの作成
を読みつつやってみました。

ディレクトリ構成は以下のとおり

/application
/models
/controllers
/views
/script
/public


.htaccessを作成。
index.php
index.phtml
hello.phtml
IndexController.php
を作成。

IndexController.phpはコントローラだからcontrollersで…
index.phpとindex.phtmlとhello.phtmlはpublicか… ←
この思い込みで数日詰まりましたorz

publicに置くのはindex.phpのみ。
んで、index.phtmlとhello.phtmlは
/application/views/script/index/の配下である必要がありました。

通りでエラーが消えないわけだ(;´д`)


配置しなおしたところ、正常に表示されました。

hidebuabeshiさんのブログ-localhostにアクセス


hidebuabeshiさんのブログ-GOボタンクリック後



【まとめ】
公開ディレクトリには「index.php」のみ
controllersには「index.php」に対応する「IndexController.php」を配置。
views/scriptには「IndexController」に対するディレクトリ「index」を作成し、そこにアクションごとのphtmlを配置。

よし、基本的な使い方がわかってきた。
久々です。
日ごろお世話になってる方に「毎日何かしら記事を書くとためになるよ」と言われたので、こまめに書こうと思います。



PHPといえばセキュリティが甘い、というイメージですが古いバージョンのパラメータエスケープに起因するそうです。

php.iniの設定に

magic_quotes_gpc

というものがありますが、これが原因とのこと。
これがonになっていると、パラメータの「'」やら「\」に自動的に「\」でエスケープされます。
元々SQLインジェクション対策のために設けられた機能だそうです。




・・・これが不完全だったとか(;´д`)




PHP5.3.0で非推奨に。
PHP5.4.0で廃止されました。

ちなみに類似機能のmagic_quotes_sybaseも同様です。


どうやらエスケープくらい自分で実装しましょう、ということだそうです。
世界一有名なID、パスワードの組み合わせとして

scott/tiger

がありますね。
かの有名なOracle Databaseの大半を作り上げたという、スーパーエンジニアの名前と、彼の飼い猫の名前というのはあまりにも有名ですね。
ちなみにスコットさんは現在はオラクルからは離れているとのことです。

あぁ、私もそのくらいの人物になりたいものです。

しかし猫のくせにtiger…虎とは随分と名前負けしてはいまいか…?