带子目录的PSR-4命名空间

时间:2014-10-24 06:40:42

标签: laravel composer-php psr-4

我的Laravel应用程序和PSR-4自动加载有问题。我读到你可以拥有多个子目录'像这样的命名空间中的结构......

VENDORNAME \应用程序名\(子目录)\类名

基本上我有我的用户存储库......

Acme\Repositories\EloquentUserRepoistory
Acme\Repositories\UserRepositoryInterface
Acme\Repositories\Repository
Acme\Repositories\RepositoryServiceProvider

全部使用命名空间Acme\Repositories,但我希望拥有此目录结构...

Acme\Repositories\UserRepository\EloquentUserRepoistory
Acme\Repositories\UserRepository\UserRepositoryInterface
Acme\Repositories\Repository
Acme\Repositories\RepositoryServiceProvider

但是当我将用户repo和界面移动到文件夹UserRepository时,我找不到课程?

我确定我在这里找不到关于命名空间的简单方法吗?

修改

我想我要问的是如何让额外的目录UserRepository将不同的存储库与OrderRepositories分开?

1 个答案:

答案 0 :(得分:0)

如果您将UserRepositoryInterface移到Acme\Repositories\UserRepository\UserRepositoryInterface.php目录,则需要将UserRepositoryInterface放在正确的命名空间中:

<?php

namespace Acme\Repositories\UserRepository;

interface UserRepositoryInterface {

}

然后在其他要访问的文件中,您还需要使用这个新命名空间而不是旧命名空间