2012-02-05 65 views
4

将文件包含在PHP类文件中最明智的地方在哪里?例如,如果其中一个方法需要外部类,我应该将该文件包含在该方法中使用的位置,还是应该在该类之前完成?或者在构造函数中?要么?你有什么建议?优点?缺点?或者这只是一个真正的品味问题?将包含语句放在PHP类文件中的位置

include_once 'bar.class.php'; 
class Foo 
{ 
    public static function DoIt() 
    { 
     new Bar(); 
    } 
} 

VS

class Foo 
{ 
    public static function DoIt() 
    { 
     include_once 'bar.class.php'; 
     new Bar(); 
    } 
} 

回答

4

我更喜欢在上面,如在和C/Java/C##import/import/using相同的约定,因为它立刻让你知道什么其他类类取决于上。

您可能还想查看require_once()而不是include_once(),因为它将在发生错误时暂停而不是发出警告,而不是在包含的文件包含错误时发出警告。但是,这当然取决于你所包含的文件类型以及你认为它的重要程度。

+0

喜欢与其他语言的比较。想想我也会坚持这一点。可能转由包括要求一些地方为好,因为它确实是比较正确的,当事情其实是至关重要的。 – Svish 2012-02-05 16:17:39

0

如果您确定需要包含该文件,请在顶部执行此操作。如果您需要按需提供文件,您可能需要查看spl_autoload_register()以减轻痛苦。

+0

确实。自动加载已经完成了我的主要类,这是更多的第三方库等。 – Svish 2012-02-05 16:15:25

1

我会说这取决于。因此,如果有一个相当大的代码库,并且您希望每次页面请求降到最低时都将代码加载到内存中,那么我会建议在需要时只包含其他php文件。

但是,如果该脚本始终需要,请将其包含在脚本的顶部。

这真的归结为情况和要求。

希望有所帮助。

0

将外部文件包含在页面顶部总是好的。稍后定位会很容易。如果包含的文件非常大,则将其包含在需要的地方。另请参阅require_onceinclude_once的文档。

还有简单的requireinclude。知道它们之间的区别以及使用何时的区别。

1

这取决于您使用的架构。包括一开始的文件是整齐的,但如果该文件打印的文本,那么你将无法操纵头等等

当您使用MVC模式的控制器应包括的类文件。