PHP的MySQL实体框架

0.1.0 2020-11-08 23:20 UTC

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);

希望你们觉得这个库很有用。

请分享它,并给我一些反馈:)

托马斯