我们的系统一般会分为前台模块( index ) 以及 后台模块 ( admin )。我们初始化安装 thinkphp5 之后,系统会默认创建一个前台模块,但是其文件夹和文件不是完整的。那么,我们该如何创建 拥有前台 和 后台模块的 thinkphp5 应用呢?很辛运,thinkphp5 官方提供了自动生成目录功能。 >[info] ThinkPHP5.0 具备自动创建功能,可以用来自动生成需要的模块及目录结构和文件等,自动生成主要调用\think\Build类库。 默认的框架的根目录下面自带了一个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访问控制器文件用于显示框架的欢迎页面。 因此,我们在 build.php 中做如下配置: ~~~ <?php return [ // 生成应用公共文件 '__file__' => ['common.php', 'config.php', 'database.php'], // 后台模块 'admin' => [ '__file__' => ['common.php', 'config.php', 'database.php'], '__dir__' => ['behavior', 'controller', 'model', 'view'], 'controller' => ['Index'], 'model' => [], 'view' => ['index/index'], ], // 前台模块 'index' => [ '__file__' => ['common.php', 'config.php', 'database.php'], '__dir__' => ['behavior', 'controller', 'model', 'view'], 'controller' => ['Index'], 'model' => [], 'view' => ['index/index'], ] // 其他更多的模块定义 ]; ~~~ >[danger] 运行下面的命令之前,确保你的 php命令行模式 可以运行。 **首先进入系统的根目录**,默认会读取应用目录application下面的build.php 作为自动生成的定义文件,如果你的定义文件位置不同,则需要使用--config参数指定如下: ~~~ >php think build --config build.php ~~~ 表示读取根目录下的build.php文件。 输入上面的命令,你会看到: ~~~ Successed ~~~ ![](https://box.kancloud.cn/0423fcbc96e1e27e2c2c947f53a809c7_413x57.jpg) 此时,你就会在 phper 下面的 application 下,看到完整的 admin 和 index 文件夹。 访问 www.phper.com 和 www.phper.com/admin 均可看到页面。 >[danger] 如果你访问 www.phper.com/admin 出现如下错误: No input file specified. 那么,请打开 public/.htaccess 文件,将 index.php/$1 修改为 index.php?/$1