2017-04-06 56 views
1

我正在使用codeigniter,並且我有一個包含大量頁面的項目。 每個頁面由控制器+視圖組成。 也許有一種方法可以基於模板自動創建頁面和控制器?也許codeigniter有一個批處理文件選項,用於檢測數據庫中特定表(例如頁表)中的更改,並相應地創建控制器+查看文件?在CodeIgniter中自動創建視圖和控制器

由於

+1

生成與此http://crudigniter.com/ – kishor10d

+0

嘗試使用HMVC –

+0

謝謝! !這不是我正在尋找的 - 但我可以看到潛在的 – RoyBarOn

回答

0

找到一種方式來創建一個「批處理」文件來創建模型/視圖/控制器

享受。

我使用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); 
    } 
相關問題