[英]In PHP Dependency Injection, do I need to “require_once” the php file where the dependency is defined?
以Fabien Potencier 為例 :
class User
{
function __construct($storage)
{
$this->storage = $storage;
}
// ...
}
假設Storage類是在其他php文件中定義的(例如,storage.php),是否需要在通過require_once進行注入的文件中包含該類?
謝謝,
JDelage
您應該將所有require
並include
s放在文件的開頭,這當然是一種樣式,但是對於一件事,您可以通過瀏覽源代碼來了解PHP文件還需要其他哪些文件。
有兩種情況:
user.php
和storage.php
( app.php
說) user.php
而不必擔心記住需要storage.php
。 對於#1-您不必擔心需求,但是即使在大多數時間已經需要,在PHP開頭使用require_once
也沒有明顯的缺點。
對於#2-您需要在標頭中使用require_once
,因為如果沒有storage.php
則無法使用user.php
,並且最后一頁僅知道它需要user.php
。
簡短答案:使用require_once
包含代碼的所有依賴項(以使其易於被其他代碼使用)
注意:您只應包括代碼的直接依賴項。 那就是:如果您有使用user.php
group.php
,它應該是require_once 'user.php'
,但是不必擔心storage.php
因為它不是直接使用的,而user.php
隱式地包含了它(即表示-如果您願意的話,對性能沒有明顯的不利影響)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.