5

シンプルな LAMP サイトから始めようとしていますが、ローカルの Apache インスタンスが Zend フレームワークを取得できないようです。私は Windows で XAMPP を使い始め、手動で Apache/PHP をインストールして Centos 6 VM を試しましたが、以下の両方で同じエラーが発生します。phpinfo() は、サイトの他の部分と同様に正常に動作します。

Fatal error: Class 'Zend\Log\Logger' not found in /var/www/html/site/public/test.php on line 20

私のウェブサイト コードは、次のように Zend フレームワーク ロガーを呼び出すかなり単純なテストです。

use Zend\Log\Logger;
use Zend\Log\Writer;
echo "<p>Hello world</p>";
echo $_POST["VIN"]; 
phpinfo();
$logger = new Zend\Log\Logger;
$writter = new Zend\Log\Writer\Stream('php://output');
$logger->addWriter($writer);
?>

私のApache Linux httpd.confは

<VirtualHost *:80>

DocumentRoot /var/www/html/site/public
<Directory /var/www/html/site/public>              
    DirectoryIndex test.php 
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

私の Zend フレームワークは /var/www/html/site/library/Zend にあり、php.ini インクルードにも /var/www/html/site/library を追加しました。

4

3 に答える 3

1

このエラーが発生した場合は、オートローダーを利用する必要があります。これは、Zend フレームワークの入門 wiki には記載されていません。

<?php 
use Zend\Loader\StandardAutoloader;
use Zend\Log\Logger;
use Zend\Log\Writer;
require_once dirname((__DIR__)).'\library\Zend\Loader\StandardAutoloader.php';
$loader = new StandardAutoloader(array('autoregister_zf' => true));
$loader->register();


echo "<p>Hello world</p>";
echo $_POST["VIN"]; 
phpinfo();

$logger = new Zend\Log\Logger;
$writer = new Zend\Log\Writer\Stream('php://output');
$logger->addWriter($writer);


?>
于 2013-01-21T11:25:18.193 に答える
0

オートローダーは確かに必要なものです。ライブラリへのパスが php.ini に含まれている場合は、次のコードを追加して Zend を意図したとおりに動作させることができます。

require_once 'Zend/Loader/StandardAutoloader.php';
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
$loader->register();
于 2014-05-21T06:45:53.313 に答える
0

/var/www/html/site/Library*include_path*, include notに間違ったパスが含まれていると思います/var/www/html/site/Library/Zend

チェック: https://github.com/zendframework/zf2/blob/master/INSTALL.md

または、php.ini 構成または phpinfo() 応答をここに貼り付けます。

于 2013-01-21T11:04:30.200 に答える