采取Fabien Potencier的example:
class User
{
function __construct($storage)
{
$this->storage = $storage;
}
// ...
}
假设Storage类是在不同的php文件(例如storage.php)中定义的,我是否需要将它包含在通过require_once完成注入的文件中?
谢谢,
JDelage
答案 0 :(得分:1)
你应该将所有require
和include
放在文件的头部 - 这当然是一种风格的东西,但是有一件事它可以让你通过瞥一眼来源看到,您的PHP文件需要哪些其他文件。
有两种情况:
user.php
和storage.php
(app.php
说)user.php
并且不想担心需要storage.php
。对于#1 - 你不需要担心需求,但是在PHP的头部使用require_once
没有明显的缺点,即使大多数时候它已经被要求了。 / p>
对于#2 - 您需要在标题处使用require_once
,因为如果没有user.php
则无法使用storage.php
,而最终页面只知道它需要user.php
。
简答:使用require_once
包含代码的所有依赖项(以便其他代码可以轻松使用)
注意:您应该只包含代码的直接依赖项。也就是说:如果您group.php
使用user.php
,则应该require_once 'user.php'
,但不必担心storage.php
,因为它不是直接使用的,user.php
隐含地包含它(据说 - 如果你愿意,没有明显的性能劣势)