讓我首先說我是Zend Framework的新手。我正在嘗試使用ZF2創建一個API,爲此,我正在嘗試設置一個允許對資源進行分組的結構。在幾乎所有的我所經歷的例子,我已經看到了人們使用標準的設置:如何獲得ZF2模塊中的多個子文件夾/命名空間
ModuleA
->src
->ModuleA
->Controller
->Entity
不過,我不是「襪子的抽屜」做法的忠實粉絲,喜歡的東西分類。這就是我試圖完成:
每個控制器和實體文件夾有它自己的控制器和實體類。在Module.php我加入了不同的命名空間到磁帶自動加載像這樣:
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
'User' => __DIR__ . '/src/User',
'Permission' => __DIR__ . '/src/Permission',
'Group' => __DIR__ . '/src/Group',
),
),
);
}
我安裝我的module.config.php像:
'controllers' => array(
'invokables' => array(
'Auth\Controller\User' => 'User\Controller\UserController',
'Auth\Controller\Permission' => 'Permission\Controller\PermissionController',
'Auth\Controller\Group' => 'Group\Controller\GroupController',
),
),
'router' => array(
'routes' => array(
'user' => array(
'type' => 'segment',
'options' => array(
'route' => '/user[/:id]',
'constraints' => array(
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Auth\Controller\User',
'action' => 'index',
),
),
),
而且我UserController的樣子:
<?php
namespace Auth\User\Controller;
use Zend\Mvc\Controller\AbstractRestfulController;
use User\Entity\UserTable;
use Zend\View\Model\JsonModel;
class UserController extends AbstractRestfulController
{
protected $_objectManager;
public function indexAction()
{
$users = $this->getObjectManager()->getRepository('\User\Entity\User')->findAll();
$JSONArray = [];
//Convert to JSON objects
foreach ($users as $entity) {
$JSONArray[] = $entity->getJsonData();
}
return new JsonModel(array('users' => $JSONArray));
}
我已經嘗試了很多不同的命名空間的情況下,但我一直在404找不到錯誤。我已經通過這個帖子了:
Multiple namespaces under same module in ZF2
告訴我,我在正確的軌道上,但我不知道爲什麼沒有找到我的道路。
啊,是的,那是我絕對錯過的。但這不是它不工作的原因。我已經回答了我自己的問題,如果任何人有相同的設置/問題。 – 2014-11-05 15:22:24