我在我的控制器中写了一个函数;这应该采取一种形式,处理它,在DB中注册用户,发送确认电子邮件等等。
为了避免这个函数过于混乱,我想调用一些子函数(例如:
function registration()
{
//process form..
_insertInDb($formdata)
_send_mail($address);
//load confirmation view..
}
function _send_mail($to)
{
//code here
}
function _insertInDb($formdata)
{
//other code here...
}
我不确定在控制器中编写所有函数是否是最佳实践 - 我可以在另一个文件中插入所有'支持'函数(例如本例中的send_mail和insertInDb),然后导入它们吗?
这可能会让控制器更具可读性。 你的看法是什么?
答案 0 :(得分:2)
MVC只是一种表示模式,所有“业务逻辑”都应该位于“MVC”代码之外。你的应用程序应该完全相同,所有的MVC代码都会消失,并被其他东西取代。
我将创建一个单独的类,让控制器调用该类的实例,这将实现必要的数据库插入,发送电子邮件警报,进行日志记录等。
<强>更新强>
由于CodeIgniter似乎是基于php的CMS,我建议从这里开始深入了解详细信息 - http://php.net/manual/en/language.oop5.php
这样的代码可以让你朝着正确的方向前进:
<?php
class SimpleClass
{
// property declaration
public $var = 'a default value';
// method declaration
public function displayVar() {
echo $this->var;
}
}
?>
答案 1 :(得分:1)
我假设你会使用apt图层来处理注册过程中的每一步。
来自控制器:
来自业务层:( UserService)
我保证它能满足您的期望。如果我错了,请纠正我。
欢迎关注......
答案 2 :(得分:0)