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 允许您使用连接和分组等子句过滤记录,结果可以排序、限制和计数。
如何安装和初始化
- 下载 Howl-ORM 作为 zip 文件并将其解压缩到您的项目库文件夹中。
- 从 Howl-ORM 软件包中要求 HowlAutoload.php 文件。
- 初始化 Howl 自动加载。
- 实例化 Howl 数据库管理器。
- 加载数据库驱动程序。
<?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 函数您可以获取数据库管理器的唯一实例并执行自定义查询(如果需要)。
映射您的表(模型)
映射您的数据库表非常简单。
- 在名为 model 的目录中创建一个名为表名的文件(我建议您使用 PascalCase 命名您的模型)。
- 该文件必须包含一个 namespace Model。
- 该文件必须有一个与文件同名的类。
- 该类必须从 Howl\Model 继承。
- 该类必须包含一个名为 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();