repat / 不可变
一个简单的基于davidmpeace/immutability的Laravel包,允许您在Eloquent模型上强制不可变属性。
0.3
2018-10-26 13:36 UTC
Requires
- php: >=5.4.0
- illuminate/support: 4.*|5.*
Requires (Dev)
- illuminate/database: 4.*|5.*
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-20 08:32:43 UTC
README
repat/immutability 是一个基于 davidmpeace/immutability 的简单包,用于在您的 Eloquent 模型中强制属性不可变。不可变属性只有在它们 != null
时才能设置,但一旦模型被保存,值就不能更改。
许可证
不可变是开源软件,许可协议为 MIT 许可协议
安装
要开始使用不可变,请在 composer.json
文件中将它添加为依赖项
$ composer require davidmpeace/immutability
基本用法
要使用不可变库,您只需为任何希望标识不可变属性的模型使用不可变特质。通常,您会希望在超级类中实现特质,以便所有子类都能自动继承该功能。
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Eloquent\Attributes\Immutability; class MyAppSuperModel extends Model { use Immutability; protected $immutable = ['id', 'uuid']; }
类覆盖。
<?php namespace App; class User extends MyAppSuperModel { protected $immutable = ['id', 'uuid', 'username']; }
捕获异常
<?php namespace App; use Eloquent\Attributes\Exceptions\ImmutableFieldViolationException; use Exception; $user = User::find(1); try { $user->username = "myNewUserName"; $user->save(); } catch ( ImmutableFieldViolationException $e ) { // Handle immutable attribute violation error } catch ( Exception $e ) { // Handle error }