php怎么创建控制器类,php ci下添加一个创建常用的模块和控制器方法

我这么写是非常不好的 ,这些都可以写在lirbraries里面 (ci就是这么干的)

我这里是自己用 大概一个模型 没那么多讲究

现在core/CodeIgniter.php 文件

if($modle_file=config_item('modle_file'))

{

if ($modle_file === TRUE)

{

$modle_file=config_item('modle_type');

$MOF=& load_class('Newfile','core');

$MOF->createModule($modle_file); //创建文件加载类

}

}

后在配置文件里面 填写

$config['modle_file']=TRUE; //是否创建常用的model如 admin group modules index 就是常用的 角色管理 账号管理 首页显示 模块管理

$config['modle_type']='new'; // 这个是模板和代码不同

然后在core/下面创建一个CI_Newfile类

具体代码为:

/**

* 这是一个扩展类

*

* 主要用来添加 常用的model模块还有controller控制器

*/

defined('BASEPATH') OR exit('No direct script access allowed');

/**

* model、controller扩展类

*

* @packageCodeIgniter

* @subpackageLibraries

* @categoryLogging

* @authorshaonian

* @link

*/

class CI_Newfile {

/**

* 模块列表

*

* @var array

*/

protected $_model_arr=['Admin'];

protected $_model_prefix='Model_';

/**

* 控制器列表

*

* @varint

*/

protected $_controller_arr = [];

/**

* 目录权限

*

* @var int

*/

protected $_chmod = 0775;

/**

* 创建时间

*

* @var string

*/

protected $_date_fmt = 'Y-m-d H:i:s';

/**

* 控制类

*

* 其实这个类 也可以写在扩展里面 因为 ci本来就让扩展用法的

*

* @returnvoid

*/

public function __construct($model_arr=NULL,$controller_arr=NULL)

{

//$config =& get_config(); //加载全局配置文件

//判断模块是否空或者数组

if(empty($model_arr) && is_array($model_arr))

{

$this->_model_arr=$model_arr;

}

//判断控制器是否空或者数组

if(empty($controller_arr) && is_array($controller_arr))

{

$this->_controller_arr=$controller_arr;

}

}

/**

* 根据路径创建模块

*

* @param [type] $path

* @return void

*/

public function createModule($is_type_system='new')

{

// if(!is_string($path))

// {

// $path=(string)$path;

// }

//根文件

$Model_path_base=BASEPATH.'core/newfile/model/'.$is_type_system.DIRECTORY_SEPARATOR;

$this->mkdirs($Model_path_base); //递归创建目录

$get_content=$this->file_get_contents_write($Model_path_base);

//还有一种方法

/**

* $content=$get_content instanceof Iterator; 这个详细的方法 看php手册的 迭代接口

*/

foreach($get_content as $model_key=>$content)

{

//创建文件

$this->mkdirs(APPPATH.'models/sys/');

file_put_contents(APPPATH.'models/sys/'.$model_key.'.php',$content);

}

}

/**

* 循环读取文件并创建

* 其实可以不用生成器的 反正就4个文件 file_Get_content直接读取 这些文件 还不到 10kb也挺快的

*/

public function file_get_contents_write($path)

{

foreach($this->_model_arr as $val)

{

if(!file_exists($path.strtolower($val).'.txt'))

{

echo "你的文件{$this->_model_prefix}{$val}未找到,请放入后查看";exit(0);

}

yield $this->_model_prefix.$val=>file_get_contents($path.strtolower($val).'.txt');

}

}

/**

* 递归创建目录

*

* @param [type] $dir

* @return void

*/

public function mkdirs($dir=NULL)

{

return is_dir($dir) or ($this->mkdirs(dirname($dir))) and mkdir($dir,0755);

}

}

目前我只实现了model创建,目前的构思是 创建常用的controller代码model代码,数据库创建,模板等

这里使用创建数据库的话,得吧loader里面的database拿过来放在里面或者可以吧这个类加载放在controller下面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值