scif/propel-laravel

此包已被废弃,不再维护。作者建议使用propel/propel-laravel包代替。

为Laravel框架提供Propel集成。

v1.2 2015-07-12 16:31 UTC

This package is auto-updated.

Last update: 2022-02-01 12:46:33 UTC


README

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

使用方法

首先:您需要了解当前包正在经历快速开发。我们试图保持1.*分支的稳定性和测试性,因为1M愤怒的开发者正在使用它,他们有枪。Propel2看起来相当稳定,但仍处于开发中,并且目前它要求您的安装至少具有alpha级别的稳定性。打开您的composer.json并在config部分之后写入

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

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

composer require propel/propel-laravel

更新composer后,将服务提供者添加到app/config/app.php中的提供者数组

Propel\PropelLaravel\GeneratorServiceProvider::class,
Propel\PropelLaravel\RuntimeServiceProvider::class,

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

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

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

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

php ./artisan propel:model:build

等等。

对于Propel的新用户,有创建示例schema.xml文件的命令

php ./artisan propel:create-schema

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

php ./artisan propel:database:reverse mysql

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

小贴士:您可以在模式中定义所有生成模型的命名空间,就像数据库的属性一样

<database … namespace="MyApp\Models">

身份验证

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

'driver' => 'propel', // custom auth provider implemented in current package
…
'model' => 'MyApp\Models\User', // 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;
    }
}

静态配置

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

php ./artisan propel:convert-conf

服务

没有提供服务。

Propel通过使用静态方法和它自己的服务容器来自配置和管理自己,因此没有在应用程序中注册服务。实际上,GeneratorServiceProvider类将Propel任务注入到Artisan任务列表中,前缀为propel:RuntimeServiceProvider类初始化Propel运行时配置

已知问题

  • Cli命令propel:database:reverse将反转的架构文件保存到项目根目录
  • 没有架构文件和初始用户创建的命令,但它在我们的路线图中,并将很快到来

作者

第一个版本由Alex Kazynsky编写。现在由Alexander ZhuralvevMaxim Solovyev维护。感谢每一位作者!欢迎提交任何错误报告和拉取请求!

另请参阅

让Propel模型与Laravel Form::model()一起工作,而不将其作为数组