PHP商业项目功能定义

时间:2010-05-29 13:39:16

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

目前我正在使用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;    
}
最后,我们发现很难维护这个功能。它也很难调试。

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

感谢。

3 个答案:

答案 0 :(得分:2)

如果您使用的是codeigniter,请使用:

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

我不知道没有它我曾经做过什么。

答案 1 :(得分:0)

恭喜,您发明了 ORM :)

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

答案 2 :(得分:0)

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

我发现ORM在READ数据方面做得不够。但在创建,更新和删除方面表现良好。

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