inlm/schema-generator-leanmapper
Composer 安装命令:
composer require inlm/schema-generator-leanmapper
包简介
Lean Mapper bridge for inlm/schema-generator
README 文档
README
Installation
Download a latest package or use Composer:
composer require inlm/schema-generator-leanmapper
Schema Generator requires PHP 8.0 or later.
Usage
$extractor = new Inlm\SchemaGenerator\LeanMapperBridge\LeanMapperExtractor(__DIR__ . '/model/Entities/', new LeanMapper\DefaultMapper); $adapter = new Inlm\SchemaGenerator\Adapters\NeonAdapter(__DIR__ . '/.schema.neon'); $dumper = new Inlm\SchemaGenerator\Dumpers\SqlDumper(__DIR__ . '/migrations/structures/'); $logger = new Inlm\SchemaGenerator\Loggers\MemoryLogger; $generator = new Inlm\SchemaGenerator\SchemaGenerator($extractor, $adapter, $dumper, $logger, Inlm\SchemaGenerator\Database::MYSQL); // $generator->setTestMode(); $generator->generate(); // or $generator->generate('changes description');
Documentation
LeanMapperExtractor generates schema from Lean Mapper entities.
$directories = '/path/to/model/Entities/'; // or $directories = [ '/path/to/model/Entities/', '/path/to/package/Entities/', ]; $mapper = new LeanMapper\DefaultMapper; $extractor = new Inlm\SchemaGenerator\LeanMapperBridge\LeanMapperExtractor($directories, $mapper);
Flags
@property string|NULL $web m:schemaType(varchar:50)
| Flag | Description | Example |
|---|---|---|
m:schemaType |
column datatype | m:schemaType(varchar:50), m:schemaType(int:10 unsigned) |
m:schemaComment |
column comment | m:schemaComment(Lorem ipsum) |
m:schemaAutoIncrement |
has column AUTO_INCREMENT? | m:schemaAutoIncrement |
m:schemaIndex |
create INDEX for column | m:schemaIndex |
m:schemaPrimary |
create PRIMARY KEY for column | m:schemaPrimary |
m:schemaUnique |
create UNIQUE INDEX for column | m:schemaUnique |
m:schemaIgnore |
ignore property | m:schemaUnique |
If primary column is integer (@property int $id), automatically gets AUTO_INCREMENT.
Flag m:schemaType can be used with custom types too - for example m:schemaType(money) or m:schemaType(money unsigned).
In case if is flag m:schemaType missing, it uses default type or your custom type.
Annotations
| Annotation | Description | Example |
|---|---|---|
@schemaComment |
table comment | @schemaComment Lorem ipsum |
@schemaOption |
table option | @schemaOption COLLATE utf8_czech_ci |
@schemaIndex |
create INDEX | @schemaIndex propertyA, propertyB |
@schemaPrimary |
create PRIMARY KEY | @schemaPrimary propertyA, propertyB |
@schemaUnique |
create UNIQUE INDEX | @schemaUnique propertyA, propertyB |
@schemaIgnore |
ignore entity | @schemaIgnore |
You can define default table options globally.
Example
/** * @property int $id * @property string $name m:schemaType(varchar:100) * @schemaOption COLLATE utf8_czech_ci */ class Author extends \LeanMapper\Entity { }
License: New BSD License
Author: Jan Pecha, https://www.janpecha.cz/
inlm/schema-generator-leanmapper 适用场景与选型建议
inlm/schema-generator-leanmapper 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 375 次下载、GitHub Stars 达 1, 最近一次更新时间为 2023 年 07 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 inlm/schema-generator-leanmapper 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 inlm/schema-generator-leanmapper 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 375
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2023-07-28