Frameworkの入門記事を書いてみたいと思います。Framework標準のMVCアーキテクチャを使用して、フォームの内容をDBに書き込んであとで検索できるような簡単なメモアプリを作ることを目標にしようと思います。dara-jにそんなスキルがないので、PHPやオブジェクト指向プログラミングの詳しい解説は省略させていただきます。前提としてPHPをある程度使える(他人のソースをほんのちょっと改造できる程度)クラスベースのオブジェクト指向プログラミングをかじったことがあるくらいのスキルがあるものとさせていただきます。Frameworkでアプリケーションを作成・動作させるには以下のような環境が必要になります。FrameworkはPHP5のオブジェクト指向機能を利用しているため5.1.4またはそれ以降のPHP環境が必要になります。Frameworkを動作させることができます。テキストエディタ:ソースコードの編集に必要です。本当はPDTのようにコード補完機能が利用できるIDEがあればいいのですが、ここで取り扱う規模なら手になじんだテキストエディタで十分でしょう。ブラウザ:Webアプリケーションを作るので、当然ながら動作確認にブラウザが必要です。インストールまずはPHPとWebサーバをインストールする必要がありますが、ここでは省略します。検索すれば有用な記事がたくさん見つかると思うのでそれらを参考にして、PHPが動作する環境を作ってください。Frameworkをダウンロードします。こちらのダウンロードページからダウンロードしてください。28日時点では、1.0.1が最新バージョンです。この記事は1.0.0をベースに進めますがバージョン間の相違はおそらくないのでどちらでも問題ないと思います。1.0.0(または1.0.1)のアーカイブをダウンロード・解凍すると、以下のようなディレクトリ構成になっているはずです。デモアプリケーションフォルダ。正式のライブラリになる前の実験的(?)なライブラリ郡があります。テストスクリプトフォルダ。この連載では使用しませんルートフォルダ(ZendFramework-1.0.x)、または/libraryフォルダを任意の場所に設置してください。後述しますがlibraryフォルダをPHPのインクルードパスに追加する必要があるため、ドライブのルートに設置したほうが楽でしょう。D:\ZendFramework-1.0.0、のように。URLリライトの動作確認ZendFrameworkの設定と動作確認の前に、URLリライトの設定と動作確認をとってみましょう。Apacheを使用しているのであれば、書き換え対象のフォルダに以下のようにルールを記述した.htaccessを設置するだけですみます。index.phpこれは、「.js、.ico、.gif、.jpg、.png、.css以外の名前のパスをすべてindex.phpにリライトする」というルールです。Framework(性格にはZend_Controller_*を使用したMVCモデル)では、このようにすべてのリクエストをアプリケーションルートのindex.phpに処理させるようにします。今回は、ドキュメントルート下に「rewrite_test」というフォルダを切って、これを確認用のURLのルートにします。ドキュメントルートを「D:\htdocs」にした場合、以下のようなファイル配置になります。(ごめんなさい、Windows前提です。ダミーで設置index.phpの内容は以下のような簡単なものにしてみましょう。!」と表示されれば、URLリライトの機能は正常です。test.htmlが表示されるようであれば、Apacheの設定でmod_rewriteがONになっているか再度確認してください。Rewriteの環境の場合はApacheよりもちょっとだけ面倒です。Rewriteのインストールディレクトリにある「httpd.ini」に記述する必要があります。書式もちょっと面倒です。上記環境の場合は以下のようになります。[I]これ以降、アプリケーションフォルダを切るたびに対象のパスに対する同様の記述をhttpd.iniへ追加していく必要があります。コピーペーストでパスだけ書き換えればいいのですが。FrameworkのlibraryフォルダをPHPのインクルードパスに設定します。なっている)場合は、PHP.iniのinclude_pathを以下のように設定します。".;D:\ZendFramework-1.0.0\library"もし、他のライブラリを常用するのであればそちらのパスも忘れずに記述しておいてください。PHP.iniを書き換えたら、CGIモードでない限りは設定を反映させるためWebサーバを再起動する必要があります。Frameworkのライブラリにあるクラス郡を使用できます。先ほどのindex.phpを以下のように変更してみましょう。クラスをrequireする。1.0.0」と表示されれば成功です。require_onceでWarningがあがるようならインクルードパスが適切に設定されていません。PHP.iniをもう一度見直してみてください。Frameworkの環境ができあがりました。次回からはもう少しプログラミングっぽくしていこうと思います。Frameworkと格闘しています。Frameworkの「プログラマ向けリファレンスガイド」と首っ引きでした。このリファレンスガイドとAPIドキュメントがあれば大体のことは網羅されていますし、当然ソースコードも公開されているのでそちらを追いかければより詳細な仕様を確認できるのですが、とっかかりとしては敷居が高く、かなりうなりながらドキュメントを読んでいたように思います。「PHPフレームワークの本命」と言われている割に、検索をしてみてもあまりまとまった入門記事にあたらないように思います。developerWorksの記事もありますが、若干古い内容なため、現状の1.0系とはところどころ違っている部分もあるので、ひょっとするとdara-jが学んだようなことがだれかの役に立つかもしれない、と思いこの記事を書き始めました。コードはなるべく検証してから掲載するように心がけますが、間違いやバグ、環境によって動作しないような部分があったらコメントやトラックバックでお知らせいただければ幸いです。仕事などの関係もあるのでそうしょっちゅうは記事をかけないかも知れませんが、気長に読んでいただければ幸いです。11:48)PHPのソース中の開始タグの「?」が抜けてました。吊ブックマークレットtumblrのキーボードショートカットが便利になっとる。Chrome編dataスキームの画像をブロックしてみるローカルストレージを確認したり消したりするブックマークレットそうそう、いまさらTwitter始めました。(9)このブログについてJavaScriptとかC#とかPHPとか。