Apprendre Bone Framework MVC

Il est facile de se lancer avec un nouveau projet

Installation

D'abord, assurez-vous d'avoir Composer! Ensuite, installez Bone.

composer create-project delboy1978uk/bonemvc your/path/here dev-master

ou si vous n'avez pas installé le compositeur globalement ...

php composer.phar create-project delboy1978uk/bonemvc your/path/here dev-master

Docker boîte de développement

Bone est livré avec un fichier docker-compose.yml dans le projet. Vous pouvez donc instantanément lancer un serveur de développement si vous utilisez Docker (testé à l'aide d'une machine virtuelle VirtualBox par défaut). Ajoutez simplement ceci à votre fichier hosts
awesome.scot 192.168.99.100

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

Ensuite, vous pouvez accéder au site à l'adresse https://awesome.scot dans votre navigateur. Bien sûr, si vous n'utilisez pas docker, vous pouvez l'ajouter à votre pile LAMP de la manière habituelle.

Configurer

Vous pouvez voir un dossier config, data, public et src. Conserver le dossier du fournisseur, c’est là que composeur installe les dépendances du projet.

Rendez le dossier de données accessible en écriture. 777 donne à tout le monde un accès en écriture, donc définissez-le à 775 avec votre utilisateur Apache du groupe.

chmod -R 775 data

Dans vos hôtes virtuels Apache, définissez la racine du document en tant que dossier public.

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

Le dossier de configuration

Vous pouvez déposer n'importe quel nombre de fichiers .php dans la config/. Assurez-vous qu'ils renvoient un tableau avec la configuration. Vous pouvez remplacer la configuration en fonction de l'environnement var APPLICATION_ENV, par exemple si l'environnement était en production il chargerait la configuration supplémentaire du sous-répertoire de production.

Il existe plusieurs fichiers de configuration par défaut:

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

Dans vos fichiers de configuration, vous pouvez ajouter ce que vous voulez. Il est stocké dans le registre Bone\Mvc\Registry.


Base de données

Définissez vos informations d'identification de base de données par défaut dans le fichier config / db.php principal, ainsi que toute configuration spécifique à l'environnement dans un sous-répertoire.

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

Internationalisation

Bone prend en charge la traduction dans différents lieux. Les fichiers de traduction (gettext .po et .mo) doivent être placés dans data / translations, dans un sous-répertoire de la langue, par exemple data / translations / en_GB / en_GB.po. Vous pouvez définir les paramètres régionaux par défaut et un tableau des paramètres régionaux pris en charge.

<?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'], ] ];

Pour utiliser le traducteur, vous pouvez simplement appeler: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');

Les journaux

Bone utilise monolog/monolog. On peut trouver n logs dans data/logs. Actuellement, nous ne prenons en charge que les fichiers en écriture, mais vous pouvez ajouter autant de canaux que vous aimez:

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

Bone utilise Zend Mail. Pour configurer le client de messagerie, il suffit de déposer votre configuration (voir zend mail docs)

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

Courrier

Bone utilise Zend Mail. Pour configurer le client de messagerie, il suffit de déposer votre configuration (voir 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', // ], ], ];

Si vous utilisez la boîte Docker fournie par bone, vous avez également le formidable MailHog à votre disposition. Naviguez vers awesome.scot:8025 et vous verrez apparaître une boîte de réception électronique complète, de sorte que vous n’aurez jamais à vous soucier des courriels de développement atteignant le monde réel.


Routes

Les itinéraires suivent un modèle par défaut de /controller/action/param/value/nextparam/nextvalue/etc/etc
Vous pouvez également remplacer les itinéraires en les définissant dans le tableau de configuration:

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

Lors de la définition des itinéraires, les variables obligatoires dans l'URI ont deux points comme: id
Les uri vars facultatifs sont entourées par [] comme [: id]


Mises en page

Ignorer cette config. C'est vieux non-sens obsolète.