<?php
namespace SHServ\Helpers;
trait GetSetImplementation {
protected Array $data = [];
protected Array $modified_fields = [];
public function to_array(): Array {
return $this -> data;
}
public function get(String $field_name) {
if(in_array($field_name, static::$fields)) {
return $this -> data[$field_name];
}
throw new \Exception("Error of GET, field `{$field_name}` not found");
}
public function set(String $field_name, $field_val) {
if(!in_array($field_name, static::$fields)){
throw new \Exception("Error of SET, field `{$field_name}` not found");
}
$this -> data[$field_name] = $field_val;
$this -> modified_fields[$field_name] = $field_val;
return $this;
}
public function __get($field_name) {
return $this -> get($field_name);
}
public function __set($field_name, $field_val) {
return $this -> set($field_name, $field_val);
}
}