История изменений
Исправление Razip, (текущая версия) :
<?php
class Model {
public function import(array $fields) {
foreach ($fields as $key => $value) {
property_exists($this, $key) && $this->$key = $value;
}
}
public function export() {
return get_object_vars($this);
}
}
class User extends Model {
protected $id;
protected $name;
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
return $this;
}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
return $this;
}
public function validate() {
if (!is_int($this->id)) {
return false;
}
if (!is_string($this->name)) {
return false;
}
return true;
}
}
$user = new User();
$user->import(['id' => 1, 'name' => 'Razip']);
var_dump($user);
Вот такой подход мне нравиться. Когда из модели не делают интерфейса для работы с ресурсом.
Исходная версия Razip, :
<?php
class Model {
public function import(array $fields) {
foreach ($fields as $key => $value) {
property_exists($this, $key) && $this->$key = $value;
}
}
public function export() {
return get_object_vars($this);
}
}
class User extends Model {
protected $id;
protected $name;
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
return $this;
}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
return $this;
}
public function validate() {
if (!is_int($this->id)) {
return false;
}
if (!is_string($this->name)) {
return false;
}
return true;
}
}
$user = new User();
$user->import(['id' => 1, 'name' => 'Razip']);
var_dump($user);
Вот такой подход мне нравиться. Когда из модели не делают интерфейса для работы с ресурсом.