Runway est une application CLI qui vous aide à gérer vos applications Flight. Il peut générer des contrôleurs, afficher toutes les routes, et bien plus encore. Il est basé sur l'excellente bibliothèque adhocore/php-cli.
Cliquez ici pour voir le code.
Installez avec composer.
composer require flightphp/runway
La première fois que vous exécutez Runway, il vous guidera à travers un processus de configuration et créera un fichier de configuration .runway.json à la racine de votre projet. Ce fichier contiendra certaines configurations nécessaires pour que Runway fonctionne correctement.
.runway.json
Runway dispose de plusieurs commandes que vous pouvez utiliser pour gérer votre application Flight. Il y a deux façons faciles d'utiliser Runway.
php runway [commande]
vendor/bin/runway [commande]
Pour n'importe quelle commande, vous pouvez ajouter le drapeau --help pour obtenir plus d'informations sur comment utiliser la commande.
--help
php runway routes --help
Voici quelques exemples :
Selon la configuration dans votre fichier .runway.json, l'emplacement par défaut générera un contrôleur pour vous dans le répertoire app/controllers/.
app/controllers/
php runway make:controller MyController
Selon la configuration dans votre fichier .runway.json, l'emplacement par défaut générera un contrôleur pour vous dans le répertoire app/records/.
app/records/
php runway make:record users
Par exemple, si vous avez la table users avec le schéma suivant : id, name, email, created_at, updated_at, un fichier similaire au suivant sera créé dans le fichier app/records/UserRecord.php :
users
id
name
email
created_at
updated_at
app/records/UserRecord.php
<?php declare(strict_types=1); namespace app\records; /** * Class ActiveRecord pour la table des utilisateurs. * @link https://docs.flightphp.com/awesome-plugins/active-record * * @property int $id * @property string $name * @property string $email * @property string $created_at * @property string $updated_at * // vous pouvez également ajouter des relations ici une fois que vous les définissez dans le tableau $relations * @property CompanyRecord $company Exemple d'une relation */ class UserRecord extends \flight\ActiveRecord { /** * @var array $relations Définir les relations pour le modèle * https://docs.flightphp.com/awesome-plugins/active-record#relationships */ protected array $relations = []; /** * Constructeur * @param mixed $databaseConnection La connexion à la base de données */ public function __construct($databaseConnection) { parent::__construct($databaseConnection, 'users'); } }
Cela affichera toutes les routes actuellement enregistrées avec Flight.
php runway routes
Si vous souhaitez uniquement visualiser des routes spécifiques, vous pouvez ajouter un drapeau pour filtrer les routes.
# Afficher uniquement les routes GET php runway routes --get # Afficher uniquement les routes POST php runway routes --post # etc.
Si vous êtes en train de créer un paquet pour Flight, ou si vous voulez ajouter vos propres commandes personnalisées dans votre projet, vous pouvez le faire en créant un répertoire src/commands/, flight/commands/, app/commands/, ou commands/ pour votre projet/paquet.
src/commands/
flight/commands/
app/commands/
commands/
Pour créer une commande, vous étendez simplement la classe AbstractBaseCommand et implémentez au minimum une méthode __construct et une méthode execute.
AbstractBaseCommand
__construct
execute
<?php declare(strict_types=1); namespace flight\commands; class ExampleCommand extends AbstractBaseCommand { /** * Constructeur * * @param array<string,mixed> $config Config JSON de .runway-config.json */ public function __construct(array $config) { parent::__construct('make:example', 'Crée un exemple pour la documentation', $config); $this->argument('<funny-gif>', 'Le nom du gif drôle'); } /** * Exécute la fonction * * @return void */ public function execute(string $controller) { $io = $this->app()->io(); $io->info('Création de l\'exemple...'); // Faites quelque chose ici $io->ok('Exemple créé !'); } }
Consultez la Documentation de adhocore/php-cli pour plus d'informations sur la façon de créer vos propres commandes personnalisées dans votre application Flight !