2

Zend クラスを必要とする php スクリプトがあります。ブラウザで実行できますが、コマンド プロンプトでコマンド ラインでスクリプトを実行するとエラーが発生します。

require_once 'Zend/Loader.php'; // It can work in a browser but failed by command lines

私も試しました:

require_once 'C:\wamp\www\zf_project\library\Zend\Loader.php';

ini_set('include_path', 
ini_get('include_path') . 
PATH_SEPARATOR . 
dirname(__FILE__). DIRECTORY_SEPARATOR. 'library');

しかし、失敗しました。

次に、クラスをロードする必要があります。

Zend_Loader::loadClass('Zend_Rest_Client');

Zend クラスはどのように使用できますか?

前もって感謝します!

4

2 に答える 2

2

アプリケーション全体をブートストラップせずに、オートローディングを介して Zend クラスを使用することだけが必要な場合は、ZF1 で行う必要があるのは次のとおりです (これを使用しているようです)。

<?php
// if ZF is not in your include path to begin with
set_include_path(implode(PATH_SEPARATOR, array('/path/to/zend/library', get_include_path())));
include 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance(); // registers autoloader

// now can access Zend classes without having to include
$client = new Zend_Http_Client(...);

また、クラスをロードするために呼び出す必要がないことに注意してくださいZend_Loader::loadClass。これは、通常のコードでクラス名を使用する場合、たとえば上で行ったようにコンストラクターを呼び出すことにより、オートローダーによって自動的に行われます。

于 2013-11-26T22:32:40.617 に答える
0

Web ブラウザーから実行すると、インクルード パスが public/index.php に設定され、アプリケーションがブートストラップされます。同様に、public/index.php を (たとえば setup.php として) コピーして、コマンド ライン コードに含めることができます。また、必要なブートストラップ ビットをそのファイルにコピーします。

ZF2 には、MVC コマンド ライン スクリプトを作成できる「コンソール ルート」があることに注意してください。

これが私の setup.php です。"new Zend_Config" で構成をロードする方法に注目してください。コマンドライン(コンソール)から実行したいファイルでこのファイルを「要求」するだけです。

編集:「/relative/path/to/application/」にAPPLICATION_PATHを正しく設定する必要があります。

<?php

error_reporting(E_ALL & ~E_NOTICE | E_STRICT);
// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/relative/path/to/application/'));

// Define application environment
define('APPLICATION_ENV', 'development');
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

require_once 'Zend/Application.php';

$app = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH  . '/configs/application.ini');
$res = $app->getOption('resources');
$config = new Zend_Config($res);
于 2013-11-25T22:22:41.410 に答える