adiliogobira / datalayer
数据层是您的数据库中一个持久的抽象组件,PDO已为其准备了执行常见操作(如注册、读取、编辑和删除数据)的指令。
1.1.7
2020-07-02 17:10 UTC
Requires
- php: ^7.2
- ext-pdo: *
This package is auto-updated.
Last update: 2024-09-29 05:55:56 UTC
README
数据层是您的数据库中一个持久的抽象组件,PDO已为其准备了执行常见操作(如注册、读取、编辑和删除数据)的指令。
数据层是您数据库中用于持久化的抽象组件,它使用PDO的预编译语句来执行常见操作,如注册、读取、编辑和删除数据。
关于CoffeeCode
CoffeeCode是一组小型且优化的PHP组件,用于常见任务。由Robson V. Leite和UpInside团队维护。与他们一起,您可以以更少的代码执行日常任务,写出更少的代码,做更多的事情。
CoffeeCode是一组小型且优化的PHP组件,用于常见任务。由Robson V. Leite和UpInside团队维护。与他们一起,您可以以更少的代码执行日常任务,写出更少的代码,做更多的事情。
亮点
- 易于设置(简单配置)
- 完整的CRUD抽象(CRUD完全抽象)
- 创建安全模型(创建安全模型)
- Composer就绪(Composer准备就绪)
- PSR-2兼容(PSR-2兼容)
安装
数据层通过Composer提供
"coffeecode/datalayer": "^1.0"
或运行
composer require coffeecode/datalayer
文档
有关如何使用数据层的详细信息,请参阅组件目录中的示例文件夹
有关如何使用数据层的更多详细信息,请参阅组件目录中的示例文件夹
连接
######要开始使用数据层,您需要连接到数据库(MariaDB / MySql)。有关更多连接,请参阅PHP.net上的PDO连接手册
######要开始使用数据层,我们需要连接到您的数据库。有关可能的连接,请访问PHP.net上的PDO连接手册
define("DATA_LAYER_CONFIG", [ "driver" => "mysql", "host" => "localhost", "port" => "3306", "dbname" => "datalayer_example", "username" => "root", "passwd" => "", "options" => [ PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ, PDO::ATTR_CASE => PDO::CASE_NATURAL ] ]);
您的模型
######数据层基于MVC结构,采用Layer Super Type和Active Record设计模式。要使用它,需要创建您的表模型并继承数据层。
数据层基于MVC结构,采用Layer Super Type和Active Record设计模式。要使用它,需要创建您的表模型并继承数据层。
class User extends DataLayer { /** * User constructor. */ public function __construct() { //string "TABLE_NAME", array ["REQUIRED_FIELD_1", "REQUIRED_FIELD_2"], string "PRIMARY_KEY", bool "TIMESTAMPS" parent::__construct("users", ["first_name", "last_name"]); } }
查找
<?php use Example\Models\User; $model = new User(); //find all users $users = $model->find()->fetch(true); //find all users limit 2 $users = $model->find()->limit(2)->fetch(true); //find all users limit 2 offset 2 $users = $model->find()->limit(2)->offset(2)->fetch(true); //find all users limit 2 offset 2 order by field ASC $users = $model->find()->limit(2)->offset(2)->order("first_name ASC")->fetch(true); //looping users foreach ($users as $user) { echo $user->first_name; } //find one user by condition $user = $model->find("first_name = :name", "name=Robson")->fetch(); echo $user->first_name;
findById
<?php use Example\Models\User; $model = new User(); $user = $model->findById(2); echo $user->first_name;
count
<?php use Example\Models\User; $model = new User(); $count = $model->find()->count();
保存创建
<?php use Example\Models\User; $user = new User(); $user->first_name = "Robson"; $user->last_name = "Leite"; $userId = $user->save();
保存更新
<?php use Example\Models\User; $user = (new User())->findById(2); $user->first_name = "Robson"; $userId = $user->save();
销毁
<?php use Example\Models\User; $user = (new User())->findById(2); $user->destroy();
失败
<?php use Example\Models\User; $user = (new User())->findById(2); if($user->fail()){ echo $user->fail()->getMessage(); }
贡献
有关详细信息,请参阅CONTRIBUTING
支持
安全:如果您发现任何安全问题,请通过cursos@upinside.com.br发送电子邮件,而不是使用问题跟踪器。
如果您发现任何安全问题,请通过cursos@upinside.com.br发送电子邮件,而不是使用问题跟踪器。
谢谢
鸣谢
- Robson V. Leite(开发者)
- UpInside Treinamentos(团队)
- 所有贡献者(这个团队)
许可
麻省理工学院许可证(MIT)。请参阅许可文件获取更多信息。