ランウェイはCLIアプリケーションで、Flightアプリケーションの管理を支援します。コントローラを生成したり、すべてのルートを表示したりすることができます。優れたadhocore/php-cliライブラリに基づいています。
こちらをクリックして、コードを表示してください。
Composerを使用してインストールしてください。
composer require flightphp/runway
ランウェイを実行する最初の回は、セットアッププロセスを進め、プロジェクトのルートに.runway.json構成ファイルを作成します。このファイルには、ランウェイが正しく動作するために必要ないくつかの構成が含まれています。
.runway.json
ランウェイには、Flightアプリケーションを管理するために使用できる複数のコマンドがあります。ランウェイを使用する方法は2つあります。
php runway [command]
vendor/bin/runway [command]
任意のコマンドに対して、--helpフラグを渡すと、そのコマンドの使用方法に関するより詳細な情報を取得できます。
--help
php runway routes --help
以下はいくつかの例です。
.runway.jsonファイルの構成に基づいて、デフォルトの場所は app/controllers/ ディレクトリにコントローラを生成します。
app/controllers/
php runway make:controller MyController
.runway.jsonファイルの構成に基づいて、デフォルトの場所は app/records/ ディレクトリにコントローラを生成します。
app/records/
php runway make:record users
たとえば、次のスキーマを持つ users テーブルがある場合:id、name、email、created_at、updated_at、app/records/UserRecord.php ファイルに類似したファイルが作成されます:
users
id
name
email
created_at
updated_at
app/records/UserRecord.php
<?php declare(strict_types=1); namespace app\records; /** * ユーザーテーブルのアクティブレコードクラス。 * @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 * // 関係を定義した場合、ここに関係を追加できます * @property CompanyRecord $company 関係の例 */ class UserRecord extends \flight\ActiveRecord { /** * @var array $relations モデルの関係を設定します * https://docs.flightphp.com/awesome-plugins/active-record#relationships */ protected array $relations = []; /** * コンストラクタ * @param mixed $databaseConnection データベースへの接続 */ public function __construct($databaseConnection) { parent::__construct($databaseConnection, 'users'); } }
登録されているすべてのFlightのルートを表示します。
php runway routes
特定のルートのみを表示したい場合、フラグを渡してルートをフィルタリングできます。
# GETルートのみを表示 php runway routes --get # POSTルートのみを表示 php runway routes --post # など
Flight向けのパッケージを作成しているか、プロジェクトに独自のカスタムコマンドを追加したい場合は、プロジェクト/パッケージ向けに src/commands/、flight/commands/、app/commands/、または commands/ ディレクトリを作成してください。
src/commands/
flight/commands/
app/commands/
commands/
コマンドを作成するには、AbstractBaseCommandクラスを拡張し、__constructメソッドとexecuteメソッドを最低限実装します。
AbstractBaseCommand
__construct
execute
<?php declare(strict_types=1); namespace flight\commands; class ExampleCommand extends AbstractBaseCommand { /** * コンストラクタ * * @param array<string,mixed> $config .runway-config.jsonからのJSON構成 */ public function __construct(array $config) { parent::__construct('make:example', 'ドキュメントの例を作成', $config); $this->argument('<funny-gif>', '面白いGIFの名前'); } /** * 関数を実行 * * @return void */ public function execute(string $controller) { $io = $this->app()->io(); $io->info('例を作成します...'); // ここで何かを実行 $io->ok('例が作成されました!'); } }
独自のカスタムコマンドをFlightアプリケーションに組み込む方法については、adhocore/php-cliドキュメントを参照してください!