spaceboy/datex

用于在Nette PHP框架中轻松创建PHP实体、表单和模型类的简单命令行工具

v1.00 2022-03-16 18:50 UTC

This package is auto-updated.

Last update: 2024-09-17 00:10:27 UTC


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.neonAPP_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]

entityform 命令类似,但会创建基于数据库表列的PHP model 文件。