我使用的是codeigniter,我有一个包含很多页面的项目。 每个页面都包含控制器+视图。 也许有一种方法可以根据模板自动创建页面和控制器?也许codeigniter有一个批处理文件选项,可以检测数据库中特定表(例如页面表)的变化,并相应地创建控制器+视图文件?
由于
答案 0 :(得分:3)
找到一种方法来创建'批处理'文件来创建模型/视图/控制器
享受。
我使用了Codeigniter的助手。
从另一个控制器加载帮助程序
$this->load->helper('pages_creator');
create_new_page('test', 'Test', 'Test');
这是助手pages_creator_helper.php
<?php
function create_new_page($page_name, $class_name, $controller_name){
// Create Controller
$controller = fopen(APPPATH.'controllers/'.$controller_name.'.php', "a")
or die("Unable to open file!");
$controller_content ="<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class $class_name extends MY_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
\$this->data['site_title'] = '$page_name';
\$this->twig->display('$page_name',\$this->data);
}
}";
fwrite($controller, "\n". $controller_content);
fclose($controller);
// Create Model
$model = fopen(APPPATH.'models/'.$class_name.'_model'.'.php', "a")
or die("Unable to open file!");
$model_content ="<?php if ( ! defined('BASEPATH')) exit('No direct script
access allowed');
class ".$class_name."_model"." extends CI_Model
{
function __construct()
{
// Call the Model constructor
parent::__construct();
}
}
";
fwrite($model, "\n". $model_content);
fclose($model);
// Create Twig Page
$page = fopen(APPPATH.'views/'.$page_name.'.twig', "a") or die("Unable to
open file!");
$page_content ='{% extends "base.twig" %}
{% block content %}
<div class="row">
<div class="col-md-12">
<h1>TO DO {{ site_title }}</h1>
</div>
<!-- /.col -->
</div>
{% endblock %}';
fwrite($page, "\n". $page_content);
fclose($page);
}