propel / propel-laravel
Laravel 框架的 Propel 集成。
Requires
- php: >=5.5.9
- laravel/framework: 5.*
- propel/propel: ^2.0.0
This package is auto-updated.
Last update: 2024-09-06 13:55:33 UTC
README
为 Laravel 框架提供 Propel2 集成。仅支持 5.x 版本。4.x 版本可以在当前包的 初始开发者 的仓库中找到。
用法
首先:你需要理解,当前包正处于快速开发中。我们努力维护 1.* 分支的稳定性和测试性,因为 100 万名愤怒的开发者正在使用它,他们手持枪支。Propel2 看起来相当稳定,但仍在开发中,目前它要求你的安装必须具有至少 alpha
稳定性。打开你的 composer.json
文件,在 config
部分之后写入
"config": {
"preferred-install": "dist"
},
"minimum-stability": "alpha"
使用以下命令使用 composer 安装此包
composer require propel/propel-laravel
更新 composer 后,将 ServiceProviders 添加到 app/config/app.php
中的 providers 数组
Propel\PropelLaravel\PropelIntegrationServiceProvider::class,
下一步是将示例配置复制到你的 app/config
目录。
php ./artisan vendor:publish --provider 'Propel\PropelLaravel\RuntimeServiceProvider'
在提供的配置中:schema 文件位于 database/
文件夹中,模型生成到 app/models
,迁移到 app/database/migrations
你现在可以通过 artisan 使用 Propel 命令,例如
php ./artisan propel:model:build
等等。
对于新用户来说,有创建示例 schema.xml
文件的命令
php ./artisan propel:schema:create
如果你正在尝试在现有数据库上使用 Propel2 — 你可以使用 反向数据库 命令
php ./artisan propel:database:reverse mysql
从版本 2.0.0-alpha5 开始,在配置中有一个很棒的节点 exclude_tables
,它允许你在同一个数据库中混合不同的项目表。
小提示:你可以在 schema 中将所有生成模型的命名空间定义为数据库的属性
<database … namespace="MyApp\Models">
认证
该包包含 Auth 驱动绑定,允许存储用户信息并获取(Auth::getUser()
)当前登录用户作为 propel 模型。你需要在 config/auth.php
中更改两个设置
'driver' => 'propel', // custom auth provider implemented in current package
…
'model' => MyApp\Models\User::class, // classname of user entity
在创建 schema 和生成模型之后,你必须增强你的模型以实现所有 Laravel Auth 要求。通用用户模型看起来是这样的
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:config:convert
服务
不提供任何服务。
Propel 通过使用静态方法和它自己的服务容器来自配置和管理自己,因此没有服务被注册到 Application 中。实际上,GeneratorServiceProvider
类通过前缀 propel:
将 Propel 任务注入 artisan 任务列表中,RuntimeServiceProvider
类初始化 Propel 运行时配置
已知问题
- Cli 命令
propel:database:reverse
将反向 schema 文件保存到项目根目录 - 没有 schema 文件和初始用户创建命令,但它在我们的 路线图 中,并将很快到来
作者
第一版由 Alex Kazynsky 编写。现在由 Alexander Zhuralvev 和 Maxim Soloviev 维护。感谢每一位 作者!任何错误报告和拉取请求都受到欢迎!