Willst du ein PHP -Framework mit lokalem Piraten -Lingo gepflegt?
Es ist das bloße Knochen -Framework in den sieben Meeren!
http://bonemvc.delboysplace.co.uk
Knochen jetzt auf v3.x! Das gesamte DEIGN O 'TH' -Schiff wurde optimiert und ist weitaus mehr manövrierbar! Wir sind ein PSR-11-Abhängigkeitsinjektionsbehälter in Verbindung mit einem PSR-15-Middleware-Router auf modulare Weise! An Bord springen!
Stellen Sie zunächst sicher, dass Sie Komponist haben! Dann Knochen installieren.
composer create-project delboy1978uk/bonemvc your/path/here
Oder wenn Sie den Komponisten weltweit nicht installiert haben ...
php composer.phar create-project delboy1978uk/bonemvc your/path/here
Informationen zum Erhalten eines vollständigen Entwicklerservers mit Docker finden Sie unten
Sie können eine beliebige Anzahl von .php -Dateien in die Konfiguration/ den Ordner eingeben. Stellen Sie sicher, dass sie ein Array mit der Konfiguration zurückgeben. Sie können die Konfiguration basierend auf der Umgebung var application_env überschreiben. Wenn die Umgebung beispielsweise die Produktion der zusätzlichen Konfiguration des Produktionsunterverzeichnisses lädt.
Standardmäßig gibt es mehrere Konfigurationsdateien:
db.php
i18n.php
logs.php
mail.php
routes.php
templates.php
In Ihren Konfigurationsdateien können Sie alles hinzufügen, was Sie wollen. Es wird in der Registrierung von Knochen gespeichert.
Legen Sie Ihre Standard -DB -Anmeldeinformationen in der Hauptkonfiguration/db.php und allen umgebungsspezifischen Konfigurationen in einem Unterverzeichnis fest
' db ' => array (
' host ' => ' 127.0.0.1 ' ,
' database ' => ' bone ' ,
' user ' => ' leChuck ' ,
' pass ' => ' bigWh00p ' ,
),Dann können Sie in Ihrem Controller eine PDO -Verbindung erhalten, indem Sie sagen:
$ this -> getDbAdapter (); Knochen unterstützt die Übersetzung in verschiedene Orte. Übersetzungsdateien (getText .po und .mo ) sollten in data/translations unter einem Unterverzeichnis des Gebietsschemas, z. B. data/translations/en_GB/en_GB.po , platziert werden. Sie können das Standardgebiet und eine Reihe von unterstützten Orten festlegen.
<?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 ' ],
],
];Um den Übersetzer zu verwenden, können Sie einfach anrufen: Um den Übersetzer zu verwenden, können Sie einfach anrufen:
<?php
// from a controller:
$ this -> getTranslator ()-> translate ( ' placeholder.string ' );
// to set locale
$ this -> getTranslator ()-> setLocale ( $ locale );
// from a view file:
$ this -> t ( ' placeholder ' );Bone verwendet Monolog/Monolog, und Protokolle finden Sie in Daten/Protokoll. Schließlich unterstützen wir nur das Schreiben in Dateien, aber Sie können so viele Kanäle hinzufügen, wie Sie möchten:
<?php
return [
' log ' => [
' channels ' => [
' default ' => ' data/logs/default_log ' ,
],
],
];Um den Logger in einem Controller zu verwenden:
$ this -> getLog ()-> debug ( $ message ) // or error(), etc, see PSR-3 Bone verwendet Zend Mail. Um den Mail -Client zu konfigurieren, geben Sie einfach Ihre Konfiguration ein (siehe Zend Mail -Dokumente).
<?php
return [
' mail ' => [
' name ' => ' 127.0.0.1 ' ,
' host ' => ' localhost ' ,
' port ' => 25 ,
// 'connection_class' => 'login', // plain, login, crammd5
// 'connection_config' => [
// 'username' => 'user',
// 'password' => 'pass',
// ],
],
];Wenn Sie die von Bone bereitgestellte Docker -Box verwenden, haben Sie auch den fantastischen Mailhog zur Verfügung. Durchsuchen Sie Awesome.
Module können in Ihrem src/ Ordner erstellt werden. Das Standardmodul ist BoneAppAppPackage . Module werden aktiviert, indem sie in config/packages.php addiert werden. Lieferantenpakete können auch über den Komponisten installiert und auf die gleiche Weise aktiviert werden.
Ein Modul implementiert zumindest BarnacleRegistrationInterface . Wenn es sich um ein MVC -Modul handelt, das Routen enthält, sollte es auch BoneRouterRouterConfigInterface implementieren. Insgesamt gibt es vier Methoden zu implementieren:
hasEntityPath(): bool , wenn Ihr Modul Loktrinentitäten verwendet, kehren Sie true zurück (erfordert delboy1978uk/bone-doctrine PAKET)getEntityPath(): string , wenn Sie true zurückgeben, ist dies der Ordner, den Ihre Entitätsklasse befindet.addToContainer(Container $c) , unten beschriebenaddRoutes(Container $c, Router $router): Router , unten beschrieben Sie können Fabriken für Ihre Klassen erstellen und ansonsten anwesend in der App initialisiert werden. Beispielsweise möchte eine Controller -Klasse die Ansichtsmotor injiziert haben. In der Methode fügen Sie also Folgendes hinzu:
$ c [MyController::class] = $ c -> factory ( function ( Container $ c ) {
$ view = $ c -> get (PlatesEngine::class);
return new MyController ( $ view );
}); Der Abhängigkeitsinjektionsbehälter ist delboy1978uk/barnacle , der im Wesentlichen Pickel erweitert und psr-11 implementiert.
Bone MVC verwendet league/route , eine PSR-15-Middleware-Bibliothek. Routen werden in Ihrem Paket wie SO hinzugefügt:
/**
* @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 ;
}Weitere Informationen zur Verwendung von Router finden Sie in ihren Dokumenten
Avast ye! Wir sind einige zusätzliche Bibliotheken von der Cap'n (Delboy1978uk), nämlich:
delboy1978uk/cdn
delboy1978uk/form
delboy1978uk/generator
delboy1978uk/image
delboy1978uk/session
Wenn Sie die CDN Lib, können Sie JavaScript und CSS mit DelCdn schnell herausgeben. Siehe AppViewlayoutsbonemvc.php für ein Beispiel.
Siehe auch DelIcon und DelCss , die als Teil der CDN Lib.
Sie können benutzerdefinierte Bootstrap -Ready delboy1978uk/form erstellen.
Sie können schnell ein neues Modul des Generator -CLI -Befehls erstellen.
Sie können Bilder mit der DelImage manipulieren.
Sie können Sitzungsvariablen usin ' DelSessionManager festlegen, siehe GitHub für Informationen.