代码之家  ›  专栏  ›  技术社区  ›  Chris Bier

PHP函数滥用?

  •  0
  • Chris Bier  · 技术社区  · 16 年前

    我有一个大系统,我已经编码,我希望使代码(我敢说)更简单,更容易阅读。不幸的是,在此之前,我没有使用太多函数。

    我在代码中运行了许多不同的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 回复  |  直到 16 年前
        1
  •  1
  •   Sampson    16 年前

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

    我真诚地鼓励你更多地参加更大的会议,比如 MVC Frameworks 在那里。 Kohana 是一个伟大的。它使用其他外部功能的助手、查询数据库的模型以及执行所有逻辑的控制器等功能,最终结果将传递给视图,以使用HTML/CSS进行格式化,并使用JavaScript进行补充。

        2
  •  3
  •   Callum    16 年前

    你要记住的一件事是保持干燥的原则:不要重复你自己。

    如果您发现有一个代码块被多次使用,或者非常相似,可以使其相同,那么它是一个理想的候选函数。

        3
  •  1
  •   Matthew Groves    16 年前
    • 不要使用“select*”--枚举出于性能和维护原因而需要的字段。
    • 在您的示例中,显示代码很可能与SQL查询紧密耦合,因此您也可以将它们封装在一起。
    • 您可能会考虑使用某种带有ORM(如cakephp)的MVC框架,它将比编写一系列函数更方便模型重用。
    • 你走对了!编写代码,然后重构以使其更好——非常聪明。
        4
  •  0
  •   Ben Hughes    16 年前

    是的,还可以考虑查找ORM或某些不可知数据库的接口。这也可能有助于减少重复(当然,如果出现这种情况,移植到新的数据库会更容易)。

    基本上,当您看到类似的代码(无论是在结构上还是在功能上)时,您都有机会将其分解成可以在应用程序中共享的功能。一个好的经验法则是不要重复你自己(干)

    推荐文章