mohdnazrul / laravel-propel
为 Laravel 框架集成的 Propel。
Requires
- php: >=8.0
- laravel/framework: 10.*
- propel/propel: ^2.0.0-beta3
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 Zhuralvev 和 Maxim Soloviev 维护。非常感谢每一位 作者!任何错误报告和 pull 请求都受欢迎!