adiliogobira/datalayer

数据层是您的数据库中一个持久的抽象组件,PDO已为其准备了执行常见操作(如注册、读取、编辑和删除数据)的指令。

1.1.7 2020-07-02 17:10 UTC

This package is auto-updated.

Last update: 2024-09-29 05:55:56 UTC


README

Maintainer Source Code PHP from Packagist Latest Version Software License Build Quality Score Total Downloads

数据层是您的数据库中一个持久的抽象组件,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发送电子邮件,而不是使用问题跟踪器。

谢谢

鸣谢

许可

麻省理工学院许可证(MIT)。请参阅许可文件获取更多信息。