自動(dòng)生成目錄結(jié)構(gòu)

ThinkPHP5.0 具備自動(dòng)創(chuàng)建功能,可以用來自動(dòng)生成需要的模塊及目錄結(jié)構(gòu)和文件等,自動(dòng)生成主要調(diào)用\think\Build類庫(kù)。

生成規(guī)則定義

首先需要定義一個(gè)用于自動(dòng)生成的規(guī)則定義文件,通常命名為build.php。

默認(rèn)的框架的根目錄下面自帶了一個(gè)build.php示例參考文件,內(nèi)容如下:

return [
    // 生成運(yùn)行時(shí)目錄
    '__file__' => ['common.php'],

    // 定義index模塊的自動(dòng)生成
    'index'    => [
        '__file__'   => ['common.php'],
        '__dir__'    => ['behavior', 'controller', 'model', 'view'],
        'controller' => ['Index', 'Test', 'UserType'],
        'model'      => [],
        'view'       => ['index/index'],
    ],
    // 。。。 其他更多的模塊定義
];

可以給每個(gè)模塊定義需要自動(dòng)生成的文件和目錄,以及MVC類。

  • __dir__ 表示生成目錄(支持多級(jí)目錄)
  • __file__ 表示生成文件(不定義默認(rèn)會(huì)生成 config.php 文件)
  • controller 表示生成controller類
  • model表示生成model類
  • view表示生成html文件(支持子目錄)

自動(dòng)生成以APP_PATH為起始目錄,__dir__ 和 __file__ 表示需要自動(dòng)創(chuàng)建目錄和文件,其他的則表示為模塊自動(dòng)生成。

模塊的自動(dòng)生成則以 APP_PATH.'模塊名/' 為起始目錄。

并且會(huì)自動(dòng)生成模塊的默認(rèn)的Index訪問控制器文件用于顯示框架的歡迎頁(yè)面。

我們還可以在APP_PATH目錄下面自動(dòng)生成其它的文件和目錄,或者增加多個(gè)模塊的自動(dòng)生成,例如:

return [
    '__file__'  => ['hello.php','test.php'],
    // 定義index模塊的自動(dòng)生成
    'index'   => [
        '__file__'   => ['tags.php', 'user.php', 'hello.php'],
        '__dir__'    => ['behavior', 'controller', 'model', 'view'],
        'controller' => ['Index', 'Test', 'UserType'],
        'model'      => [],
        'view'       => ['index/index'],
    ],    
    // 定義test模塊的自動(dòng)生成
    'test'=>[
        '__dir__'   =>  ['behavior','controller','model','widget'],
        'controller'=>  ['Index','Test','UserType'],
        'model'     =>   ['User','UserType'],
        'view'      =>  ['index/index','index/test'],
    ],
 ];

命令行自動(dòng)生成

我們通過控制臺(tái)來完成自動(dòng)生成,切換到命令行,在應(yīng)用的根目錄輸入下面命令:

>php think build

如果看到輸出

Successed

則表示自動(dòng)生成成功。

默認(rèn)會(huì)讀取應(yīng)用目錄application下面的build.php 作為自動(dòng)生成的定義文件,如果你的定義文件位置不同,則需要使用--config參數(shù)指定如下:

>php think build --config build.php

表示讀取根目錄下的build.php文件。

生成模塊指令

>php think build --module test

表示自動(dòng)生成test模塊。

添加自動(dòng)生成代碼

如果你不習(xí)慣命令行操作,也可以直接調(diào)用\think\Build類的方法進(jìn)行自動(dòng)生成,例如:

// 定義應(yīng)用目錄
define('APP_PATH', __DIR__ . '/../application/');
// 加載框架引導(dǎo)文件
require __DIR__ . '/../thinkphp/start.php';
// 讀取自動(dòng)生成定義文件
$build = include 'build.php';
// 運(yùn)行自動(dòng)生成
\think\Build::run($build);

run方法第二個(gè)參數(shù)用于指定要生成的應(yīng)用類庫(kù)的命名空間,默認(rèn)是app,第三個(gè)參數(shù)是設(shè)置是否需要使用類后綴。
例如:

// 定義應(yīng)用目錄
define('APP_PATH', __DIR__ . '/../application/');
// 加載框架引導(dǎo)文件
require __DIR__ . '/../thinkphp/start.php';
// 讀取自動(dòng)生成定義文件
$build = include 'build.php';
// 運(yùn)行自動(dòng)生成
\think\Build::run($build,'application',true);

可以不依賴自動(dòng)生成文件,直接使用默認(rèn)目錄生成模塊,例如:

// 定義應(yīng)用目錄
define('APP_PATH', __DIR__ . '/../application/');
// 加載框架引導(dǎo)文件
require __DIR__ . '/../thinkphp/start.php';
// 自動(dòng)生成admin模塊
\think\Build::module('admin');

module方法第二個(gè)參數(shù)和第三個(gè)參數(shù)的用法和run方法一樣。

文檔最后更新時(shí)間:2018-04-26 11:01:24

文檔
目錄

深色
模式

切換
寬度