Soyez-vous voulu un cadre PHP parsemé de jargon de pirate local?
C'est le cadre le plus nu des sept mers!
http://bonemvc.delboysplace.co.uk
Bone Soyez maintenant sur v3.x! L'ensemble du navire du Deign O 'TH' a été rationalisé et est beaucoup plus maniable! Nous sommes un récipient d'injection de dépendance PSR-11, couplé à un routeur middleware PSR-15, de manière modulaire! Sautez à bord!
Assurez-vous d'abord que vous avez un compositeur! Puis installez les os.
composer create-project delboy1978uk/bonemvc your/path/here
ou si vous n'avez pas installé compositeur à l'échelle mondiale ...
php composer.phar create-project delboy1978uk/bonemvc your/path/here
Voir ci-dessous pour plus d'informations sur la façon d'obtenir un serveur de développement complet à l'aide de Docker
Vous pouvez déposer n'importe quel nombre de fichiers .php dans le dossier config /. Assurez-vous qu'ils renvoient un tableau avec la configuration. Vous pouvez remplacer la configuration en fonction de l'environnement var application_env, donc par exemple si l'environnement était en production, il chargerait la configuration supplémentaire le sous-répertoire de production.
Il y a 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 tout ce que vous voulez. Il est stocké dans le registre Bone MVC .
Définissez vos informations d'identification DB par défaut dans la configuration principale / db.php, et toute configuration spécifique à l'environnement dans un sous-répertoire
' db ' => array (
' host ' => ' 127.0.0.1 ' ,
' database ' => ' bone ' ,
' user ' => ' leChuck ' ,
' pass ' => ' bigWh00p ' ,
),Ensuite, dans votre contrôleur, vous pouvez obtenir une connexion PDO en disant:
$ this -> getDbAdapter (); L'os prend en charge la traduction dans différents endroits. Les fichiers de traduction (getText .po et .mo ) doivent être placés dans data/translations , sous un sous-répertoire des paramètres régionaux, par exemple data/translations/en_GB/en_GB.po . Vous pouvez définir les paramètres par défaut et un tableau de lieux pris en charge.
<?php
use Zend I18n Translator Loader Gettext ;
return [
' i18n ' => [
' translations_dir ' => ' data/translations ' ,
' type ' => Gettext::class,
' default_locale ' => ' en_PI ' ,
' supported_locales ' => [ ' en_PI ' , ' en_GB ' , ' nl_BE ' , ' fr_BE ' ],
],
];Pour utiliser le traducteur, vous pouvez simplement appeler: Pour utiliser le traducteur, vous pouvez simplement appeler:
<?php
// from a controller:
$ this -> getTranslator ()-> translate ( ' placeholder.string ' );
// to set locale
$ this -> getTranslator ()-> setLocale ( $ locale );
// from a view file:
$ this -> t ( ' placeholder ' );Bone utilise monolog / monolog, et les journaux peuvent être trouvés dans les données / journaux.
<?php
return [
' log ' => [
' channels ' => [
' default ' => ' data/logs/default_log ' ,
],
],
];Pour utiliser le bûcheron dans un contrôleur:
$ this -> getLog ()-> debug ( $ message ) // or error(), etc, see PSR-3 Bone utilise Zend Mail. Pour configurer le client du courrier, 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 super Mailhog à votre disposition. Parcourez-vous à Awesome.scot:8025 et vous verrez une boîte de réception Catch All Email, vous n'avez donc jamais à vous soucier des e-mails de développement atteignant le monde réel.
Les modules peuvent être créés dans votre dossier src/ . Le module par défaut est BoneAppAppPackage . Les modules sont activés en les ajoutant dans config/packages.php . Les packages de fournisseurs peuvent également être installés via Composer et activés de la même manière.
Un module implémentera à tout le moins BarnacleRegistrationInterface , et s'il s'agit d'un module MVC contenant des routes, il doit également implémenter BoneRouterRouterConfigInterface . Il existe quatre méthodes à mettre en œuvre:
hasEntityPath(): bool , si votre module utilise des entités de doctrine renvoie true (nécessite un package delboy1978uk/bone-doctrine )getEntityPath(): string , si vous retournez vrai, c'est le dossier que réside dans votre classe d'entité.addToContainer(Container $c) , décrit ci-dessousaddRoutes(Container $c, Router $router): Router , décrit ci-dessous Vous pouvez créer des usines pour vos cours et autrement initialiser n'importe quelthiung requis ailleurs dans votre application. À titre d'exemple, une classe de contrôleur peut souhaiter que le moteur de vue soit injecté, donc dans la méthode, vous ajouteriez ce qui suit:
$ c [MyController::class] = $ c -> factory ( function ( Container $ c ) {
$ view = $ c -> get (PlatesEngine::class);
return new MyController ( $ view );
}); Le conteneur d'injection de dépendance est delboy1978uk/barnacle , qui est essentiellement étendu et implémentant PSR-11.
Bone MVC utilise league/route , une bibliothèque de middleware PSR-15. Des itinéraires sont ajoutés dans votre package comme tel:
/**
* @param Container $c
* @param Router $router
* @return Router
*/
public function addRoutes ( Container $ c , Router $ router ): Router
{
$ router -> map ( ' GET ' , ' / ' , [IndexController::class, ' indexAction ' ]);
$ router -> map ( ' GET ' , ' /learn ' , [IndexController::class, ' learnAction ' ]);
return $ router ;
}Voir leurs documents pour plus d'informations sur l'utilisation du routeur
Avast ye! Nous utilisons des libs supplémentaires de Th 'Cap'n (Delboy1978uk), à savoir:
delboy1978uk/cdn
delboy1978uk/form
delboy1978uk/generator
delboy1978uk/image
delboy1978uk/session
Fer le CDN Lib, vous pouvez rapidement faire écho à JavaScript et CSS en utilisant DelCdn , voir AppViewlayoutsbonemvc.php FER Un exemple.
Voir également Utiliser DelIcon et DelCss , qui font partie de la lib CDN.
Vous pouvez créer des formulaires prêts à bootstrap personnalisés usin ' delboy1978uk/form , voir les détails de la page github.
Vous pouvez rapidement créer un nouveau module en utilisant la commande CLI du générateur.
Vous pouvez manipuler des images upin 'th' gd php fonctions, avec la classe DelImage .
Vous pouvez définir des variables de session usin ' DelSessionManager , voir GitHub pour plus d'informations.