Verwenden Sie diese Skeleton -Anwendung, um schnell einzurichten und an einer neuen Slim Framework 3 -Anwendung (getestet mit SLIM 3.12) zu arbeiten. Diese Anwendung behandelt HTTP- und Befehlszeilenanforderungen. Diese Anwendung wird mit wenigen Dienstanbietern und einer Sitzung Middleware aus der Schachtel geliefert. Unterstützung für die Auflösung von Containern und Autoverdrahtung.
Um einen Dienstanbieter zu entfernen, kommentieren Sie ihn in config/app.php -Datei und entfernen Sie ihn von Composer.json, Composer.
Verfügbare Dienstleister:
Verfügbare Middleware:
Führen Sie diesen Befehl aus dem Verzeichnis aus, in dem Sie Ihre neue Slim Framework -Anwendung installieren möchten.
php composer.phar create-project jupitern/slim3-skeleton [my-app-name]
Ersetzen Sie [my-app-name] durch den gewünschten Verzeichnisnamen für Ihre neue Anwendung. Sie werden:
public/ verzeichnis Ihrer neuen Anwendung.storage/ ist Web -Schreibbar.$ cd [my-app-name]public$ php -S localhost:8080 oder $ composer serveapp : Anwendungscode (Modelle, Controller, CLI -Befehle, Handler, Middleware, Dienstanbieter und andere)config : Konfigurationsdateien wie DB, Mail, Routen ...lib : Andere Projektklassen wie Utils, Geschäftslogik und Framework -Erweiterungenstorage : Protokolldateien, Cache-Dateien und Ihre RAW, nicht kompilierten Assets wie weniger, Sass oder JavaScript.public : Das öffentliche Verzeichnis enthält index.php -Datei, Vermögenswerte wie Bilder, JavaScript und CSSviews : Ansichten Vorlagendateien.vendor : KomponistenabhängigkeitenDie App -Klasse hat eine Methode zur Route Resolver, die:
Beispiel, bei dem zwei Routen für eine Website und Backend -Ordner definiert werden:
use Psr Http Message ServerRequestInterface as Request ;
use Psr Http Message ResponseInterface as Response ;
// simple route example
$ app -> get ( ' /welcome/{name} ' , function ( Request $ request , Response $ response , $ args ) {
$ name = $ request -> getAttribute ( ' name ' );
$ response -> getBody ()-> write ( " Hello, $ name " );
return $ response ;
});
// example route to resolve request to uri '/' to AppHttpSiteWelcome::index
$ app -> any ( ' / ' , function ( $ request , $ response , $ args ) use ( $ app ) {
return $ app -> resolveRoute ([ App Http Welcome::class, " index " ], $ args );
});
// example calling http://localhost:8080/index.php/test/nuno with the route bellow
// injects the :name param value into the method $name parameter
// Other parameters in the method will be searched in the container by classname or automatically resolved
// in this example the resolveRoute method will create a user instance and inject it in the controller method
$ app -> any ( ' /test[/{name}] ' , function ( $ request , $ response , $ args ) use ( $ app ) {
return $ app -> resolveRoute ([ App Http Welcome::class, " method " ], $ args );
});
namespace App Http ;
use Jupitern Slim3 App Http Controller ;
class Welcome extends Controller
{
public function method ( $ name , App Model User $ user )
{
return get_class ( $ user ). " <br/>name = { $ name }" ;
}
}So erstellen Sie einen neuen Befehl:
Beispiel:
Befehlsklasse:
namespace App Console ;
class Test extends Command
{
public function method ( $ a , $ b = ' foobar ' )
{
return
"n Entered console command with params: n" .
" a= { $ a }n" .
" b= { $ b }n" ;
}
}Führen Sie die Klasse: Methode aus der Befehlszeile aus:
// since param "b" is optional you can use one of the following commands
> php cli.php Test method a=foo b=bar
> php cli.php Test method a=fooHolen Sie sich eine Anwendungsinstanz
$ app = Lib Framework App:: instance ();
// or simpler using a helper function
$ app = app ();Debuggen Sie eine Variable, ein Array oder ein Objekt mit der Debug -Helferfunktion
debug ([ ' a ' , ' b ' , ' c ' ]);
// or debug and exit passing true as second param
debug ([ ' a ' , ' b ' , ' c ' ], true );Lesen Sie einen Benutzer von DB mit Laravel Eoquent Service Provider
$ user = App Model User:: find ( 1 );
echo $ user -> Name ;Senden Sie eine E -Mail mit dem Service Provider Service "Mail" von Phpmailer -Dienstanbieter mit dem Namen "Mail" in der Konfigurationsdatei
/* @var $mail PHPMailerPHPMailerPHPMailer */
$ mail = app ()-> resolve ( ' mail ' );
$ mail -> addAddress ( ' [email protected] ' );
$ mail -> Subject = " test " ;
$ mail -> Body = " <b>test body</b> " ;
$ mail -> AltBody = " alt body " ;
$ mail -> send ();Listen Sie einen Verzeichnisinhalt mit dem Flysystem -Dienstanbieter mit dem Namen "FS_Local" in der Konfigurationsdatei auf
$ filesystem = app ()-> resolve ( ' fs_local ' );
$ contents = $ filesystem -> listContents ( STORAGE_PATH , true );
var_dump ( $ contents );Schreiben und lesen Sie aus der Sitzung mit Sitzungshelferklasse
// save user info in session
Jupitern Slim3 Utils Session:: set ( ' user ' , [ ' id ' => ' 1 ' ]);
// get user info from session
$ uservar = Jupitern Slim3 Utils Session:: get ( ' user ' );
var_dump ( $ uservar );Schreiben und lesen
/** @var JupiternSlim3UtilsRedis $cache */
$ cache = app ()-> resolve ( ' redis ' );
$ cache -> set ( " cacheKey " , " some test value " );
echo $ cache -> get ( " cacheKey " );v3.0
v2.6
V2.5
Jupitern/Slim3-Skeletton wird unter der MIT-Lizenz veröffentlicht.