使用Zend Framework 2中的StandardAutoloader在课外加载

时间:2013-12-28 12:48:34

标签: php zend-framework

在我的ZendSkeletonApplication中,我有一个名为“Tasks”的模块。这是我的主树

Tasks
--config
--src
-----Tasks
-------Controler
---------Scraper.php
-------Vendor
----------Fetch.php
-- view
module.php

刮板控制器

<?php

namespace Tasks\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class ScraperController extends AbstractActionController
{

    public function indexAction()
    {
        echo \Tasks\Vendor\Fetch();
        return new ViewModel();
    }


}

和我的module.php

<?php
namespace Tasks;

class Module
{
    public function getConfig()
    {
        return include __DIR__ . '/config/module.config.php';
    }

    public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__   => __DIR__ . '/src/' . __NAMESPACE__,
                    'Tasks\Vendor'  => __DIR__ . '/src/Tasks/Vendor',
                ),
            ),
        );
    }
}

当我尝试加载\ Tasks \ Vendor \ Fetch()时,这个模块让我犯了错误。我做错了什么?

  

致命错误:在第13行的/var/www/similarweb.zend/module/Tasks/src/Tasks/Controller/ScraperController.php中调用未定义的函数Tasks \ Vendor \ Fetch()

1 个答案:

答案 0 :(得分:1)

我不确定你期待在这里发生什么。如果Tasks\Vendor\Fetch是一个类,您需要创建一个实例,然后调用其中一个方法:

$fetch = new \Tasks\Vendor\Fetch();
$fetch->something();

或者如果它是静态方法,请静态调用它:

\Tasks\Vendor\Fetch::something();