0

我正在使用 Zend Framework 2 中的 Zend/Http 为 Jambase 编写 API。这是我的文件夹结构。

Jambase
|---composer.json
|---composer.phar
|---src
|----Jambase
|------|Service
|---------|Jambase.php
|---vendor
|-----|bin
|-----|composer
|-----|zendframework
|--------|zendframework
|-----------|library
|--------------|Zend
|----------------|Http
|--------------
|----vendor

所以基本上我的 api sdk 类在服务文件夹下的 Jambase.php 中。因为我有这样的标题,命名空间 Jambase\Service;

use Zend\Authentication\Adapter\AdapterInterface,
    Zend\Authentication\Result,
    Zend\Http\Client,
    Zend\Json\Json;

当运行应用程序时,我收到一条错误消息,

Fatal error: Class 'Zend\Http\Client' not found in /usr/local/zend/apache2/htdocs/jambaseclient-php/src/Jambase/Service/Jambase.php

我知道这是命名空间或自动加载问题,有人可以帮忙吗?它适用于绝对路径。不是相对路径。

4

1 回答 1

0

你有一个可以通过作曲家加载的结构,因为我composer.json在你的项目中看到了一个文件。确实存在自动加载问题,您可以通过 Composer 解决此问题。

关键是,php 必须知道你有Zend\Http\Client可用的类,但你必须告诉 php 它在/usr/local/zend/apache2/htdocs/jambaseclient-php/vendor/zendframework/zendframework\library\Zend\Http\Client.php.

目录中vendor有一个名为autoload.php. 在您的应用程序中,当您启动它时,您必须加载此文件。然后您可以像现在一样加载所有 Zend Framework 2 代码。

为了进一步帮助您,请解释您对“运行应用程序时”的确切操作,以便清楚地使用您是否以及如何解决自动加载问题。

于 2013-06-14T09:07:19.740 回答