包含和需要的位置是否有编码标准?

时间:2018-06-25 15:29:50

标签: php laravel-blade

我最近更加注意编码标准,并尝试确保遵循最佳实践。使用Laravel刀片,我一直将诸如require(file)include(file)之类的语句放在代码的顶部。将其放在最主要的位置主要是我了解如何添加它们,因为包含或需要的大多数文件都是在我使用它们的整个代码中处理的。

但是,最近我遇到一种情况,当满足特定条件时,我只需要包含一个文件。因此,我将文件编码为

if(condition){
    include(file)
    ...
}

我想知道这是否仍将遵循通用编码标准,或者是否违反可接受的惯例?

1 个答案:

答案 0 :(得分:0)

在PHP拥有名称空间之前,然后无条件地将include / require放在脚本顶部,这意味着您将在测试初期看到任何名称空间冲突。这样做的缺点是,处理不必要的代码会产生性能开销。

我已经看到编写的代码根据出现的某些情况使用不同的包含文件。尽管这是实现前端控制器体系结构的唯一实用方法,但在前端控制器之外的其他任何地方,我都会说这是一个非常糟糕的主意。甚至前端控制器中,使用自动加载器可能也是一个更好的主意。

现在PHP已明确支持名称空间,用于显式包含所有代码的参数并没有那么重要-但您仍然需要确保名称空间不会意外冲突。

话虽如此,将所有include / require语句显式放置在文件顶部的副作用使管理依赖关系更加容易,范围内的计算值也更少-因此,程序员使用计算值的机会更少路径,并且更容易执行代码的安全审核,以查找可怕的内容,例如:

include($_GET['function'] . "/index.php");