ZF2があなたにそれをするように促しているので、私は自分のコードを作成しました。そして今、それは実際には名前空間を使用することの全体的なポイント/利点に反していると思い始めています。
すべてを変えたいのですが、ZFが自分たちでやらなかったからといって、自分のやり方でやるのが怖いので、重要なことを1つ見逃しているような気がします。
私のフォルダ/ファイル構造は次のようなものです:
- 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がたくさんのモジュールを持つモジュラーベースのプロジェクトを推進しているからだと思います。しかし、確かに、必要に応じて、そのモジュールの名前空間をスローすることができますか?現在使用されているより修飾された名前でそれを行う必要があります。