在不使用框架的情况下,干净地构建PHP站点的最佳方法是什么?
我在一个中型PHP网站上工作。我正在为我的对象编写“提供者”类。基本上,如果我有一个“user”对象,我就有一个“user provider”类,它可以请求/保存数据库中的用户,接受并返回用户对象。我只是在需要的文件中包含提供者和依赖对象在不使用框架的情况下,干净地构建PHP站点的最佳方法是什么?,php,design-patterns,Php,Design Patterns,我在一个中型PHP网站上工作。我正在为我的对象编写“提供者”类。基本上,如果我有一个“user”对象,我就有一个“user provider”类,它可以请求/保存数据库中的用户,接受并返回用户对象。我只是在需要的文件中包含提供者和依赖对象 我想知道这是否是一种在没有框架的情况下构建PHP站点的干净方法,因此我很想听听其他人的意见,不使用框架构建PHP站点的最佳方法是什么。这是一个很好的起点: 但基本上你最终得到的是。。。是一个框架:)首先,使用框架没有错,只要它不会给小型应用程序带来不必要的复杂
我想知道这是否是一种在没有框架的情况下构建PHP站点的干净方法,因此我很想听听其他人的意见,不使用框架构建PHP站点的最佳方法是什么。这是一个很好的起点:
但基本上你最终得到的是。。。是一个框架:)首先,使用框架没有错,只要它不会给小型应用程序带来不必要的复杂性和/或性能损失。在PHP中,Symfony和Laravel框架在这方面非常好 话虽如此,如果你真的不想要一个“外来”的框架,你最终还是会编写自己的框架。因此,最好对此进行规划。只需使用您最喜欢的框架,按照使用该框架时的方式构建您的项目。然后,自己编写粘合代码(即您自己的迷你框架)。如果您注意到您的项目比预期的要大,那么切换到“真正的”框架不会有太多困难
然而,如果您真的不想使用任何类似于框架的东西,因为您的应用程序非常小,只需将所有内容放在一个文件中即可。在该文件中,您当然应该在表示、CSS、应用程序逻辑等之间保持干净的分离。!但是在一个最小的应用程序中,不需要陷入多个文件的麻烦。模型视图控制器也很好 以下建议在许多经验丰富的PHP开发人员中形成共识:
myproject/
应用程序/
configs/
控制器/
视图/
models/
library/
PEAR/
Zend/
← 文档根public/
index.php
library/
editarea/
jquery/
OpenLayers/
media/
style/
default.css
- 文档根目录是一个名为
的直接子文件夹,不仅在PHP中是一个公认的标准,在Python、Ruby等语言中也是如此public/
- 文件夹名称与技术无关。(
而不是library/
,js/
而不是style/
)css/
- 这个结构还需要一些讨论。例如,如果目录的名称都是单数或复数,而不是像
和library
这样的混合,那就更好了。此外,有人可能会认为MVC并不总是可取的,或者不应该这样命名,因此更通用的文件夹名称,如styles
,而不是templates/
,会是更好的选择views/
dirname(\uuu FILE\uu)
,并且不要硬编码绝对路径。Boo用于使用全局变量(如果路径是超全局的,可以。但它看起来像是来自约定的,但不是)。。。为什么不使用常量(考虑到这些路径应该在运行时更改)?阅读Laravel对Laravel创建者的建议是很奇怪的,这就是它的起点。哇!
$_PATHS["base"] = dirname(dirname(__FILE__)) . "/";
$_PATHS["includes"] = $_PATHS["base"] . "includes/";
$_PATHS["templates"] = $_PATHS["base"] . "templates/";
$_PATHS["pear"] = $_PATHS["base"] . "pear/";
$_PATHS["logs"] = $_PATHS["base"] . "logs/";