folded/orm

为您的Web应用程序提供的独立Eloquent ORM。

v0.2.2 2020-10-12 19:26 UTC

This package is auto-updated.

Last update: 2024-09-17 16:45:51 UTC


README

为您的Web应用程序提供的独立Eloquent ORM。

Packagist License Packagist PHP Version Support Packagist Version Build Status Maintainability TODOs

摘要

关于

提供独立包,以最小配置在您的Web应用程序中使用Eloquent模型。

Folded是一组包,可以帮助您轻松设置Web应用程序,使用即插即用的包。

功能

  • 提供Laravel的Eloquent的所有功能
  • 延迟加载引擎,如果请求未调用eloquent方法,则永远不会启动
  • 仅在需要时启用Eloquent事件

要求

安装

1. 安装包

在您的根目录中,运行此命令

composer require folded/orm

2. 添加数据库连接

在您使用Eloquent模型之前调用此方法,以提供您的数据库连接信息

use function Folded\addDatabaseConnection;

addDatabaseConnection([
  "driver" => "mysql",
  "host" => "localhost",
  "username" => "root",
  "password" => "root",
]);

您可以在示例[请在此处放置示例]中查看完整的选项列表。

3. 创建您的模型文件

在任何您想要的地方,创建一个类来映射您的表。

namespace App;

use Folded\Model;

class Post extends Model
{
  //
}

示例

由于此库依赖于Eloquent,您可以在官方文档中找到有关此ORM所有功能的丰富信息。

1. 从您的模型获取所有数据

在这个示例中,我们将使用我们的Post类来获取所有帖子。

use App\Post;

$posts = Post::all();

foreach ($posts as $post) {
  echo "{$post->title}: {$post->excerpt}";
}

2. 向数据库连接添加更多信息

在这个示例中,我们将看到可以设置在数据库连接上的完整键列表。

use function Folded\addDatabaseConnection;

addDatabaseConnection([
  "driver" => "mysql",
  "host" => "localhost",
  "database" => "my-blog",
  "username" => "root",
  "password" => "root",
  "charset" => "utf8mb4",
  "collation" => "utf8mb4_general_ci",
  "prefix" => "wp_",
]);

3. 启用/禁用Eloquent事件

在这个示例中,我们将启用,然后禁用Eloquent事件系统。有关更多信息,请参阅官方文档

use function Folded\enableEloquentEvents;
use function Folded\disableEloquentEvents;

enableEloquentEvents();
disableEloquentEvents();

4. 在分页之前转到特定页面

在这个示例中,我们将指示分页器在分页之前转到某个页面。由于我们不在Laravel中,这是必要的,以便根据浏览的页面正确返回项目。

$posts = Post::toPage(2)->paginate(15);

页码应该来自查询字符串,例如当用户浏览 /post?page=2 时。

然而,由于技术原因,我在调用eloquent方法之后无法找到提供相同方法的方式。这意味着以下代码将无法工作

$posts = Post::where("author", "foo")->toPage(2)->paginate(15);

为了解决这个问题,请使用 ->paginate() 的详细版本

$posts = Post::where("author", "foo")->paginate(15, ["*"], "page", 2); // 2 is the page number

版本支持

鸣谢

没有Matt Stauffer的出色工作,这个库就不会问世。[Torch](https://github.com/mattstauffer/Torch)。

Torch是一个项目,旨在为在非Laravel应用程序中使用Illuminate组件(包括Eloquent)提供指导和示例。

给这位先生一杯冰啤酒,[对这个伟大的想法](https://github.com/mattstauffer/Torch) 点一个赞,并关注他的Twitter [@stauffermatt](https://twitter.com/stauffermatt)!