【问题标题】:Automatically create view and controller in CodeIgniter在 CodeIgniter 中自动创建视图和控制器
【发布时间】:2017-04-06 05:14:15
【问题描述】:

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

谢谢

【问题讨论】:

  • 用这个crudigniter.com生成
  • 尝试使用HMVC
  • 谢谢!!!这不是我想要的——但我可以看到潜力
  • 那你想要什么?请详细解释一下?
  • 我在寻找更像是创建模型、控制器和视图的批处理文件...我知道可以做到...我只是懒得去做...。 )

标签: php codeigniter


【解决方案1】:

找到了一种创建“批处理”文件来创建模型/视图/控制器的方法

享受吧。

我使用 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);
   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    相关资源
    最近更新 更多