
Zendを始めたばかりのものです。
サーバ:XPで自営 Apache2,php5
Zendをダウンロードし、Cドライブのルートに「ZendFramework-1.9.0」
という名前で配置しました。
php.iniのinclude_pathの設定も変更し、
htdocsの直下にindex.phpを作成し
<?php
require_once 'Zend/Version.php'; //ライブラリの読み込み
echo Zend_Version::VERSION; //現在のZend Frameworkのバージョンを表示
とすると、正常にバージョンが表示されます。
zendappsというフォルダーをhtdocsの中に作成し、index.phpに
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('../zendapps/controllers');
とするとエラーになります。(エラーは長いので後述)
'../zendapps/controllers'の部分かとも思いますが、
お分かりになる方、教えていただけると幸いです。
エラーの内容
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\ZendFramework-1.9.0\library\Zend\Controller\Dispatcher\Standard.php:242 Stack trace: #0 C:\ZendFramework-1.9.0\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\ZendFramework-1.9.0\library\Zend\Controller\Front.php(212): Zend_Controller_Front->dispatch() #2 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\zendapps\index.php(3): Zend_Controller_Front::run('../zendapps/con...') #3 {main} thrown in C:\ZendFramework-1.9.0\library\Zend\Controller\Dispatcher\Standard.php on line 242
No.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
No.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フレームワーク完全マスター」です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
フォームで戻った際に入力済み...
-
セッション関数を使わずにファ...
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
アンドロイドスマホでのphp ech...
-
Postgresの特定のカラムからス...
-
ここで言う空文字の意味とは?
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルの遷移がうまく行われ...
-
Webアプリにおけるエントリポイ...
-
index.phpに入るには、どうすれ...
-
CakePHPの表示エラーについて
-
PHPファイルが、そのまま見えて...
-
PHPでグローバルナビゲーション...
-
PHP Linux から Windowsへの移行
-
特定のページを外部から一定間...
-
Zend Frameworkでoracle接続
-
pearライブラリのインクルード...
-
携帯動画変換君のPSP向けの設定...
-
zendのcontrollersについて
-
PHPとMySQL
-
.htaccessファイルの修正がこれ...
-
require_onceで読み込む場合、...
-
cakePHP導入 XREA+について
-
include時の頭の良いパス指定に...
-
ApacheのRewrite
-
XAMPPインストール後「セキュリ...
-
__FILE__をHTMLタグ内で使う
おすすめ情報