在创建项目时,如果参数指定 --enable-webtools
,则会在入口文件的同级生成一个webtool.php
文件;
如果使用配置的域名访问域名/webtool.php
则会出现可视化的界面,来帮助生成代码。
此流程非必须,且在上线代码中,应配置web服务器禁止访问该文件,或者直接移除。
初次使用可能会有如下问题:
1、提示目录未找到,请在应用配置加入目录配置,这里以控制器目录为例
Sorry, Phalcon WebTools doesn't know where the controllers directory is.
Please add the valid path forcontrollersDir
in theapplication
section.
核心代码在phalcon-devtools\\src\\Providers\\ConfigProvider.php::register
,默认加载的APP_PATH . '/config/config.php'
,在application
中加入controllersDir
配置即可,该配置路径必须已经创建好
可视化界面代码生成,主要涉及controllers
,models
,views
,migrations
,因此均要配置指定代码生成在目录哪个目录下;
'application' => [
'appDir' => APP_PATH . '/',
'controllersDir' => APP_PATH . '/modules/frontend/controllers/',
'namespaceController' => 'Modules/Modules/Frontend/Controllers',
'namespaceModel' => 'Modules/Common/Models',
'modelsDir' => APP_PATH . '/common/models/',
'migrationsDir' => APP_PATH . '/migrations/',
'cacheDir' => BASE_PATH . '/cache/',
'baseUri' => '/',
'viewsDir' => APP_PATH . '/modules/frontend/views/',
],
这里是我测试多模块项目modules
时的配置,可以运行生成controllers
,models
,views
,migrations
,其中namespaceModel
和namespaceController
相关的配置是我改动了phalcon-devtools源码来避免代码生成的表单里,命名空间需要手动去填的问题;对应改动如下:
一、控制器生成:phalcon-devtools\src\Web\Tools\Controllers\ControllersController.php 215行后加上
# 命名空间
$namespace = $this->di->get('config')->application->namespaceController;
$this->tag->setDefault('namespace', $namespace);
二、模型生成:phalcon-devtools\src\Web\Tools\Controllers\ModelsController.php 259行后加上
# 命名空间
$namespace = $this->di->get('config')->application->namespaceModel;
$this->tag->setDefault('namespace', $namespace);
三、CURD脚手架(可忽略,因为现在流行前后端分离):phalcon-devtools\src\Web\Tools\Controllers\ScaffoldController.php 95行
# 命名空间
$namespace = $this->di->get('config')->application->namespaceModel;
$this->tag->setDefault('modelsNamespace', $namespace);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。