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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- 据え置き型ゲーム機 Xbox Series X を買ったら、Xbox One の Xbox ワイヤレス コントローラー… 3 2023/04/28 10:50
- 据え置き型ゲーム機 【 コンソールゲーム 】“Elite” という名称の由来は? 1 2023/04/30 17:53
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- デスクトップパソコン 古ーいパソコン/Atheros AR2181 PCIe Gigabit LAN コントローラー 7 2022/09/07 12:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードプレスサイト PHP8.0.25...
-
csvファイルについて教えて下さ...
-
phpでcookieがうまく保存されない
-
フォームで戻った際に入力済み...
-
PHPで画像の渡しが上手く行きま...
-
これの対応OSを教えて下さい。p...
-
reuterの記事をbeautiful.soup....
-
PHPSpreadsheetを使って関数を...
-
PHPSpreadsheetによる書き出し...
-
$_SESSIONについて教えて下さい。
-
$_SESSIONについて教えて下さい。
-
グローバルスコープはありますか?
-
a href リンクタグでだけで 送...
-
ここで言う「アロー演算子」の...
-
phpでPEAR::DBを使っているので...
-
php 入力画面から確認表示画面...
-
ワードプレスプラグイン MW WP ...
-
PostgreSQLからCSV形式でエクス...
-
PHPでCSVを出力するさいに、ル...
-
PHP MySql 画像を取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
index.phpに入るには、どうすれ...
-
.htaccessファイルの修正がこれ...
-
PHPでグローバルナビゲーション...
-
CakePHPの表示エラーについて
-
深い階層のフォルダの作成や削...
-
特定のディレクトリだけ、phpを...
-
PHP Linux から Windowsへの移行
-
include_pathに関する質問
-
zendのcontrollersについて
-
SSLに設置したらディレクトリパ...
-
すべてのページのurlをindex.ph...
-
$_GET 取得できない
-
さくらにsmartyをセットアップする
-
[PHP] 任意のDNSでIPアドレスを...
-
require_onceで読み込む場合、...
-
相対パスでrequireはできないの...
-
ログインした状態の外部phpファ...
-
Zend Frameworkの.htaccessが分...
-
フリーペーパーR25が置いて...
-
ゼンド フレイムワークがどうや...
おすすめ情報