spaceboy / datex
用于在Nette PHP框架中轻松创建PHP实体、表单和模型类的简单命令行工具
Requires
- php: >=7.2
- nette/bootstrap: ^3.0
- nette/database: ^3.1
- nette/forms: ^3.1
- spaceboy/nette-cli: ^1.2
README
这是一个简单的命令行工具,用于在PHP/Nette框架环境下快速开发数据库相关的操作(创建实体、表单和模型PHP类/文件)。
1 安装
1.1 安装工具
在命令行中输入
>composer require spaceboy/datex
1.2 复制脚本文件
从
APP_ROOT/vendor/spaceboy/datex/bin/datex.php
复制文件 datex.php
APP_ROOT/app/bin/datex.php
1.3 注册服务 DatexModel
在 APP_ROOT/config/services.neon
中将服务添加到服务列表
services:
- Spaceboy\Datex\DatexModel(%datex%)
2 配置
2.1 添加配置参数
在 APP_ROOT/config/services.neon
中将 datex
部分添加到 parameters
parameters:
datex:
entity:
namespace: App\Model\Entities
path: app/model/entities
template: templateEntity.phtml
form:
namespace: App\Forms
path: app/forms
template: templateForm.phtml
model:
namespace: App\Model
path: app/model/models
template: templateModel.phtml
2.2 连接到数据库
在第一次运行之前,请确保您的数据库连接已正确设置。
在您的配置文件(APP_ROOT/config/local.neon
或 APP_ROOT/config/common.neon
)的 database
部分中,应该以某种方式描述您的数据库连接,如下所示
database:
dsn: 'mysql:host=127.0.0.1;dbname=my_database'
user: db_user
password: *****
使用脚本
在命令行终端中,进入 APP_ROOT/bin
目录,并尝试第一次运行
>php datex.php
如果出现任何错误,请 清除缓存 并再次尝试。
如果一切正常,您可以使用脚本进行简单的经典操作
>php datex.php command [--parameter] [--switch]
命令
tables
>php datex.php tables
在数据库中写入可访问的表和视图的列表。
columns
>php datex.php columns --table table_name
>php datex.php columns -t=table_name
写入数据库表的列列表。
entity
>php datex.php entity --table table_name [--file path/to/EntityFile.php] [--overwrite] [--screen]
>php datex.php entity -t=table_name [-f="path/to/EntityFile.php"] [-o] [-s]
基于数据库表的列创建PHP entity 文件。
文件放置在 config 部分中声明的默认目录中,或者如果指定了脚本中的 file 参数,则放置在那里。
如果目标文件已存在,除非使用 ---overwite
(-o
) 开关,否则脚本会停止。
如果使用 --screen
(-s
) 开关,则会在屏幕上显示PHP文件的源代码,而不会写入任何文件。
form
>php datex.php form --table table_name [--file path/to/EntityFile.php] [--overwrite] [--screen]
>php datex.php form -t=table_name [-f="path/to/EntityFile.php"] [-o] [-s]
与 entity 命令类似,但会创建基于数据库表列的nette form 文件。
model
>php datex.php model --table table_name [--file path/to/EntityFile.php] [--overwrite] [--screen]
>php datex.php model -t=table_name [-f="path/to/EntityFile.php"] [-o] [-s]
与 entity 和 form 命令类似,但会创建基于数据库表列的PHP model 文件。