2

Zend Framworkのログメカニズムを分離されたコンポーネントとして使用したいのですが、ZFに必要なのはログだけです。どうすればよいですか?

4

2 に答える 2

6

これらの2ページによると

Zend_Logが必要Zend_Exceptionであり、次の

  • DOM
  • libxml
  • 反射

これが意味するのは、フレームワーク自体から次のものだけが本当に必要なということです

library/Zend/Exception.php
library/Zend/Log.php
library/Zend/Log <- the directory

これで、ロガーをスタンドアロンコンポーネントとして使用できるようになります。上記のリストのフォルダーをインクルードパスに追加するだけlibraryです(Zend Frameworkコンポーネントはこれに依存しています)

set_include_path(implode(PATH_SEPARATOR, array(
    '/path/to/library',
    get_include_path()
)));

require_once 'Zend/Log/Writer/Stream.php';
require_once 'Zend/Log.php';

$writer = new Zend_Log_Writer_Stream('/path/to/logfile');
$log = new Zend_Log($writer);
$log->log('Some message', 1);
于 2012-02-03T04:53:15.657 に答える
1

Zend Frameworkの個々のコンポーネントを使用する場合は常にzend_setup.php、次の3行のコードを含むという小さなファイルを含めるだけです。

set_include_path( '/Users/me/workspace/proj_name/library' . PATH_SEPARATOR . get_include_path());
require_once( '/Users/me/workspace/proj_name/library/Zend/Loader/Autoloader.php' );
Zend_Loader_Autoloader::getInstance();

これはおそらく明示的なrequire_once()ステートメントを発行するほど効率的ではありませんが、私はそれが提供する便利さを気に入っています。たとえば、とを利用Zend_Log_Writer_Firebug()したいとすぐに決めることができますZend_Log_Writer_Mail()require_once()オートローダーを使用すると、これらの追加のステートメントをすべて記述する必要がなくなります。

于 2012-02-03T10:48:57.453 に答える