jakolab/howl-orm

此软件包已被废弃且不再维护。未建议替代软件包。

库,可映射您的数据库并在不使用SQL的情况下操作数据,仅使用面向对象。

1.0.0 2017-05-30 01:54 UTC

This package is not auto-updated.

Last update: 2020-01-18 21:49:41 UTC


README

什么是?

Howl-ORM (对象关系模型) 的构建是为了使应用程序的数据层变得简单快捷。基于活动记录模式,Howl-ORM 使以下操作变得简单

  • 连接 数据库
  • 列出 和查找记录。
  • 存储 新记录。
  • 更新 现有记录。
  • 删除 现有记录。

此外,Howl-ORM 允许您使用连接和分组等子句过滤记录,结果可以排序、限制和计数。

如何安装和初始化

  1. 下载 Howl-ORM 作为 zip 文件并将其解压缩到您的项目库文件夹中。
  2. 从 Howl-ORM 软件包中要求 HowlAutoload.php 文件。
  3. 初始化 Howl 自动加载。
  4. 实例化 Howl 数据库管理器。
  5. 加载数据库驱动程序。
<?php 
# This is your proyect root.

# Requiring Howl.
require_once 'Libs/Howl/HowlAutoload.php';

# Initializing the autoload.
\Howl\HowlAutoload::initAutoload();

# Getting the Manager instance.
$db = \Howl\DBManager::getInstance();

$config = [
    'host' => 'localhost',
    'user' => 'root',
    'database' => 'your database',
    'password' => 'your password',
];

# Loading the desired driver.
$db->loadDriver(\Howl\DBManager::MYSQL_DRIVER, $config);

完成,现在您已连接到数据库!一个可选的方法与上述方法完全相同是

<?php 
require_once 'Libs/Howl/HowlAutoload.php';
\Howl\HowlAutoload::initAutoload();
$config = [
    'host' => 'localhost',
    'user' => 'root',
    'database' => 'your database',
    'password' => 'your password',
];
\Howl\DBManager::getInstance()->loadDriver(\Howl\DBManager::MYSQL_DRIVER, $config);

Howl 使用单例模式保留数据库连接的唯一实例,使用 getInstance 函数您可以获取数据库管理器的唯一实例并执行自定义查询(如果需要)。

映射您的表(模型)

映射您的数据库表非常简单。

  1. 在名为 model 的目录中创建一个名为表名的文件(我建议您使用 PascalCase 命名您的模型)。
  2. 该文件必须包含一个 namespace Model。
  3. 该文件必须有一个与文件同名的类。
  4. 该类必须从 Howl\Model 继承。
  5. 该类必须包含一个名为 table 的属性,其值必须是其代表数据库中表名的名称。

Model/Items.php

<?php
namespace Model;
use Howl\Model;

class Items extends Model{
  protected $table = "tbl_items";
}

app/index.php

<?php 
# this is how we create a new record using Howl-ORM
$item = new \Model\Items();
$item->name = "This is the name";
$item->description = "Lorem ipsum dolor sit...";
$item->save();

列表

$records = \Model\Items::search()->all();

更新

$item = \Model\Items::search()->byPk(1);
$item->name = "Name updated...";
$item->save();

删除

$item = \Model\Items::search()->byPk(1);
$item->delete();
# or
\Model\Items::search()->byPk(2)->delete();

比较

$records = \Model\Items::search()
                        ->equals("field1", "item1")
                        ->and()
                        ->equals("field2", 2)
                        ->get();