Leren

Het is gemakkelijk om met een nieuw project aan de slag te gaan

Installatie

Zorg eerst dat je Composer! hebt. Installeer vervolgens 'Bone MVC'

composer create-project delboy1978uk/boneframework your/path/here

als je Composer niet wereldwijd hebt geïnstalleerd ...

php composer.phar create-project delboy1978uk/boneframework your/path/here

Docker development box

Bot wordt geleverd met een docker-compose.yml in het project, dus u kunt het meteen een dev-server laten draaien als je Docker gebruikt (Getest met een standaard VirtualBox VM). Voeg dit gewoon toe aan uwhosts bestand
awesome.scot 192.168.99.100

docker-machine start eval $(docker-machine env) cd /path/to/project docker-compose up

Vervolgens hebt u toegang tot de site op https://awesome.scot in uw browser. Als u docker niet gebruikt, kunt u dit natuurlijk op de gebruikelijke manier aan uw LAMP-stack toevoegen.

Configureren

U ziet een map config, data, public en src. Laat de leveranciersmap staan, dat is waar Composer projectafhankelijkheden installeert.

Maak de datamap schrijfbaar. 777 geeft iedereen schrijftoegang, dus plaats het in 775 met uw Apache-gebruiker in de groep.

chmod -R 775 data

Stel in uw Apache virtuele hosts de documentroot in als de openbare map

<VirtualHost *:80> DocumentRoot "/var/www/public" ServerName awesome.scot SetEnv APPLICATION_ENV development <Directory "/var/www/"> DirectoryIndex index.php FallbackResource /index.php Options -Indexes +FollowSymLinks AllowOverride all Require all granted </Directory> </VirtualHost>

De configuratiemap

U kunt een willekeurig aantal .php bestanden in de config/ map. Zorg ervoor dat ze een array retourneren met de config. U kunt configuratie overschrijven op basis van omgevingsvariabelen APPLICATION_ENV, dus bijvoorbeeld als de omgeving productie was het zou de extra config de productiesubdirectory laden.

Er zijn standaard verschillende configuratiebestanden:

db.php i18n.php logs.php mail.php routes.php templates.php

In uw configuratiebestanden kunt u alles toevoegen wat u maar wilt. Het wordt opgeslagen in het Bone\Mvc\Registry.


Databank

Stel uw standaard db-referenties in de hoofdconfiguratie / db.php en eventuele omgevingsspecifieke configs in een submap in

'db' => array( 'host' => '127.0.0.1', 'database' => 'bone', 'user' => 'LeChuck', 'pass' => 'monkeyIsland' ),

Internationalisering

Bone ondersteunt vertaling naar verschillende landinstellingen. Vertaalbestanden (gettext .po en .mo) moeten in gegevens / vertalingen worden geplaatst, onder een subdirectory van de landinstelling, bijv. Data / translations / en_GB / en_GB.po. U kunt de standaard locale en een array met ondersteunde landinstellingen instellen.

<?php return [ 'i18n' => [ 'translations_dir' => 'data/translations', 'type' => \Zend\I18n\Translator\Loader\Gettext::class, 'default_locale' => 'en_PI', 'supported_locales' => ['en_PI', 'en_GB', 'nl_BE', 'fr_BE'], ] ];

Om de vertaler te gebruiken, kunt u eenvoudig bellen:To use the translator, you can simply call:

// from a controller: $this->getTranslator()->translate('placeholder.string'); // to set locale $this->getTranslator()->setLocale($locale); // from a view file: $this->t('placeholder');

Logs

Bone gebruikt monoloog/monoloog, 'n logs zijn te vinden in data/logs. Momenteel ondersteunen we alleen het schrijven van 't'-bestanden, maar je kunt zoveel kanalen toevoegen als je wilt:

<?php return [ 'log' => [ 'channels' => [ 'default' => 'data/logs/default_log', ], ], ];

Om de logger in een controller te gebruiken:

$this->getLog()->debug($message) // or error(), etc, see PSR-3

Mail

Bone gebruikt Zend Mail. Om de e-mailclient te configureren, hoeft u alleen uw configuratie in te voeren (zie zend mail docs)

<?php return [ 'mail' => [ 'name' => '127.0.0.1', 'host' => 'localhost', 'port' => 25, // 'connection_class' => 'login', // plain, login, crammd5 // 'connection_config' => [ // 'username' => 'user', // 'password' => 'pass', // ], ], ];

Als u de door bot geleverde dock-box gebruikt, heeft u ook de geweldige MailHog tot uw beschikking. Blader naar awesome.scot:8025 en je ziet een e-mailinbox voor e-mails, dus je hoeft je nooit zorgen te maken dat ontwikkelingsmails de echte wereld bereiken.


Routes

Routes volgen een standaardpatroon van /controller/actie/param/waarde/nextparam/volgendewaarde/etc/etc
U kunt ook routes overschrijven door ze in de configuratiearray te definiëren:

<?php return [ 'routes' => [ '/' => [ 'controller' => 'index', 'action' => 'index', 'params' => [], ], '/:locale' => [ 'controller' => 'index', 'action' => 'index', 'params' => [], ], '/optional[/:id]' => [ 'controller' => 'index', 'action' => 'index', 'params' => [], ], ], ];

Bij het definiëren van routes hebben verplichte variabelen in de uri een dubbele punt zoals: id
Optionele uri-vars hebben [] eromheen als [: id]


Lay-outs

Negeer deze configuratie. Het is oude verouderde onzin.