Mikmak Model Category
De model klasse voor de Category entiteit.
Probleem
Bij het toevoegen of wijzigen van een categorie zijn er enkele regels waarmee we rekening moeten houden. De validatie hiervan gebeurt in deze Model
klasse in de setters.
Design
We baseren ons daarvoor op Mikmak logisch model van de Category entiteit. Bij het maken van het model moet je enkele afspraken volgen:
- de namespace moet overeenkomen met de overeenkomst die je gelegd hebt tussen namespace en pad in het autoload_psr4.php bestand;
- fields moeten in de zelfde volgorde staan als in het logisch model;
- fields moeten dezelfde naam hebben als de naam in de Column Name kolom, maar in camelcase notatie;
- fields die geïnserted of geüpdated moeten worden hebben een
private
access modifier, andere hebben eenprotected
access modifier; - de model klasse erft over van de Threepenny MVC
Model
klasse; deze klasse heeft twee velden met eenprotected
access modifier omdat die niet geïnserted of geüpdated moeten worden:protected $modelState
: is een prikbord waarop berichten geplaatst kunnen worden;protected $list
: is een lijst waarin alle rijen uit de entiteit worden opgeslagen;
- de model klasse staat in een bestand met de naam Category.php in de map vendor/modernways/webshop/src;
Oplossing
<?php /** * Created by PhpStorm. * User: Jef Inghelbrecht * Date: 25/01/2016 * Time: 21:48 */ namespace ModernWays\Webshop\Model; class Category extends \ModernWays\Mvc\Model { private $name; private $description; private $id; /** * @return mixed */ public function getName() { return $this->name; } /** * @param mixed $name */ public function setName($name) { if($this->validRequired($name, "Name")) { $this->name = $name; } } /** * @return mixed */ public function getDescription() { return $this->description; } /** * @param mixed $description */ public function setDescription($description) { $this->description = $description; } /** * @return mixed */ public function getId() { return $this->id; } /** * @param mixed $id */ public function setId($id) { $this->id = $id; } }
2016-02-01 20:38:29