A Pista é uma aplicação CLI que ajuda a gerenciar suas aplicações Flight. Ela pode gerar controladores, exibir todas as rotas e mais. É baseada na excelente biblioteca adhocore/php-cli.
Clique aqui para visualizar o código.
Instale com o composer.
composer require flightphp/runway
Na primeira execução da Pista, ela guiará você por um processo de configuração e criará um arquivo de configuração .runway.json na raiz do seu projeto. Este arquivo conterá algumas configurações necessárias para que a Pista funcione corretamente.
.runway.json
A Pista possui vários comandos que você pode usar para gerenciar sua aplicação Flight. Existem duas maneiras fáceis de usar a Pista.
php runway [comando]
vendor/bin/runway [comando]
Para qualquer comando, você pode inserir a flag --help para obter mais informações sobre como utilizar o comando.
--help
php runway routes --help
Aqui estão alguns exemplos:
Com base na configuração em seu arquivo .runway.json, a localização padrão gerará um controlador para você no diretório app/controllers/.
app/controllers/
php runway make:controller MeuControlador
Com base na configuração em seu arquivo .runway.json, a localização padrão gerará um controlador para você no diretório app/records/.
app/records/
php runway make:record usuários
Se por acaso você tiver a tabela usuários com o seguinte esquema: id, nome, email, criado_em, atualizado_em, um arquivo semelhante ao seguinte será criado no arquivo app/records/RegistroUsuario.php:
usuários
id
nome
email
criado_em
atualizado_em
app/records/RegistroUsuario.php
<?php declare(strict_types=1); namespace app\records; /** * Classe Active Record para a tabela de usuários. * @link https://docs.flightphp.com/awesome-plugins/active-record * * @property int $id * @property string $nome * @property string $email * @property string $criado_em * @property string $atualizado_em * // você também pode adicionar relacionamentos aqui uma vez que os definir no array $relações * @property RegistroEmpresa $empresa Exemplo de um relacionamento */ class RegistroUsuario extends \flight\ActiveRecord { /** * @var array $relações Define os relacionamentos para o modelo * https://docs.flightphp.com/awesome-plugins/active-record#relationships */ protected array $relações = []; /** * Construtor * @param mixed $conexãoBancoDados A conexão com o banco de dados */ public function __construct($conexãoBancoDados) { parent::__construct($conexãoBancoDados, 'usuários'); } }
Isso exibirá todas as rotas atualmente registradas com o Flight.
php runway routes
Se desejar visualizar apenas rotas específicas, você pode inserir uma flag para filtrar as rotas.
# Exibir apenas rotas GET php runway routes --get # Exibir apenas rotas POST php runway routes --post # etc.
Se você está criando um pacote para o Flight ou deseja adicionar seus próprios comandos personalizados ao seu projeto, pode fazer isso criando um diretório src/commands/, flight/commands/, app/commands/ ou commands/ para o seu projeto/pacote.
src/commands/
flight/commands/
app/commands/
commands/
Para criar um comando, você simplesmente estende a classe AbstractBaseCommand e implementa, no mínimo, um método __construct e um método execute.
AbstractBaseCommand
__construct
execute
<?php declare(strict_types=1); namespace flight\commands; class ComandoExemplo extends AbstractBaseCommand { /** * Construtor * * @param array<string,mixed> $config Configuração JSON de .runway-config.json */ public function __construct(array $config) { parent::__construct('make:example', 'Criar um exemplo para a documentação', $config); $this->argument('<gif-engracado>', 'O nome do gif engraçado'); } /** * Executa a função * * @return void */ public function execute(string $controlador) { $io = $this->app()->io(); $io->info('Criando exemplo...'); // Faça algo aqui $io->ok('Exemplo criado!'); } }
Consulte a Documentação do adhocore/php-cli para mais informações sobre como criar seus próprios comandos personalizados em sua aplicação Flight!