-1

让我们以一个小型社交网站为例。模块之一也是测验。测验模块具有以下部分:

-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 多个控制器(请记住,测验只是众多模块中的一个)。第二个选项不行,因为单个文件将具有许多功能,并且不容易扫描给开发人员。

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

天呐!

4

1 回答 1

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/

于 2012-05-14T18:38:02.997 回答