小编Tod*_*ish的帖子

CodeIgniter中的Fat Model Skinny Controller

我已经使用CodeIgniter一段时间了,并且对MVC,PHP等有很好的了解.

但是,我发现很难坚持Fat Model Skinny Controller的精神.

我已经看过很多了; 包括要包含在每个文件中的伪代码,但没有实际的例子.(如果我错过任何明显的文章,请链接到一些文章!)

我发现很难将表单逻辑移动到模型中.例如,我正在为我的auth系统使用自定义库,它有自己的模型.我是否应该建立一个站点用户模型来登录用户?或者我应该制作一个网站模型来做到这一点?还是表格模型?

为了帮助我,任何人都可以告诉我如何皮肤化这个控制器?我意识到这是很多代码,但简单的指针会很棒.(请注意,我刚刚编写了这段代码,所以它没有经过多次重构,但它应该是我的一些方法失控的一个很好的例子.)

public function register()
{
    session_start();
    if ($this->tf_login->logged_in())
    {
        redirect('profile');
    }
    if ($_GET['oauth'] == 'true')
    {
        $type = $_GET['type'];
        try 
        {
            $token = $this->tf_login->oauth($type, '', 'email');
        }
        catch (TFLoginCSRFMismatchException $e)
        {
            $this->tf_assets->add_data('error_message', $e->getMessage());
        }
        catch (TFLoginOAuthErrorException $e)
        {
            $this->tf_assets->add_data('error_message', $e->getMessage());
        }
        if ($token)
        {
            $user_details = $this->tf_login->call('https://graph.facebook.com/me?fields=email,first_name,last_name,username&access_token=' . $token);
            $user_details_decoded = json_decode($user_details);
            if ($user_details_decoded->email)
            {
                try 
                {
                    $id = $this->tf_login->create_user($user_details_decoded->username,
                    md5($user_details_decoded->username . time()),
                    $user_details_decoded->email,
                    '',
                    TRUE,
                    TRUE);
                }
                catch (TFLoginUserExistsException $e)
                { …
Run Code Online (Sandbox Code Playgroud)

php model-view-controller codeigniter

6
推荐指数
1
解决办法
1691
查看次数

标签 统计

codeigniter ×1

model-view-controller ×1

php ×1