scif / propel-laravel
Requires
- php: >=5.5.9
- laravel/framework: 5.*
- propel/propel: ~2.0.0-alpha5
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 Zhuralvev和Maxim Solovyev维护。感谢每一位作者!欢迎提交任何错误报告和拉取请求!