繁体   English   中英

zend无法识别注册的名称空间

[英]zend won't recognize registered namespace

我正在使用Zend Standard自动装带器。 它正在注册一个名称空间,但不会注册另一个名称空间。 这是我的代码:

$zflib = $_SERVER['SERVER_ROOT'].'/classes/Zend_Framework_2/2.3.2/library';
require_once($zflib.'/Zend/Loader/StandardAutoloader.php');
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
// Library
$loader->registerNamespace('VProd',$_SERVER['SERVER_ROOT'].'/classes/VProd');
// Dealer Library
$loader->registerNamespace('Dealers', $_SERVER['SERVER_ROOT'].'/dealers/classes');
$loader->setFallbackAutoloader(true);
$loader->register();

然后,我在Dealers / classes目录中进行了如下基本设置:

模型.php

<?php

namespace Dealers\Models;

class Model {
    /**
     * The table this model uses
     *
     * @var string
     */
    protected $table;
}

鸡舍模型:

<?php

namespace Dealers\Models\Coop;

use Dealers\Models\Model;

class Coop extends Model {
    /**
     * The table this model uses
     *
     * @var string
     */
    protected $table = 'coop';

    public static function testing()
    {
        return 'testing';
    }
}

在我的应用程序中,我将在其他任何内容之前包含该配置文件。

coop.php

<?php
require_once($_SERVER['SERVER_ROOT'].'/security/config.php');

use Dealers\Model\Coop;
echo CoopBalance::testing();

我收到此错误消息:

致命错误:在第7行的\\ www \\ dealers \\ classes \\ coop \\ Coop.php中找不到类'Dealers \\ Models \\ Model'

这行在我的Coop模型中的位置:

class Coop extends Model

谢谢你的帮助!

ZF2标准自动装带器是符合PSR-0的自动装带器。 因此,您的班级应位于dealers/classes/Dealers/Models/Model.phpdealers/classes/Dealers/Models/Coop/Coop.php (区分大小写)上,以正确正确地自动加载(名称空间的每个“部分”应为夹)。

另外,如果可能的话,我建议您使用Composer安装ZF2(或您使用的任何组件)。 然后,您根本不需要自己配置自动加载器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM