- ベストアンサー
zendのcontrollersについて
- Zend Frameworkを使用して、controllersの設定に関するエラーが発生しています
- Zend Frameworkをダウンロードし、正常にバージョンを表示できましたが、controllersのパス指定に誤りがあります
- controllersのパスを正しく設定する方法が分からないため、エラーが発生している
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
補足を見たところ、どうもZend Frameworkの基本的な使い方を理解していないように思う。ちょっと、全部説明するのは大変だ。根本的な部分の基本的な使い方がわかってないと、動作確認などはちょっと大変だと思う。 1.まず、回答したZendFrameworkのフォルダは、ただハードディスクに入れておくだけで、この中身は一切触れてはいけない、と考えたほうがいい。そして、php.iniのライブラリパスに、このフォルダのlibフォルダのパスを追加し、フレームワークを利用できるようにする。 2.アプリケーションの作成は、ZendFrameworkのフォルダではなく、サーバーの公開フォルダ(Apacheならhtdocs)内に作成をする。Webアプリのフォルダを作り、その中にapplicationを作り、更にその中にcontrollers,models,viewsを作る。viewsの中には、更にscriptsを作り、その中に更にモジュール名のフォルダを作り、その中に各ビューファイルを配置する。コントローラーとモデルはそれぞれのフォルダに直におく。 3.アプリのフォルダ内に.htaccessでサーバーのリダイレクト設定を用意し、更にindex.phpに「フロントコントローラー」というものを作成する。 4.作成するモジュール名を決定し、そのモジュールのビューとコントローラーを作る。モデルはデータベースを使わないならいらない。ここまでを完全に作ったところで、初めて実際にブラウザからアクセスして動作確認ができる。 それぞれのファイルやクラス名などは、すべて命名規則が決まっているので、それに従って作る必要がある。それぞれ全部細かく記述しようとすると、ちょっとこの解答欄ではたりない。最近の書籍はちょっとわからないが、CodeZineの連載を1から順に読んでいけば、ある程度理解できるんじゃないだろうか。 http://codezine.jp/article/corner/42
その他の回答 (1)
<?php require_once 'Zend/Controller/Front.php'; Zend_Controller_Front::run('../zendapps/controllers'); この部分は、一般的な階層構造とは違うが、MVC関係の配置がどうなっているんだろうか。通常は、application内にcontrollers/models/viewsのディレクトリが用意され、 <?php require_once 'Zend/Controller/Front.php'; Zend_Controller_Front::run( './application/controllers'); こんな具合になるはずだと思う。意図的にapplicationの階層を取り払っているんだろうか? そちらで作っているアプリのディレクトリ構成が見えないので、パスが正しいのかどうか判断ができない。 それと、controllersには、IndexController.phpは配置済みだろうか。またviews内には、index/index.phtmlは作成済みだろうか。コントローラーとビューは最低限ないと動作確認のしようがないと思う。既に作成済みなら、ファイル名とディレクトリの構成、およびクラス名などが正しく命名規則に沿って書かれているか再確認する。 また、アクセス先のアドレスはどのように指定しているだろうか。http://ドメイン/モジュール/アクション という形で指定することになるはずだが、このあたりは作成したモジュール・コントローラときちんとあわせてあるだろうか。そのへんを一通りチェックしてみる、ということになると思う。
お礼
早速お返事頂き、ありがとうございます。
補足
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\zendapps\index.php *このindex.phpが記述エラーを起こします。 ------- >この部分は、一般的な階層構造とは違うが、MVC関係の配置がどうなっているんだろうか。通常は、application内にcontrollers/models/viewsのディレクトリが用意され、 C:\ZendFramework-1.9.0--この下に \bin,\demos,\externals,\extras,\library,\testsのフォルダーがあります。 この、\libraryの下に\zend\Applicationがあります。 C:\ZendFramework-1.9.0\library\zend\Application *Cドライブの直下に、\ZendFramework-1.9.0(解凍したままのフォルダ名) は違和感があったのですが、本に「解凍したらそのままCドライブの直下に・・・」 の記述がありました。 C:\ZendFramework-1.9.0\library\Zend\Application\Module までは、ご指摘の通りですが、\Moduleの中にviewはありません。 ----- >それと、controllersには、IndexController.phpは配置済みだろうか。またviews内には、index/index.phtmlは作成済みだろうか。コントローラーとビューは最低限ないと動作確認のしようがないと思う。既に作成済みなら、ファイル名とディレクトリの構成、およびクラス名などが正しく命名>規則に沿って書かれているか再確認する。 どちらも配置されておりません。 *入門書の選択を間違えたようです。 Zendのインストールから書いてある入門書(丁寧に)、サイトなどご存知ならお教えください。 私が読んだのは「PHPフレームワーク完全マスター」です。
お礼
お教えいただいた1から4大変参考になりました。 urlを熟読&実習してみます。 重ね重ねありがとうございました。