ZendFrameworkを基づき、PHP開発環境の構成を行う
開発環境構築
必須ツールとパッケージとのダウンロード・インストール
ZendFramework-1.11.11 | ダウンロード |
xamppV3.2.2 |
「mysql」、「tomcat」、「phpmyadmin」を含めて、すべてのインストールコンポーネントをインストールしておく。 [techacademyさんのxamppをインストールする] ポート衝突に対する対策。
1)Skype >> Skypeのメニュー「ツール」☞「設定」をクリックし、設定画面が表示される。その設定画面には「接続」をクリックし、「上記のポートに代わりに、ポート80と443を使用」とのチェックボックスを外して「保存」ボタンを押下する 2)VMware Tray Process >> タスクマネージャーに該当するプロセスを止めておく |
PHP5.63 |
(xamppwoがインストールされたら、xamppのインストールフォルダの直下にPHP関連フォルダが見当たるはずだ.) zendframeworkを利用するために、Zend Frameworkのライブラリ(Coreが含まれるディレクトリ)をPHPのinclude_pathに含める。実現方法が三つである 1)php.iniのinclude_pathディレクティブにZend Frameworkのlibraryディレクトリへのパスを追加する include_path = ".;C:/Development/application/library" 710行目
2)PHPファイルの先頭に、set_include_pathメソッドを呼び出す 3)Zend Frameworkのライブラリ(Zend/*)をAPPのlibraryディレクトリにコープする ※今回のサンプルには方法3)を使っている PHP PATH(環境変数)の設定 PATH=C:\xampp\php
|
apache |
(xamppwoがインストールされたら、xamppのインストールフォルダの直下にapache関連フォルダが見当たるはずだ)
1)httpd.confの設定 Zend FrameworkのMVCモデルを使用するには、まずApache HTTP Serverのmod_rewriteを有効にする必要がある。 httpd.conf内でrewrite_moduleがロードされていることを確認し、ルートディレクトリのAllowOverrideディレクティブの設定を変更する。 そうしないと、403エラー(Access forbidden!)とのエラーが発生する。
2)httpd-vhosts.confの設定 もしVirtualHostを使う要望が出てきたら、「1)httpd.confの設定」を廃棄し、%apache_home%/conf/extra/httpd-vhosts.confに以下の設定を行う
|
mysql |
(xamppwoがインストールされたら、xamppのインストールフォルダの直下にmysql関連フォルダが見当たるはずだ) 1)DBユーザのパスワードの初期化 xamppwoをインストールする間にMysqlのSIDとPWDなど情報入力の画面が表示されないため、DBのSIDとPWDがデフォルト値に設定されるはずだと見込んでいる。 ( http://localhost/phpmyamdinをアクセスして、「mysql」DBを選択し、「user」テーブルには「password」列に空である二件レコードしかないんだ。) なので、以下の設定を行っとく |
NetBeans 8.1 |
NetBeansのメニュー「ツール」☞「オプション」をクリックし、「オプション」画面が表示される。その画面に、「PHP」タブ☞「フレームワーク及びツール」タブをクリックし、 NetBeansに提供されるフレームワーク及びツール一覧が見える。 1)zendのスクリプトを設定 E:\99.Workspace\phpspace\ZendFramework-1.11.11\bin\zf.bat |
ZendFrameworkの使い方
- ZendFrameworkをベースとするPHPプロジェクトを作成
- レイアウトを作成
プロジェクトに右クリックし、「Zend」☞「コマンド実行」をクリックしたら、「Zendコマンドの実行」子画面がポップアップされてくる
% zf enable layout
を実行したら、
application/configs/application.iniのproductセクションに以下内容が追加される
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
且つ、application/layouts/scripts/layout.phtmlが作られる。
そして、application/configs/application.iniのproductセクションに手動的に以下の内容を追加する
resources.view[] =
- モジュールを作成
データベースを作成 |
|
db-adapterを設定 |
Zendコマンド実行画面で下記コマンドを実行する
|
DB初期化 |
/script/data.mysql.sql
DOS のコマンドラインから以下を実行することで、DB初期を終わらせる % php scripts/load.mysql.php --withdata 「-e」オプションを使うとAPPLICATION_ENV定数に使用する値を指定できます。 |
db-tableを作成 |
% zf create db-table Guestbook guestbook
|
modelを作成 |
% zf create model GuestbookMapper
% zf create model Guestbook
|
controllerを作成 |
% zf create controller Guestbook
コントローラにメソッドを使おうとしたら、XXXActionの命名規約を守ること。 そしてapplication/views/scripts/モジュール名/メソッド名.phtmlを追加しないとならない。ただメソッドにforwordまたはredirectをするのなら、追加必要がない $this->_redirect('/guestbook/index?msg=' . $result);//追加必要がない$this->view->entries = $guestbook->fetchAll();//追加するべきだ。$this->viewはメソッド名.htmlと紐づけているデフォルト仕組みがあるのかもしれない。 |
- htaccessファイルの作成
Zend Frameworkで推奨されている.htaccessファイルの設定は拡張子がjs、ico、gif、jpg、png、css以外のファイルに対するアクセスをindex.phpへのアクセスへrewriteする設定になる。 これをZend Frameworkを使用するアプリケーションのルートディレクトリに配置して、PHPスクリプトへのアクセスをindex.phpで一括制御します。
RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
デフォルト設定は以下となり、js、ico、gif、jpg、png、cssなどファイルをpublicフォルダにおかないと、index.phpに制御されため、アクセスすることができない
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
- 関連資料:
Learning Zend Framework
jesさんのZEND FRAMEWORK QUICKSTART WITH MYSQL