MVC
MVC, (*1)
, (*2)
, (*3)
Installing via Composer
The recommended way to install MVC is through Composer., (*4)
{
"require": {
"zortje/mvc": "~0.0"
}
}
Setup
Database, (*5)
Init Phinx with phinx.yml
and run migration to create user tables., (*6)
Webroot, (*7)
The NGINX server block root should point to the webroot folder where the index.php file should be, along with any files that should be directly accessible from the web browser., (*8)
Documentation
Controller
Model
The model is devided into two classes; Table and Entity., (*9)
Table
A table must extend the Table class and contain a property for tableName
which is the database table name and entityClass
which is the entity class name., (*10)
class UserTable extends Zortje\MVC\Model\Table\Table
{
protected $tableName = 'users';
protected $entityClass = User::class;
}
Entity
A entity must extend the Entity class and contain a property for columns., (*11)
The columns are defined with the table column name as the key and data type for value, the type can be either string
, int
, float
, double
, bool
, date
or datetime
., (*12)
A optional "convenience" constructor can be added to the class to class to ease the creation of the entity object., (*13)
class User extends Zortje\MVC\Model\Table\Entity
{
protected static $columns = [
'email' => EntityProperty::STRING,
'password_hash' => EntityProperty::STRING,
];
public function __construct(string $email, string $passwordHash)
{
parent::__construct(null, new \DateTime(), new \DateTime());
$this->set('email', $email);
$this->set('password_hash', $passwordHash);
}
}