LINUX.ORG.RU

История изменений

Исправление 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);

Вот такой подход мне нравиться. Когда из модели не делают интерфейса для работы с ресурсом.