在CodeIgniter中自动创建视图和控制器

时间:2017-04-06 05:14:15

标签: php codeigniter

我使用的是codeigniter,我有一个包含很多页面的项目。 每个页面都包含控制器+视图。 也许有一种方法可以根据模板自动创建页面和控制器?也许codeigniter有一个批处理文件选项,可以检测数据库中特定表(例如页面表)的变化,并相应地创建控制器+视图文件?

由于

1 个答案:

答案 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);
   }