Codeigniter组织控制器结构

时间:2012-05-14 14:22:57

标签: codeigniter codeigniter-routing

我们以一个小型社交网站为例。其中一个模块也是测验。测验模块包含以下部分:

-Create quize
-Edit quize
-Quize view
-Browse quizes
-Send quize to friend

我想知道在这种情况下最好的方法是什么。其中一个选择是为每个模块部分创建另一个控制器。

controllers/create_quize.php
controllers/edit_quize.php
controllers/quize_view.php
controllers/browse_quizes.php
controllers/send_quize.php

另一种方法是为具有许多功能的整个模块创建单个控制器。没有选项可以。首先,这可能意味着我的控制器文件夹中有超过30个控制器(考虑到quizess只是众多模块中的一个)。第二个选项不正常,因为单个文件将具有许多功能,并且不会轻易扫描给开发人员。

我还想创建许多控制器,但将它们组织到子文件夹中。无论如何condeigniter没有修改就没有这个选项。

TNX!

1 个答案:

答案 0 :(得分:4)

您的测验只需要一个控制器。您的quiz控制器可能如下所示:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Quiz extends CI_Controller {

    function __construct()
    {
        parent::__construct();
    }


    function index()
    {
        // Index page. List all quizzes here, perhaps as an replacement to /browse
        // /quiz/
    }


    function create()
    {
        // Create a new quiz
        // /quiz/create
    }


    function edit($quiz_id)
    {
        // Edit quiz with $quiz_id
        // /quiz/edit/1
    }


    function browse()
    {
        // Index page. List all quizzes here, perhaps
        // /quiz/browse
    }


    function send($quiz_id)
    {
        // Send/share page
        // /quiz/send/1
    }

}

CodeIgniter是一个模型 - 视图 - 控制器框架。您可能想要查看其结构:http://codeigniter.com/user_guide/