我已经创建了我的代码,因为 ZF2 推动你这样做,现在我开始认为它实际上违背了首先使用命名空间的全部意义/好处。
我想改变一切,但我害怕以自己的方式去做,因为 ZF 自己并没有这样做,所以我觉得我必须错过一件重要的事情。
我的文件夹/文件结构是这样的:
- Application
- Controller
IndexController.php
- Model
- Table
User.php
Building.php
- Mapper
User.php
Building.php
- Entity
User.php
Building.php
所以在我的控制器中,代码可能看起来像这样,正如 ZF2 建议你开始的那样:
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController,
Zend\View\Model\ViewModel;
use Application\Model\Entity\User as UserEntity,
Application\Model\Mapper\User as UserMapper,
Application\Model\Table\User as UserTable;
class IndexController extends AbstractActionController {
public function indexAction() {
$userEntity = new UserEntity;
$userMapper = new UserMapper;
$userTable = new UserTable;
就在那里,我只给出了一些项目,但是随着您的应用程序的增长,您最终会得到一个巨大的 use 语句,看起来应该更像下面这样:
namespace Application;
use Zend\Mvc\Controller\AbstractActionController,
Zend\View\Model\ViewModel;
use Model;
class IndexController extends AbstractActionController {
public function indexAction() {
$userEntity = new Entity\User;
$userMapper = new Mapper\User;
$userTable = new Table\User;
我猜这是因为 ZF2 正在推动基于模块化的项目,这些项目有很多模块。但是如果需要,我可以肯定地放入该模块的命名空间吗?我仍然需要使用当前使用的更多限定名称来执行此操作。