我要开始做一个开源论坛,我有以下问题:
我应该在一个 php 页面中包含我需要在每个页面上一次的所有重要代码还是在每个页面上都有它。
即:连接到 MySQL 数据库的代码,另一个在执行查询之前保护输入的代码。
我个人更喜欢尽可能模块化地做事情。这样,当你需要在几年后改变某些东西时,你不必在 100 个地方改变它。
如果您使用的是过程代码,则应按上下文对函数进行分组。例如变成:database.php
, input.php
...
如果您使用类,您应该在一个文件中只有一个类并包含它。使用类,您还可以使用该spl_autoload_register
函数仅在需要时自动加载类。
如果你有你知道你总是需要的通用代码,你应该创建一个前端控制器并只在其中包含它。
您应该研究提供工具以实现更好的代码重用、引导等的各种框架。例如,Symfony、Zend Framework、Yii 等。
当然,您应该将重复块放在一个文件中,然后将其包含在内。通常它connect.php
, functions.php
, header.php
,menu.php
和footer.php
我相信编程语言中的命名法为您提供了如何构建代码的良好起点。
function -> does (only) 1 thing, and that good.
class -> collection of functions that belong together
至于“all in 1 page”部分..您应该只让解析器读取完成当前任务所需的代码。如果一个“页面”应该做不止一件事,你应该只require()
在需要时使用你需要的类/功能。
其实没关系,按照自己喜欢的方式去做。在其他答案中给出的原因和很好的例子中,如果您有很多文件,可能您不需要在每个请求上加载所有文件。
将所有内容放在一个文件中可确保在迁移或分发它时,您需要移动或复制单个文件。
如果我没记错的话,RedBeans 只是一个文件,而 Prado 有很多文件。