框架应该有什么?

时间:2013-12-29 18:52:32

标签: php frameworks

我正在寻找自己的PHP面向对象框架,但我不知道除了数据库控制还需要什么。

基本问题是,BASIC框架需要什么称为框架,框架需要的最基本的功能集是什么?

1 个答案:

答案 0 :(得分:1)

我之前从头开始构建了一个MVC框架,但决定不将其用于速度原因而支持phalconphp。我在Phalcon中找到的框架中所有我想要的东西,所以我停止开发自己的东西,因为它比我可以构建的任何东西都快,除非我把它写成PHP的C扩展。但我确实设法从头开始创建一个功能齐全的框架,这对我来说是一次学习经历。最后,您应该使用预先存在的框架。

基本的MVC框架由一个路由器和handle()方法组成,该方法根据数组中的一组已定义路由处理URL,以将URL拆分为段并将它们与控制器和操作进行匹配。在这个阶段,我建议调查RouteMap 0.9.1。只需在您自己的框架中为它创建一个包装器,即可使用您需要的功能。

路由之后,你需要一个带有一堆控制器的目录,每个控制器一个文件。例如indexController.php包含class IndexController等。每个操作都对应一个类的方法。还要确保为所有控制器定义一个基本控制器以进行扩展,以便它们可以继承常用的功能。

然后你有Models目录和Models来扩展你的数据库管理器和一个Views目录来扩展你的View Helpers。最后,您需要一个注册表,类似于Windows如何拥有整个操作系统所依赖的注册表“数据库”。然后配置数据,路由器,语言等可以存储在注册表中。一旦你对这些基本的东西进行了编码,你的框架就有它的基本要素。

尝试阅读其他MVC框架的结构,以了解功能如何运作。至于前端控制器,index.php,所有内容都通过它发送,我建议使用我随着时间的推移开发的.htaccess杰作:http://pastie.org/private/rzgjswnwfmeiuwgy2n7bya它是以直接请求索引的方式编写的。 php被视为所有其他不存在的文件,因此您可以给他们一个错误页面来隐藏您的index.php文件。然后从PHP发送路由器的句柄方法是$_SERVER['REDIRECT_RE_URL']