php目录生成,自动生成目录结构

ThinkPHP5.0 具备自动创建功能,可以用来自动生成需要的模块及目录结构和文件等,自动生成主要调用`\think\Build`类库。

## 生成规则定义

首先需要定义一个用于自动生成的规则定义文件,通常命名为`build.php`。

默认的框架的根目录下面自带了一个`build.php`示例参考文件,内容如下:

~~~

return [

// 生成运行时目录

'__file__' => ['common.php'],

// 定义index模块的自动生成

'index' => [

'__file__' => ['common.php'],

'__dir__' => ['behavior', 'controller', 'model', 'view'],

'controller' => ['Index', 'Test', 'UserType'],

'model' => [],

'view' => ['index/index'],

],

// 。。。 其他更多的模块定义

];

~~~

可以给每个模块定义需要自动生成的文件和目录,以及MVC类。

* `__dir__` 表示生成目录(支持多级目录)

* `__file__` 表示生成文件(不定义默认会生成 config.php 文件)

* controller 表示生成controller类

* model表示生成model类

* view表示生成html文件(支持子目录)

自动生成以`APP_PATH`为起始目录,`__dir__` 和 `__file__` 表示需要自动创建目录和文件,其他的则表示为模块自动生成。

模块的自动生成则以 `APP_PATH.'模块名/'` 为起始目录。

并且会自动生成模块的默认的Index访问控制器文件用于显示框架的欢迎页面。

我们还可以在`APP_PATH`目录下面自动生成其它的文件和目录,或者增加多个模块的自动生成,例如:

~~~

return [

'__file__' => ['hello.php','test.php'],

// 定义index模块的自动生成

'index' => [

'__file__' => ['tags.php', 'user.php', 'hello.php'],

'__dir__' => ['behavior', 'controller', 'model', 'view'],

'controller' => ['Index', 'Test', 'UserType'],

'model' => [],

'view' => ['index/index'],

],

// 定义test模块的自动生成

'test'=>[

'__dir__' => ['behavior','controller','model','widget'],

'controller'=> ['Index','Test','UserType'],

'model' => ['User','UserType'],

'view' => ['index/index','index/test'],

],

];

~~~

## 命令行自动生成

我们通过控制台来完成自动生成,切换到命令行,在应用的根目录输入下面命令:

~~~

>php think build

~~~

如果看到输出

~~~

Successed

~~~

则表示自动生成成功。

默认会读取应用目录`application`下面的`build.php` 作为自动生成的定义文件,如果你的定义文件位置不同,则需要使用`--config`参数指定如下:

~~~

>php think build --config build.php

~~~

表示读取根目录下的`build.php`文件。

生成模块指令

~~~

>php think build --module test

~~~

表示自动生成`test`模块。

## 添加自动生成代码

如果你不习惯命令行操作,也可以直接调用`\think\Build`类的方法进行自动生成,例如:

~~~

// 定义应用目录

define('APP_PATH', __DIR__ . '/../application/');

// 加载框架引导文件

require __DIR__ . '/../thinkphp/start.php';

// 读取自动生成定义文件

$build = include 'build.php';

// 运行自动生成

\think\Build::run($build);

~~~

`run`方法第二个参数用于指定要生成的应用类库的命名空间,默认是`app`,第三个参数是设置是否需要使用类后缀。

例如:

~~~

// 定义应用目录

define('APP_PATH', __DIR__ . '/../application/');

// 加载框架引导文件

require __DIR__ . '/../thinkphp/start.php';

// 读取自动生成定义文件

$build = include 'build.php';

// 运行自动生成

\think\Build::run($build,'application',true);

~~~

可以不依赖自动生成文件,直接使用默认目录生成模块,例如:

~~~

// 定义应用目录

define('APP_PATH', __DIR__ . '/../application/');

// 加载框架引导文件

require __DIR__ . '/../thinkphp/start.php';

// 自动生成admin模块

\think\Build::module('admin');

~~~

`module`方法第二个参数和第三个参数的用法和`run`方法一样。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值