DavidMPeace / immutability
一个简单的Laravel包,允许您在Eloquent模型上强制执行不可变属性。
0.2
2016-04-22 17:23 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 not auto-updated.
Last update: 2024-09-26 00:19:53 UTC
README
Immutability是一个简单的包,用于在Eloquent模型上强制执行属性不可变。不可变属性可以被设置和更改一次,但一旦模型被保存,值就不能再更改。
许可证
Immutability是开源软件,根据MIT许可证授权。
安装
要开始使用Immutability,将以下依赖项添加到您的composer.json
文件中
composer require davidmpeace/immutability
基本用法
要使用Immutability库,您只需要为任何希望标识不可变属性的模型使用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 }