| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- namespace Illuminate\Database\Eloquent\Casts;
- class Attribute
- {
- /**
- * The attribute accessor.
- *
- * @var callable
- */
- public $get;
- /**
- * The attribute mutator.
- *
- * @var callable
- */
- public $set;
- /**
- * Indicates if caching is enabled for this attribute.
- *
- * @var bool
- */
- public $withCaching = false;
- /**
- * Indicates if caching of objects is enabled for this attribute.
- *
- * @var bool
- */
- public $withObjectCaching = true;
- /**
- * Create a new attribute accessor / mutator.
- *
- * @param callable|null $get
- * @param callable|null $set
- * @return void
- */
- public function __construct(?callable $get = null, ?callable $set = null)
- {
- $this->get = $get;
- $this->set = $set;
- }
- /**
- * Create a new attribute accessor / mutator.
- *
- * @param callable|null $get
- * @param callable|null $set
- * @return static
- */
- public static function make(?callable $get = null, ?callable $set = null): static
- {
- return new static($get, $set);
- }
- /**
- * Create a new attribute accessor.
- *
- * @param callable $get
- * @return static
- */
- public static function get(callable $get)
- {
- return new static($get);
- }
- /**
- * Create a new attribute mutator.
- *
- * @param callable $set
- * @return static
- */
- public static function set(callable $set)
- {
- return new static(null, $set);
- }
- /**
- * Disable object caching for the attribute.
- *
- * @return static
- */
- public function withoutObjectCaching()
- {
- $this->withObjectCaching = false;
- return $this;
- }
- /**
- * Enable caching for the attribute.
- *
- * @return static
- */
- public function shouldCache()
- {
- $this->withCaching = true;
- return $this;
- }
- }
|