这是一个长期存在的问题,每次我开发时都会遇到。
我想它不是特定于 CodeIgniter 的,但是当我使用它时,我会在我的示例中考虑它。
首先,哪个更好:
function add_entry($data_array)
{
//code to add entry
}
function edit_entry($data_array)
{
//code to update entry
}
或者
function save_changes($what,$data_array)
{
//if what == update update
//otherwise insert
}
两者都产生相同的动作,但你使用哪一个真的很重要吗?
处理更复杂的事情。
我有一个页面,我需要从数据库中获取一个条目。
我还有一个页面,我需要从同一个数据库中获取由用户指定的列排序的所有条目。
我的结果方法是一个类似于
function($data_array,$order_by='',$limit='')
{
//get where $data_array
//if order_by!='' add order by
//if limit !='' add limit
}
当我开发我的应用程序并实现需要“类似”数据库功能的新地方时,我感觉就像在破解以前的方法,以便它们适用于我的所有案例场景。这些方法最终包含许多条件语句,并且在某些情况下会变得相当复杂,在某些情况下需要 4 或 5 个输入参数。
我错过了重点吗?我不想要重复的代码,而且当大部分功能非常相似时,我觉得这种“黑客”方法效果最好。
有人可以建议吗?
最后,我的管理功能是管理控制器中同一应用程序的一部分。我有一个管理模型,其中包含管理数据库交互的特定方法。但是,我使用“用户”模型中的一些模型功能。
例如,如果在管理页面上我需要获取数据库条目的详细信息,我可以加载用户模型来访问此功能。这没有什么错/不安全的..?正确的?
除了在我的管理模型本身中,我还需要获取有关用户数据库条目的数据,因此我直接从我的管理模型调用我的用户模型。这完全可以,但为什么呢?如果我需要数据并且我的用户模型中已经有一个方法可以获取它..重写管理模型中的代码似乎有点毫无意义但是每次调用该函数时它会再次加载整个用户模型吗?
非常感谢大家。