Mikmak PHP
Home

Mikmak PHP

Mikmak PHP

Om een complexe app te maken is het een goed idee met componenten te werken. Elke component staat in voor het volbrengen van een specifieke taak. De Webshop app gebruikt vier componenten die we gaan aanduiden met hun respectievelijke namespaces:

  1. ModernWays\Dialog
  2. ModernWays\Mvc
  3. ModernWays\AnOrmApart
  4. ModernWays\Webshop

Componenten installeren

De eerste drie componenten kan je downloaden van de Packagist website. Deze componenten gebruik je ad hoc. Je hoeft die niet te wijzigen. De vierde component, de eigenlijke webshop, maken we zelf en kunnen we dus niet van Packagist downloaden.

De component Dialog installeren

De component AnOrmApart installeren

De component Threepenny MVC installeren

De Webshop app aan je project toevoegen

De mappenstructuur

Het Webshop project volgt de regels voor een Composer component. De code wordt in een vendor/modernways/webshop/src map geplaatst. Dus het pad volgt de conventie van Composer vendor/naam van de vendor/naam van de component/src.

Threepenny MVC en An Orm Apart zijn gebaseerd op het concept van de overeenkomst boven de configuratie waar mogelijk. Dit betekent dat, in plaats van te vertrouwen op expliciete configuratie-instellingen, Threepenny MVC en An Orm Apart gewoon ervan uit gaan dat de ontwikkelaars bepaalde conventies zullen volgen bij het bouwen van hun applicaties. De folderstructuur voor Threepenny MVC en An Orm Apart project is een goed voorbeeld van het gebruik van de conventie eerder dan de configuratie. Er zijn drie speciale mappen in het project die overeenkomen met de elementen van het MVC patroon: de Controller, Model, en View mappen. En er is één map met de naam Dal die past in het n-tier patroon van An Orm Apart. Het is in één oogopslag duidelijk wat elk van deze mappen bevat. De figuur De structuur van een Threepenny MVC en An Orm Apart projectfolder is heel duidelijk.

PHP Mikmak mappenstructuur
PHP Mikmak mappenstructuur

Composer autoload pad instellen

De drie componenten die je met Packagist geïnstalleerd hebt worden automatisch aan het zoekpad voor autoload toegevoegd. Voor de Webshop app moet je zelf opgeven welke namespace overeenkomt met welk pad. Dat doe je in het bestand Webwinkel\vendor\composer\autoload_psr4.php:

<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
    'ModernWays\\Mvc\\' => array($vendorDir . '/modernways/mvc/src'),
    'ModernWays\\Dialog\\' => array($vendorDir . '/modernways/dialog/src'),
    'ModernWays\\AnOrmApart\\' => array($vendorDir . '/modernways/anormapart/src'),
    'ModernWays\\Webshop\\' => array($vendorDir . '/modernways/webshop/src'),
);

Als de componenten met Packagist opnieuw installeert of updatet moet je deze regel opnieuw toevoegen.

Een MVC app maken

Als voorbeeld gebruiken we de entitiet Category.

  1. Model
    1. Mikmak Model Category
  2. View
    1. PHP Mikmak View Category ReadingAll pagina
    2. PHP Mikmak View Category Editing pagina
    3. PHP Mikmak View Category ReadingOne View
    4. PHP Mikmak View Category CreatingOne pagina
    5. PHP Mikmak View Category UpdatingOne View
  3. Dal
    1. PHP Mikmak Category DAL
  4. Controller
    1. PHP Mikmak Category Controller

Paragraaf

JI
2016-01-31 22:04:26