redcrystal/cast
最新稳定版本:v1.0.3
Composer 安装命令:
composer require redcrystal/cast
包简介
Laravel Value Objects: Cast your Eloquent model attributes to value objects with ease!
README 文档
README
Cast your Eloquent model attributes to value objects with ease!
Requirements
This package requires PHP >= 5.4. Using the latest version of PHP is highly recommended. Laravel 4.x and 5.x are supported.
Note: Running tests for this package requires PHP >=5.6.
Install
Require this package with composer using the following command:
composer require redcrystal/cast
Set Up
This package lets you easily cast your model attributes to Value Objects that implement our RedCrystal\Cast\ValueObject interface. A simple example is provided below.
<?php namespace App\ValueObjects; use RedCrystal\Cast\ValueObject; class Email implements ValueObject { protected $value; public function __construct($value) { $this->value = $value; } public function toScalar() { return $this->value; } public function __toString() { return $this->toScalar(); } }
Set up your model by using the included Trait and adding a tiny bit of configuration.
<?php namespace App; use App\ValueObjects\Email; use Illuminate\Database\Eloquent\Model; use RedCrystal\Cast\CastsValueObjects; class User extends extends Model { use CastsValueObjects; protected $objects = [ // name of the attribute => name of the value object class 'email' => Email::class ]; // ... }
Usage
When accessing attributes of your model normally, any attribute you've set up for casting will be returned as an instance of the Value Object.
$user = User::find($id); $user->email; // returns instance of App\ValueObjects\Email $user->email->toScalar(); // "someone@example.com" (string) $user->email; // "someone@example.com"
You can set an attribute set up for casting with either a scalar (native) value, or an instance of the Value Object.
$user = new User(); $user->email = "someone@example.com"; $user->email = new Email("someone@example.com");
License
This package is open-source software licensed under the MIT license.
统计信息
- 总下载量: 22.98k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 23
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-11-23