Change Accessor from class to trait

This commit is contained in:
Alex Cabal 2024-05-04 13:07:03 -05:00
parent 10bea9ad9e
commit 41dd9db4aa
13 changed files with 43 additions and 24 deletions

View file

@ -8,7 +8,9 @@ use Safe\DateTimeImmutable;
* @property array<string> $AlternateNames
* @property array<string> $_AlternateNames
*/
class Artist extends Accessor{
class Artist{
use Traits\Accessor;
public ?int $ArtistId = null;
public ?string $Name = null;
public ?DateTimeImmutable $Created = null;
@ -16,7 +18,7 @@ class Artist extends Accessor{
protected ?int $_DeathYear = null;
protected ?string $_UrlName = null;
protected ?string $_Url = null;
protected $_AlternateNames;
protected array $_AlternateNames;
// *******
// SETTERS

View file

@ -25,7 +25,9 @@ use function Safe\preg_replace;
* @property User $Submitter
* @property User $Reviewer
*/
class Artwork extends Accessor{
class Artwork{
use Traits\Accessor;
public ?string $Name = null;
public ?int $ArtworkId = null;
public ?int $ArtistId = null;

View file

@ -3,7 +3,9 @@ use function Safe\parse_url;
use function Safe\preg_match;
use function Safe\preg_replace;
class Museum extends Accessor{
class Museum{
use Traits\Accessor;
public int $MuseumId;
public string $Name;
public string $Domain;

View file

@ -5,7 +5,9 @@ use Safe\DateTimeImmutable;
* @property User $User
* @property string $Url
*/
class NewsletterSubscription extends Accessor{
class NewsletterSubscription{
use Traits\Accessor;
public bool $IsConfirmed = false;
public bool $IsSubscribedToSummary = false;
public bool $IsSubscribedToNewsletter = false;

View file

@ -4,7 +4,9 @@ use Safe\DateTimeImmutable;
/**
* @property User $User
*/
class Patron extends Accessor{
class Patron{
use Traits\Accessor;
public ?int $UserId = null;
protected $_User = null;
public bool $IsAnonymous;

View file

@ -4,7 +4,9 @@ use Safe\DateTimeImmutable;
/**
* @property User $User
*/
class Payment extends Accessor{
class Payment{
use Traits\Accessor;
public int $PaymentId;
public ?int $UserId = null;
public DateTimeImmutable $Created;

View file

@ -10,7 +10,9 @@ use function Safe\usort;
* @property array<PollItem> $PollItemsByWinner
* @property int $VoteCount
*/
class Poll extends Accessor{
class Poll{
use Traits\Accessor;
public int $PollId;
public string $Name;
public string $UrlName;

View file

@ -3,7 +3,9 @@
* @property int $VoteCount
* @property Poll $Poll
*/
class PollItem extends Accessor{
class PollItem{
use Traits\Accessor;
public int $PollItemId;
public int $PollId;
public string $Name;

View file

@ -6,7 +6,9 @@ use Safe\DateTimeImmutable;
* @property PollItem $PollItem
* @property string $Url
*/
class PollVote extends Accessor{
class PollVote{
use Traits\Accessor;
public ?int $UserId = null;
public DateTimeImmutable $Created;
public ?int $PollItemId = null;

View file

@ -8,7 +8,9 @@ use function Safe\strtotime;
* @property User $User
* @property string $Url
*/
class Session extends Accessor{
class Session{
use Traits\Accessor;
public int $UserId;
protected ?User $_User = null;
public DateTimeImmutable $Created;

View file

@ -2,7 +2,9 @@
/**
* @property string $Url
*/
class Tag extends Accessor{
class Tag{
use Traits\Accessor;
public int $TagId;
public string $Name;
public string $UrlName;

View file

@ -1,9 +1,8 @@
<?
abstract class Accessor{
/**
* @return mixed
*/
public function __get(string $var){
namespace Traits;
trait Accessor{
public function __get(string $var): mixed{
$function = 'Get' . $var;
$privateVar = '_' . $var;
@ -29,11 +28,7 @@ abstract class Accessor{
}
}
/**
* @param mixed $val
* @return mixed
*/
public function __set(string $var, $val){
public function __set(string $var, mixed $val): void{
$function = 'Set' . $var;
$privateVar = '_' . $var;

View file

@ -3,12 +3,14 @@ use Ramsey\Uuid\Uuid;
use Safe\DateTimeImmutable;
/**
* @property Array<Payment> $Payments
* @property array<Payment> $Payments
* @property ?bool $IsRegistered
* @property Benefits $Benefits
* @property ?array<Payment> $_Payments
*/
class User extends Accessor{
class User{
use Traits\Accessor;
public int $UserId;
public ?string $Name = null;
public ?string $Email = null;