从Zend框架2开始,找不到类错误

LJT*_*LJT 5 php apache zend-framework2

我正在尝试使用一个简单的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
Run Code Online (Sandbox Code Playgroud)

我的网站代码是一个调用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);
?>
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

我的Zend框架位于/ var/www/html/site/library/Zend,我还将/ var/www/html/site/library添加到php.ini include中.

LJT*_*LJT 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);


?>
Run Code Online (Sandbox Code Playgroud)