PHP功能滥用?

时间:2009-06-30 19:38:56

标签: php mysql coding-style

我有一个大型系统,我已编码,我希望使代码(我敢说)更简单易读。不幸的是,在此之前,我还没有使用过很多功能。

我有许多不同的MySQL查询在我的代码中运行,我觉得如果我将各种显示放入函数并将它们存储在一个单独的文件中,它会使代码更容易维护(实际上,我知道它会)。

我唯一想知道的是,如果这是一种常见的做法,并且如果你认为从长远来看它会在性能和其他因素方面伤害我。以下是我目前使用的示例:

$result = mysql_query("SELECT * FROM table");

while($row = mysql_fetch_array($result)){

/* Display code will go here */

}

你可以想象这会变得冗长。我正在考虑创建一个将获取结果变量的函数,并完成此操作,然后返回结果,如下所示:

$result = mysql_query("SELECT * FROM table");

dsiplayinfo($result);

你认为这是正确的方法吗?

[编辑]

这些功能会有很大不同,因为每个功能都需要以不同的方式显示数据。每个方案中都需要显示数据库的不同字段。即使有这个因素,你觉得这种方法仍然很好吗? AKA模块化设计尚未完全实现,但易于维护。

4 个答案:

答案 0 :(得分:3)

你要记住的一件事是DRY的原则:不要重复自己。

如果您发现有多个代码块正在多次使用,或者非常相似且可以相同,那么它是移动到函数中的理想选择。

答案 1 :(得分:1)

使用更多功能可能会有所帮助,并且可能会造成伤害。从理论上讲,它更倾向于模块化设计,这意味着您可以在多个应用程序中反复使用某个功能,而无需重新编写它。

我诚实地鼓励你们更多地参与更大的会议,例如那里的MVC FrameworksKohana是一个很棒的人。它使用诸如Helpers之类的东西来获得额外的外部功能,模型用于查询数据库,控制器用于执行所有逻辑 - 最终结果传递给View,使用HTML / CSS进行格式化,并使用Javascript加速。 / p>

答案 2 :(得分:1)

  • 不要使用“SELECT *” - 出于性能原因以及维护原因列举您想要的字段。
  • 在您的示例中,显示代码可能与SQL查询非常紧密地结合在一起,因此您也可以将它们封装在一起
  • 您可能会考虑某种带有ORM的MVC框架(如CakePHP),它将比编写一堆函数更有利于模型重用
  • 你走在正确的轨道上!编写代码,然后重构它以使其更好 - 非常聪明。

答案 3 :(得分:0)

是的,还要考虑查看ORM或某些与数据库无关的界面。这可能有助于减少重复(当然,如果有的话,可以更容易地移植到新的数据库)。

基本上,只要您看到类似外观的代码(无论是在结构上还是在功能上),您都有机会将其分解为可在整个应用程序中共享的函数。一个好的经验法则是“不要重复自己(DRY)”