2012-05-14 88 views
-1

我们以一个小社交网站为例。其中一个模块也是测验。测验模块包含以下部分:Codeigniter组织控制器结构

-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

tnx用于警告。说实话,我甚至不知道这个选项。现在我明白了 :) – user1324762

回答

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 
    } 

} 

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