需要有关我的PHP MVC框架正确流程的指导

man*_*pig 3 php model-view-controller frameworks

我正在创建一个PHP Web应用程序框架(MVC)。我宁愿不使用外部库或组件(因为我现在希望这纯粹是我的工作)

您能否告诉我一些有关我的每个文件应负责做什么的提示/指南?例如,框架脚本应处理什么,框架中使用的应用程序脚本应处理什么?

我一直在更改编写不同代码的位置(就像我自己想的那样……“应该由框架还是由每个应用程序来处理?”),这使我在编写过程中更加困惑。

我已经读了一堆(甚至20 ... 50 ... 100!)有关MVC,框架等的教程,但是没有太多的文章可以解释框架的理想“流程”。

目前,我有这样的工作:

  • 主要索引(index.php)
    • 定义常量(DS = DIRECTORY_SEPARATOR,PS = PATH_SEPARATOR等)
    • 集合包括路径(ROOT。'/ classes',ROOT。'/ includes等)
    • 加载框架配置文件(config.php)
    • 设置框架类自动加载器(__autoloader())
    • 设置某种Core对象(Core :: init($ config)?)
    • 加载应用程序index.php文件(app / index.php)
  • 配置(config.php)
    • 定义配置数组($ config)
    • 配置配置数组($ config ['debug'] = 0 ...或类似的东西..)
  • 应用程序索引(app / index.php)
    • 定义常量(APP_CONTROLLERS,APP_MODELS等)
    • 集包含路径(APP_PATH。'/ classes',APP_PATH。'/ includes等)
    • 加载应用程序配置文件(app / config.php)
  • 应用程序配置(app / config.php)
    • 定义配置数组($ app_config)
    • 配置配置数组(与其他配置相同,但用于App)

现在...我似乎正朝着正确的方向前进?框架的Main Index脚本而不是App Index应该做什么?Main索引是否应该只是启动一些东西并将大部分工作传递给App索引,App索引将设置路由器等以将URL路由到控制器等?还是框架应该创建路由器并启动控制器,而App只需设置控制器路径和一些规则等?

我了解Controller的功能以及模型/视图等(稍后我会穿过那些桥梁),但是现在我只想让基本的东西从正确的地方正确地流动,所以以后的东西会起作用好。

此刻,我的头快要爆炸了!哈哈

这甚至可能是一个非常愚蠢的问题,但是我只是想在我完全摆脱一切之前,需要一些直接的指导来帮助我清除所有问题!任何意见,将不胜感激。

谢谢=)

小智 5

当人们只是将您指向现有框架并指出您不应该重新发明轮子时,我真的很不喜欢。

像其他模式一样,MVC只是指导原则,没有固定的方法来获得结果。这是一种理论,可以通过多种方式实施以达到所需的结果。

的确,车轮的类比是有缺陷的,就像对汽车制造商说不要制造新车,因为汽车已经存在。

有些车轮是用木头制成的,而另一些是金属制成的,没有一种流行的PHP MVC框架遵循相同的结构或功能,它们也有很大不同。

您可以有上千个不同的框架,或多或少都遵循MVC模式,但不是两个是完全相同的。

一个框架过于复杂,需要永远了解它的工作原理,另一个框架会在您身上强制执行非常具体的工作流程,从而几乎没有自由的余地,而另一个框架过于简单,甚至缺乏基本功能。

有一个很好的理由来开发自己的框架,即框架。您的项目框架。没有人比您自己(希望)更好地了解您的代码,如果您构建了一个使您轻松有效地开发项目的漂亮框架,则一定要重新发明轮子!

John Squibb有一个很好的教程,介绍了一种构建简单MVC框架的方法。http://johnsquibb.com/tutorials/mvc-framework-in-1-hour-part-one

哦,是的,另一件事是,不要被吸引到通用的新手构造中,在该构造中,必须将单个入口点强制化,从而迫使您依赖Apache mod_rewrite或类似方法。MVC可以使用单个入口点或多个入口点构建。

除了构建框架之外,您还可以开发一个不错的库,您可以在所有项目中重用该库。