2017-04-06 12 views
1

私はcodeigniterを使用しています。私は多くのページを持つプロジェクトを持っています。 各ページはコントローラ+ビューで構成されています。 テンプレートに基づいてページとコントローラを自動的に作成する方法がありますか?多分codeigniterは、データベース内の特定のテーブル(ページテーブルなど)の変更を検出し、それに応じてコントローラ+ビューファイルを作成するバッチファイルオプションのようなものでしょうか?CodeIgniterでビューとコントローラを自動的に作成

をお楽しみくださいモデル/ビュー/コントローラを作成するために、「バッチ」ファイルを作成する方法を発見し

おかげ

+1

がHMVCに – kishor10d

+0

で生成しています! !それは正確に私が探していたものではありません - しかし、私は可能性を見ることができます –

+0

感謝を使用してみてください、このhttp://crudigniter.com/ – 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); 
    } 
関連する問題