propel/propel-laravel
Composer 安装命令:
composer require propel/propel-laravel
包简介
Propel integration for Laravel framework.
README 文档
README
Propel2 integration for Laravel framework. Only 5.x versions supported. 4.x version can be found in repo of initial developer of current package.
Usage
First of all: you need to understand that current package is in heavy development.
We try to maintain 1.* branch as stable and tested as it used by 1M of angry developers, which have guns.
Propel2 seems pretty stable, but still in development and currently it require that your
installation must have minimum stability is alpha. Open your composer.json
and write after config section:
"config": {
"preferred-install": "dist"
},
"minimum-stability": "alpha"
Require this package with composer using the following command:
composer require propel/propel-laravel
After updating composer, add the ServiceProviders to the providers array in app/config/app.php
Propel\PropelLaravel\PropelIntegrationServiceProvider::class,
Next step is copy example config to your app/config directory.
php ./artisan vendor:publish --provider 'Propel\PropelLaravel\RuntimeServiceProvider'
Within provided config: schemas files are located into database/ folder,
models are generated into app/models, migrations into app/database/migrations
You can now use Propel commands via artisan, for example:
php ./artisan propel:model:build
etc.
For new users of propel there is command creating sample schema.xml file:
php ./artisan propel:schema:create
If you are trying Propel2 on existing database — you can use reverse database command:
php ./artisan propel:database:reverse mysql
Since version 2.0.0-alpha5 there is awesome config node exclude_tables in config,
which allows you to mix different project tables in one database.
Small hint: you can define namespace of all generated models in schema just as attribute of database:
<database … namespace="MyApp\Models">
Auth
Package contains Auth driver binding which allows to store user info and fetch (Auth::getUser()) current logged in user as propel model. You need to change two settings in config/auth.php:
'driver' => 'propel', // custom auth provider implemented in current package
…
'model' => MyApp\Models\User::class, // classname of user entity
After schema creating and model generation you must enhance your model to implement all laravel Auth requirements. Generic user model seems so:
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;
}
}
Static Configuration
By default it builds configuration from main config app/config/propel.php in runtime but you may build static config app/propel/config.php by running
php ./artisan propel:config:convert
Services
No service is provided.
Propel configures and manages itself by using static methods and its own service container, so no service is registered into Application.
Actually, the GeneratorServiceProvider class injects Propel tasks into artisan tasks list with prefix propel:
RuntimeServiceProvider class initializes Propel runtime configuration
Known issues
- Cli command
propel:database:reversesave reversed schema file to root of project - There isn't schema file and command for initial user creation, but it's in our roadmap and will arrive soon
Authors
First version written by Alex Kazynsky. Now maintained by Alexander Zhuralvev and Maxim Soloviev. Thanks a lot to each author! Any bug reports and pull requests are appreciated!
See also
Make Propel models work with Laravel Form::model() without making it an array
propel/propel-laravel 适用场景与选型建议
propel/propel-laravel 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 14.33k 次下载、GitHub Stars 达 31, 最近一次更新时间为 2015 年 08 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「orm」 「propel」 「Active Record」 「activerecord」 「laravel」 「propel2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 propel/propel-laravel 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 propel/propel-laravel 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 propel/propel-laravel 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Propel2 is an open-source Object-Relational Mapping (ORM) for PHP 5.5 and up.
Kinikit - PHP Application development framework MVC component
A Symfony extension to get active class base on current bundle/controller/action
PHP Database ORM for Symfony1. Do NOT use for new projects: please move to a newest Symfony release and Doctrine2
LDAP user provider bundle for Symfony 6.4
The helper class for Laravel applications to get active class base on current route for Laravel 11
统计信息
- 总下载量: 14.33k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 32
- 点击次数: 18
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-08-08