[PHP-users 35753] zend_applicationをコンソールで使う方法について教えてください

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[PHP-users 35753] zend_applicationをコンソールで使う方法について教えてください

"鈴木孝征 (Suzuki Takamasa)"
PHP-usersの皆様へ。鈴木孝征と申します。

Zend Framework 1.11をCentOS上で使っております。

zf.shにてアプリケーションを作成し、それをコンソールからも使いたいと思っていますがうまく動作させることができません。

やったこと

zf.sh create project test としてアプリケーションを作成。

application/configs/application.iniを以下のように作成しました。
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

resources.frontController.controllerDirectory = APPLICATION_PATH
"/controllers"
resources.frontController.params.displayExceptions = 0
--------------ここまで-----------------

application/controllers/TestController.phpを以下のように作成しました。
<?php
class TestController extends Zend_Controller_Action{
     public function testAction(){
         var_dump($this->getRequest());
     }
}
--------------ここまで-----------------

application/views/scripts/test/test.phtmlを以下のように作成しました。
This is a test page.
--------------ここまで-----------------

http://example.com/myapp/test/testにウェブブラウザーでアクセスすると以下の文字列が表示されました。
This is a test page. object(Zend_Controller_Request_Http)#17 (15) ...
(以下省略)
--------------ここまで-----------------

TestControllerのtestActionメソッドをコンソールからテストしたくてconsole.phpを以下の内容で作成しました。
<?php
define('APPLICATION_PATH', realpath(dirname(__FILE__) .
'/application'));
define('APPLICATION_ENV', 'production');
set_include_path(implode(PATH_SEPARATOR, array(
     realpath(APPLICATION_PATH . '/../library'),
     get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
     APPLICATION_ENV,
     APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap();
$bootstrap = $application->getBootstrap();
$front = $bootstrap->getResource('FrontController');
$front->setParam('bootstrap', $bootstrap);
$request = new Zend_Controller_Request_Simple('test', 'test');
$front->setRequest($request);
$response = $front->dispatch();
if ($front->returnResponse()) {
     return $response;
}
--------------ここまで-----------------

php -f
console.phpと実行するとapplication/views/scripts/error/error.phtmlの内容が出力されます。

TestControllerのtestActionメソッドをコンソールから実行できるようにするにはどうしたらよいでしょうか。

_______________________________________________
PHP-users mailing list  [hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3