簡體   English   中英

在PHP依賴注入中,我是否需要“ require_once”定義依賴的php文件?

[英]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

您應該將所有requireinclude s放在文件的開頭,這當然是一種樣式,但是對於一件事,您可以通過瀏覽源代碼來了解PHP文件還需要其他哪些文件。

有兩種情況:

  1. 您只會使用其他文件中的user.phpstorage.phpapp.php說)
  2. 在某些情況下,您將使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM