我是新手laravel開發人員,我想了解名稱間距如何在這裏工作。所以我正在學習Repository模式,並決定繼續在我的項目中實施它。在laravel 5中名稱間距如何使用PSR4工作?
因此,我創建了一個名爲archive
目錄,然後將其用在PSR4我composer.json文件像這樣裝:
"Archive\\": "archive/"
現在我在archive
文件夾中創建一個文件夾Repositories
,我將創建所有庫。而我在其中的命名空間文件就像這樣:
namespace Archive\Repositories;
這似乎工作正常。然後,我在Repositories
文件夾內創建了一個Contracts
文件夾,該文件夾將包含我將要使用的實現的所有接口,例如UserRepositoryInterface
。我在Contracts文件夾中的命名空間文件是這樣的:
namespace Archive\Repositories\Contracts;
哪個工作正常。
現在我的疑問在於我試圖在Repositories
文件夾中做出的具體實現。例如,有一個DbUserRepository
在合同文件夾中實現UserRepositoryInterface
。
現在,因爲我是新來這個我試過:
class DbUserRepository implements Contacts\UserRepositoryInterface
,它工作得很好,但後來我想,我應該use
它放在文件的頂部,像這樣:
use Contacts\UserRepositoryInterface;
而且我可能只是這樣做:
class DbUserRepository implements UserRepositoryInterface
它應該根據我的工作不錯,但它給了我一個不類FO但是當我做這樣的事情時:
use Archive\Repositories\Contacts\UserRepositoryInterface;
它現在工作正常。但這是我模糊的地方。在DbUserRepository
裏面,我已經在Archive\Repositories
的nampspace裏了,爲什麼不直接從那裏查看合同文件夾呢?爲什麼我需要指定完整以此爲use Archive\Repositories\Contacts\UserRepositoryInterface;
爲什麼我不能只是說:
use Contacts\UserRepositoryInterface;
我希望我的問題是不是太混亂。雖然我的代碼現在正在工作,但我很模糊命名空間如何工作。