自定义PHP框架反馈

时间:2010-05-21 20:35:59

标签: php frameworks

我已经学习了大约一年半的OOP编程,并且已经开发了一个相当标准的框架,我通常会遵循这个框架。我喜欢一些关于如何改进某些功能的反馈或意见,或者是否有一些我忽视的事情。

查看模式

1)基本上一切都从Index.php页面开始。我做的第一件事是需要我的“packages.php”文件,它基本上是一个配置文件,它导入我将要使用的所有类和函数列表。

2)我的index.php文件和我的类之间没有直接的通信,我所做的就是使用我的viewfunctions.php文件“漂亮起来”,这个文件实际上只是类的一个管道,所以在我的html我可以写<?php get_title('page'); ?>而不是<?php echo $pageClass->get_title('page'); ?>另外,我可以运行一些小的布尔值,而不是在视图函数脚本中可以更好地定制类的输出。

3)通过数据库引入的任何信息都是从它与数据库类直接通信的相应类中启动的,这是允许直接与数据库通信的唯一类(在我运行所有数据的意义上允许)查询自定义类代码)。

INPUT MODE

1)任何用户输入都发送到我的userFunctions.php。

2)然后我的安全类被实例化,我发送任何已发布的用户输入以进行验证和验证。

3)如果输入通过我的安全检查,我会将其传递给我的DB类以输入我的数据库。

php general model http://img139.imageshack.us/img139/3319/phpmodel.gif

反馈

我想知道一般结构是否有任何明显的陷阱,或者我可以改进的方法。

提前感谢您的意见。我知道这个问题确实没有“正确”的答案,但我想,为了获得关于构建框架的一些强有力的建议,可能需要一些投票。

-J

4 个答案:

答案 0 :(得分:3)

我建议你做的一件事就是将你的功能分成几类。我理解你在避免实例化方面所提出的观点,但考虑到这一点:任何框架都必须开始积累大量函数。

而不是做

<?php get_title('page'); ?>

您可以更好地创建一个Page类,其中包含您在静态调用的所有类中的所有函数。然后,您的代码变为

<?php Page::GetTitle('page'); ?>

更具描述性的命名约定,并且在尝试避免命名冲突时将变得很重要(您只需避免名称冲突,例如50个类,而不是两千个函数)。

我将研究模型 - 视图 - 控制器设计方法(正如ircmaxell在他的文章中暗示的那样)。很多非常强大且编写得很好的框架都适用这个原则,而不仅仅是PHP框架。我的建议 - 研究Yii应该如何控制你的应用程序 - 非常灵活,创建者充分利用静态变量来控制类实例化。

祝你的框架好运!

答案 1 :(得分:2)

嗯,我能看到的唯一问题(没有看到代码)是SQL将无处不在。我建议在DB连接类前面创建一个“模型”层。这样,你所有的sql都在一个地方(分成多个模型等)。它使维护变得更容易(如果您想要向表中添加列,优化查询等)...

否则,它看起来是一个好的开始!

答案 2 :(得分:2)

好的演讲。我肯定会在其他流行的框架中深入了解一些洞察力。

乍一看,我建议您查看是否可以找到一种方法来仅加载每个请求所需的类。如果类库变大,可能无法为每个请求加载它们。

答案 3 :(得分:1)

您使用的是自动装弹机吗?看来你会使用很多要求......也许我只是误解了。我认为你编写自己的框架很棒。我不认为它是“重新发明轮子”,因为你正在编写它以完成你想要完成的任务,并且可以控制项目的整体重量以及,因为你的大多数标准仍然是OOP的新标准从这次经历中我学到了很多东西。创建自己的框架,尝试改进其他人的代码并学习别人如何做事以及为什么这是一个了不起的学习经历,在我看来,这将极大地提高你的编程技巧和理解力。