thomas-squall / efxphp
PHP的MySQL实体框架
0.1.0
2020-11-08 23:20 UTC
Requires
- ext-pdo: *
- thomas-squall/php-magic-annotations: ^0.9.7
This package is auto-updated.
Last update: 2024-09-09 08:02:17 UTC
README
这是一个基于MySQL的PHP实体框架。
安装
使用composer非常简单,只需运行以下命令
$ composer require thomas-squall/efxphp
先决条件
在开始使用此库之前,您应该确保已安装PHP7.1或更高版本。
使用方法
首先,您需要连接到数据库。
需要传递的参数包括
- $host = 数据库运行的服务器URL(对于本地数据库为localhost)
- $username = 登录MySQL的用户名
- $password = 登录MySQL的密码
- $database = 要连接的数据库名称
更多信息请参阅链接: https://docs.mongodb.com/manual/reference/connection-string/
这就是如何实例化一个新的适配器
use EFxPHP\Adapter; // Enstablish a connection. $adapter = new Adapter(); $adapter->connect($host, $username, $password, $database);
现在您必须创建一个模型
/** * @Model(name = "people") */ class person { /** * @Type(type = "varchar", length = 16) * @var string $name */ public $name; /** * @Type(type = "int") * @var int $age */ public $age; /** * @Type(type = "varchar", length = 10) * @Default(value = "italian") * @var string $nationality */ public $nationality; }
并注册它
$db->registerModel(new person());
如果您希望根据模型自动创建/更新您的表,请在registerModel方法中将第二个参数传递为true
/* * Note that this will: * 1. Create the table if it does not exist * 2. Add new columns if you added new parameters to the model * 3. Remove unused columns if you deleted parameters from the model * * Specially for point 3, use it with care. */ $db->registerModel(new person(), true);
查找
连接到数据库后,我们可以简单地查询我们想要的集合
$items = $adapter->find('people');
您也可以过滤您的查询
use MongDriver\Filter; $filters = [ new Filter('age', 29, Filter::IS_EQUALS), new Filter('nationality', ['italian', 'spanish'], Filters::IS_IN_ARRAY) ]; $items = $adapter->find('people', $filters);
插入
如果您想插入一个条目,只需传递一个已注册模型的实例即可
$item = new Person(); $item->name = 'Thomas'; $item->surname = 'Cocchiara'); $adapter->insert($item);
希望你们觉得这个库很有用。
请分享它,并给我一些反馈:)
托马斯