Utilisez cette application Skeleton pour configurer rapidement et commencer à travailler sur une nouvelle application Slim Framework 3 (testée avec Slim 3.12). Cette application gère les demandes de ligne HTTP et de commande. Cette application est livrée avec quelques fournisseurs de services et une session middleware hors de la boîte. Prise en charge de la résolution des conteneurs et de la diffusion automatique.
Pour supprimer un fournisseur de services, commentez-le sur le fichier config / app.php et supprimez-le de Composer.json, mettez à jour le compositeur.
Fournisseurs de services disponibles:
Middleware disponibles:
Exécutez cette commande à partir du répertoire dans lequel vous souhaitez installer votre nouvelle application Slim Framework.
php composer.phar create-project jupitern/slim3-skeleton [my-app-name]
Remplacez [my-app-name] par le nom du répertoire souhaité pour votre nouvelle application. Vous voudrez:
public/ répertoire de votre nouvelle application.storage/ est le Web écrivatif.$ cd [my-app-name]public$ php -S localhost:8080 ou $ composer serveapp : code d'application (modèles, contrôleurs, commandes CLI, gestionnaires, middleware, fournisseurs de services et autres)config : fichiers de configuration comme db, courrier, itinéraires ...lib : D'autres classes de projet comme les utils, la logique métier et les extensions de cadrestorage : fichiers journaux, fichiers de cache et vos actifs bruts et non compilés tels que moins, SASS ou JavaScript.public : Le répertoire public contient un fichier index.php , des actifs tels que des images, JavaScript et CSSviews : vues de fichiers de modèles.vendor : dépendances des compositeursLa classe d'application a une méthode de résolveur de route qui:
Exemple définissant deux itinéraires pour un site Web et des dossiers backend:
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 }" ;
}
}Comment créer une nouvelle commande:
Exemple:
Classe de commande:
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" ;
}
}Exécutez la classe: Méthode de la ligne de commande:
// 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=fooObtenir l'instance d'application
$ app = Lib Framework App:: instance ();
// or simpler using a helper function
$ app = app ();Débogage d'une variable, d'un tableau ou d'un objet à l'aide de la fonction de débogage d'assistance
debug ([ ' a ' , ' b ' , ' c ' ]);
// or debug and exit passing true as second param
debug ([ ' a ' , ' b ' , ' c ' ], true );Lisez un utilisateur de DB à l'aide de Laravel Eloatent Service Provider
$ user = App Model User:: find ( 1 );
echo $ user -> Name ;Envoyer un e-mail à l'aide du service de fournisseur de services PHPMailer nommé «courrier» sur le fichier de configuration
/* @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 ();Énumérez un contenu de répertoire avec FlySystem Service Provider nommé «FS_Local» sur le fichier de configuration
$ filesystem = app ()-> resolve ( ' fs_local ' );
$ contents = $ filesystem -> listContents ( STORAGE_PATH , true );
var_dump ( $ contents );Écrivez et lisez à partir de la session en utilisant la classe d'assistance de session
// 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 );Écrivez et lisez à partir de Cache avec le fournisseur de service redis nommé «redis» sur le fichier de configuration
/** @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-Skeleton est libéré sous la licence MIT.