mohdnazrul/laravel-propel

为 Laravel 框架集成的 Propel。

v1.6 2023-09-13 09:47 UTC

This package is auto-updated.

Last update: 2024-09-04 20:11:27 UTC


README

为 Laravel 框架集成的 Propel2。仅支持 5.x 版本。4.x 版本可以在当前包的初始开发者的仓库中找到。

用法

首先:您需要了解当前包处于开发阶段。我们试图保持 1.* 分支的稳定性和测试性,因为它被 100 万愤怒的开发者使用,他们手持枪械。Propel2 看起来相当稳定,但仍处于开发阶段,并且目前要求您的安装必须具有最小稳定性是 alpha。打开您的 composer.json 并在 config 节之后写入

"config": {
    "preferred-install": "dist"
},
"minimum-stability": "dev"

使用以下命令通过 composer 安装此包:

composer require mohdnazrul/propel-laravel

更新 composer 后,将 ServiceProviders 添加到 config/app.php 中的 providers 数组

Propel\PropelLaravel\PropelIntegrationServiceProvider::class,

下一步是将示例配置复制到您的 config 目录。

php ./artisan vendor:publish --provider 'Propel\PropelLaravel\RuntimeServiceProvider'

在提供的配置中:schemas 文件位于 database/ 文件夹中,模型生成于 app/models,迁移文件于 database/migrations

现在您可以通过 artisan 使用 Propel 命令,例如

php ./artisan propel:model:build

等等。

使用集成命令

对于 Propel 的新用户,有一个提供基本集成功能的命令,例如创建示例 schema.xml 文件

php ./artisan propel:laravel:init

手动集成

下面解释了集成命令的作用。

现有数据库

如果您正在尝试在现有数据库上使用 Propel2,则可以使用 反向数据库 命令

php ./artisan propel:database:reverse

从版本 2.0.0-alpha5 开始,配置中有一个很棒的节点 exclude_tables,它允许您在一个数据库中混合不同的项目表。

小贴士:您可以将 schema 中所有生成模型的命名空间定义为数据库的属性

<database … namespace="MyApp\Models">

身份验证

该包包含身份验证驱动绑定,允许将用户信息存储为 propel 模型并检索(Auth::getUser())当前登录用户。您需要在 config/auth.php 中更改两个设置

'driver' => 'propel', // custom auth provider implemented in current package
…
'model' => MyApp\Models\User::class, // classname of user entity

在创建模式和生成模型之后,您必须增强模型以实现所有 Laravel 身份验证要求。通用的用户模型如下所示

use MyApp\Models\Base\User as BaseUser;
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends BaseUser implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword;

    public function getAuthIdentifier()
    {
        return $this->id;
    }
}

静态配置

默认情况下,它从运行时的主配置 config/propel.php 构建配置,但您可以通过运行以下命令构建静态配置 config/propel/config.php

php ./artisan propel:config:convert

服务

没有提供服务。

Propel 通过使用静态方法和自己的服务容器来自动配置和管理自己,因此没有服务注册到应用程序中。

升级指南

docs 文件夹中有一个升级指南。

已知问题

  • 尚无创建初始用户和命令的 schema 文件,但它在我们的 路线图 中,并将很快到来

作者

第一版由 Alex Kazynsky 编写。现在由 Alexander ZhuralvevMaxim Soloviev 维护。非常感谢每一位 作者!任何错误报告和 pull 请求都受欢迎!

另请参阅

让 Propel 模型与 Laravel Form::model() 兼容,无需将其转换为数组