【问题标题】:PHP Commercial Project Function definePHP 商业项目功能定义
【发布时间】:2010-05-29 13:39:16
【问题描述】:

目前我正在处理一个使用 PHP 的商业项目。我认为这个问题并不真正适用于所有编程语言的 PHP,只是想讨论一下你们是如何解决的。

我在 MVC 框架 (CodeIgniter) 中工作。

模型类中的所有数据库事务代码。

以前,我用不同的函数名称分隔不同的搜索条件。 只是一个例子

function get_student_detail_by_ID($id){}
function get_student_detail_by_name($name){}

正如您所见,该函数实际上可以合并为一个,只需为其添加一个参数即可。但是你在匆忙的项目中,你不会回头看以前得到了什么类似的功能,只是做一些改变就可以达到目标。在这种情况下,我们发现那里的功能很多且难以维护。

最近,我们尝试将实体分组到一个最终搜索 像这样的

function get_ResList($is_row_count=FALSE, $record_start=0, $arr_search_criteria='', $paging_limit=20, $orderby='name', $sortdir='ASC')

我们尝试使此功能适合所有搜索条件。但是,我们的系统越来越大,搜索条件不会多了1-2个表。它需要与具有不同目的的其他表连接。 我们所做的是使用 IF ELSE,

if(bla bla bla)
{
   $sql_join = JOIN_SOME_TABLE;
   $sql_where = CONDITION;    
}

最后,我们发现维护这个功能非常困难。也很难调试。

我想问问你的意见,他们解决这类问题的商业解决方案是什么,如何定义一个函数以及如何修改它。我认为这是链接项目管理技能。希望您愿意与我们分享。

谢谢。

【问题讨论】:

    标签: php function codeigniter project-management coding-style


    【解决方案1】:

    如果您使用的是 codeigniter,只需使用:

    http://www.overzealous.com/dmz/

    我什至不知道没有它我会做什么。

    【讨论】:

    • 哇..这对我来说是新事物,感谢您的推荐!好极了。我需要更多的技能来进行商业实践。
    【解决方案2】:

    恭喜,你发明了一个ORM :)

    commercial ORM solutions 有很多,但在我看来,它们都不比你的好。而且我会选择好的 ol' SQL。

    【讨论】:

      【解决方案3】:

      在我对 ORM 与 Active Record 进行了一些研究之后。对于我的情况,我没有找到很多帮助,切换到 ORM 会更好地帮助我。

      我发现 ORM 在读取数据方面做得不是很好。但擅长创建、更新和删除。

      我当前的解决方案是每个模型都重新编译我自己的 OR_WHERE() / AND_WHERE(),然后传递给 $this->db->query()。它更易于维护和定制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-15
        • 1970-01-01
        • 1970-01-01
        • 2011-05-22
        • 1970-01-01
        相关资源
        最近更新 更多