我们以一个小型社交网站为例。其中一个模块也是测验。测验模块包含以下部分:
-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!
答案 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/