zortje / mvc
MVC
Requires
- php: >=7.0
- lcobucci/jwt: ~3.0
- monolog/monolog: ~1.0
- ramsey/uuid: ~3.0
Requires (Dev)
- phpmd/phpmd: ~2.0
- phpunit/dbunit: ~2.0
- phpunit/phpunit: ~5.0
- squizlabs/php_codesniffer: ~2.0
This package is not auto-updated.
Last update: 2024-10-26 18:06:29 UTC
README
MVC
Installing via Composer
The recommended way to install MVC is through Composer.
{ "require": { "zortje/mvc": "~0.0" } }
Setup
Database
Init Phinx with phinx.yml
and run migration to create user tables.
Webroot
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.
Documentation
Controller
Model
The model is devided into two classes; Table and Entity.
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.
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.
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
.
A optional "convenience" constructor can be added to the class to class to ease the creation of the entity object.
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);
}
}