Zend Framework 2 - 如何根据"使用"来声明文件夹路径。和"名称空间"

时间:2015-03-17 06:35:41

标签: zend-framework2

我在名为Listcontroller的控制器文件中创建适配器对象时遇到问题。我的代码是

namespace Blog\Controller;
use Blog\Service\PostServiceInterface;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Db\Sql\Sql;
use Zend\Db\Adapter\Adapter;

class ListController extends AbstractActionController
{
    /**
    * @var \Blog\Service\PostServiceInterface
    */
    protected $postService;

    public function __construct(PostServiceInterface $postService)
    {
        $this->postService = $postService;
    }
    public function indexAction()
    {
        $adapter = new Zend\Db\Adapter\Adapter($configArray);
        print_r($adapter);
        //code ....
    }
}

这里是在Blog \ Controller中找到Zend \ Db \ Adapter \ Adapter。 错误是 - >致命错误:Class' Blog \ Controller \ Zend \ Db \ Adapter \ Adapter'未找到。任何人都可以告诉我,我怎样才能从上面的路径移回两个文件夹。这样我就可以获得适当的对象??

1 个答案:

答案 0 :(得分:2)

在实例化新的Adapter时,您不需要完全限定的类名(FQCN),因为您通过use语句声明了该类路径:

use Zend\Db\Adapter\Adapter;

更改此块

public function indexAction()
{
    $adapter = new Zend\Db\Adapter\Adapter($configArray);
    print_r($adapter);
}

public function indexAction()
{
    $adapter = new Adapter($configArray);
    print_r($adapter);
}

它应该有用。

无论如何,new \Zend\Db\Adapter\Adapter($configArray)也有效(注意第一个反斜杠),但它比第一个例子更长,更难打字,可读性更低。

您可能还想阅读文档的namespace aliasing/importing部分。