Runway
Runway ir CLI lietojumprogramma, kas palīdz pārvaldīt jūsu Flight lietojumprogrammas. Tā var ģenerēt kontrolierus, parādīt visas maršrutus un vairāk. Tā ir balstīta uz izcilo adhocore/php-cli bibliotēku.
Noklikšķiniet šeit, lai skatītu kodu.
Instalēšana
Instalējiet ar composer.
composer require flightphp/runwayPamata konfigurācija
Pirmo reizi palaižot Runway, tā mēģinās atrast runway konfigurāciju app/config/config.php caur 'runway' atslēgu.
<?php
// app/config/config.php
return [
'runway' => [
'app_root' => 'app/',
'public_root' => 'public/',
],
];PIEZĪME - No v1.2.0,
.runway-config.jsonir atcelts. Lūdzu, migrējiet savu konfigurāciju uzapp/config/config.php. Jūs varat to izdarīt viegli arphp runway config:migratekomandu.
Projekta saknes atklāšana
Runway ir pietiekami gudra, lai atklātu jūsu projekta sakni, pat ja jūs to palaižat no apakšdirektorijas. Tā meklē indikatorus, piemēram, composer.json, .git vai app/config/config.php, lai noteiktu, kur ir projekta sakne. Tas nozīmē, ka jūs varat palaidīt Runway komandas no jebkuras vietas jūsu projektā!
Lietošana
Runway ir vairākas komandas, kuras jūs varat izmantot, lai pārvaldītu jūsu Flight lietojumprogrammu. Ir divi viegli veidi, kā izmantot Runway.
- Ja jūs izmantojat skeletu projektu, jūs varat palaidīt
php runway [command]no jūsu projekta saknes. - Ja jūs izmantojat Runway kā paketi, kas instalēta caur composer, jūs varat palaidīt
vendor/bin/runway [command]no jūsu projekta saknes.
Komandu saraksts
Jūs varat skatīt visu pieejamo komandu sarakstu, palaižot php runway komandu.
php runwayKomandu palīdzība
Jebkurai komandai jūs varat pievienot --help karodziņu, lai iegūtu vairāk informācijas par to, kā izmantot komandu.
php runway routes --helpŠeit ir daži piemēri:
Ģenerēt kontrolieri
Pamatojoties uz konfigurāciju runway.app_root, atrašanās vieta ģenerēs kontrolieri jums app/controllers/ direktorijā.
php runway make:controller MyControllerĢenerēt Active Record modeli
Vispirms pārliecinieties, ka esat instalējis Active Record spraudni. Pamatojoties uz konfigurāciju runway.app_root, atrašanās vieta ģenerēs ierakstu jums app/records/ direktorijā.
php runway make:record usersJa, piemēram, jums ir users tabula ar šādu shēmu: id, name, email, created_at, updated_at, fails, līdzīgs šim, tiks izveidots app/records/UserRecord.php failā:
<?php
declare(strict_types=1);
namespace app\records;
/**
* ActiveRecord klase lietotājiem tabulai.
* @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
* // jūs varētu arī pievienot attiecības šeit, kad definēsiet tās $relations masīvā
* @property CompanyRecord $company Attiecības piemērs
*/
class UserRecord extends \flight\ActiveRecord
{
/**
* @var array $relations Iestatīt attiecības modelim
* https://docs.flightphp.com/awesome-plugins/active-record#relationships
*/
protected array $relations = [];
/**
* Konstruktors
* @param mixed $databaseConnection Savienojums ar datubāzi
*/
public function __construct($databaseConnection)
{
parent::__construct($databaseConnection, 'users');
}
}Parādīt visas maršrutus
Tas parādīs visas maršrutus, kas pašlaik reģistrēti ar Flight.
php runway routesJa jūs vēlaties skatīt tikai specifiskus maršrutus, jūs varat pievienot karodziņu, lai filtrētu maršrutus.
# Parādīt tikai GET maršrutus
php runway routes --get
# Parādīt tikai POST maršrutus
php runway routes --post
# utt.Pievienot pielāgotas komandas Runway
Ja jūs vai nu izveidojat paketi Flight, vai vēlaties pievienot savas pielāgotas komandas savam projektam, jūs varat to izdarīt, izveidojot src/commands/, flight/commands/, app/commands/ vai commands/ direktoriju savam projektam/paketam. Ja jums vajadzīga tālāka pielāgošana, skatiet sadaļu zemāk par Konfigurāciju.
Lai izveidotu komandu, jūs vienkārši pagarināt AbstractBaseCommand klasi un implementēt vismaz __construct metodi un execute metodi.
<?php
declare(strict_types=1);
namespace flight\commands;
class ExampleCommand extends AbstractBaseCommand
{
/**
* Konstruktors
*
* @param array<string,mixed> $config Konfigurācija no app/config/config.php
*/
public function __construct(array $config)
{
parent::__construct('make:example', 'Izveidot piemēru dokumentācijai', $config);
$this->argument('<funny-gif>', 'Smailā gif nosaukums');
}
/**
* Izpilda funkciju
*
* @return void
*/
public function execute()
{
$io = $this->app()->io();
$io->info('Izveido piemēru...');
// Dariet kaut ko šeit
$io->ok('Piemērs izveidots!');
}
}Skatiet adhocore/php-cli Dokumentāciju, lai iegūtu vairāk informācijas par to, kā izveidot savas pielāgotas komandas savai Flight lietojumprogrammai!
Konfigurācijas pārvaldība
Tā kā konfigurācija ir pārvietota uz app/config/config.php no v1.2.0, ir dažas palīpkomandas konfigurācijas pārvaldībai.
Migrēt veco konfigurāciju
Ja jums ir vecs .runway-config.json fails, jūs varat viegli to migrēt uz app/config/config.php ar šādu komandu:
php runway config:migrateIestatīt konfigurācijas vērtību
Jūs varat iestatīt konfigurācijas vērtību, izmantojot config:set komandu. Tas ir noderīgi, ja vēlaties atjaunināt konfigurācijas vērtību bez faila atvēršanas.
php runway config:set app_root "app/"Iegūt konfigurācijas vērtību
Jūs varat iegūt konfigurācijas vērtību, izmantojot config:get komandu.
php runway config:get app_rootVisas Runway konfigurācijas
Ja jums vajadzīga konfigurācijas pielāgošana Runway, jūs varat iestatīt šīs vērtības app/config/config.php. Zemāk ir dažas papildu konfigurācijas, kuras jūs varat iestatīt:
<?php
// app/config/config.php
return [
// ... citas konfigurācijas vērtības ...
'runway' => [
// Šī ir vieta, kur atrodas jūsu lietojumprogrammas direktorija
'app_root' => 'app/',
// Šī ir direktorija, kur atrodas jūsu saknes indeksa fails
'index_root' => 'public/',
// Šīs ir ceļi uz citu projektu saknēm
'root_paths' => [
'/home/user/different-project',
'/var/www/another-project'
],
// Bāzes ceļi, visticamāk, nav jākonfigurē, bet tas ir šeit, ja vēlaties
'base_paths' => [
'/includes/libs/vendor', // ja jums ir patiešām unikāls ceļš uz jūsu vendor direktoriju vai kaut ko
],
// Galīgie ceļi ir atrašanās vietas projektā, kur meklēt komandu failus
'final_paths' => [
'src/diff-path/commands',
'app/module/admin/commands',
],
// Ja vēlaties pievienot pilnu ceļu, dariet to (absolūts vai relatīvs pret projekta sakni)
'paths' => [
'/home/user/different-project/src/diff-path/commands',
'/var/www/another-project/app/module/admin/commands',
'app/my-unique-commands'
]
]
];Piekļuve konfigurācijai
Ja jums vajadzīga efektīva piekļuve konfigurācijas vērtībām, jūs varat piekļūt tām caur __construct metodi vai app() metodi. Ir arī svarīgi atzīmēt, ka, ja jums ir app/config/services.php fails, šie servisi būs pieejami jūsu komandai.
public function execute()
{
$io = $this->app()->io();
// Piekļuve konfigurācijai
$app_root = $this->config['runway']['app_root'];
// Piekļuve servisiem, piemēram, datubāzes savienojumam
$database = $this->config['database']
// ...
}AI palīginstrumentu apvalki
Runway ir daži palīginstrumentu apvalki, kas atvieglo AI komandu ģenerēšanu. Jūs varat izmantot addOption un addArgument veidā, kas šķiet līdzīgs Symfony Console. Tas ir noderīgi, ja izmantojat AI rīkus, lai ģenerētu savas komandas.
public function __construct(array $config)
{
parent::__construct('make:example', 'Izveidot piemēru dokumentācijai', $config);
// Name arguments ir nullable un pēc noklusējuma pilnībā neobligāts
$this->addOption('name', 'Piemēra nosaukums', null);
}