런웨이
런웨이는 Flight 어플리케이션을 관리하는 데 도움이 되는 CLI 어플리케이션입니다. 컨트롤러를 생성하고 모든 라우트를 표시할 수 있습니다. 이 라이브러리는 훌륭한 adhocore/php-cli 라이브러리를 기반으로 합니다.
여기를 클릭하여 코드를 확인하십시오.
설치
컴포저로 설치합니다.
composer require flightphp/runway
기본 구성
런웨이를 처음 실행하면 설정 프로세스를 진행하고 프로젝트 루트에 .runway.json
구성 파일을 생성합니다. 이 파일에는 런웨이가 올바르게 작동하기 위한 일부 필수 구성이 포함되어 있습니다.
사용법
런웨이에는 Flight 어플리케이션을 관리하는 데 사용할 수 있는 여러 명령이 있습니다. 런웨이를 사용하는 두 가지 쉬운 방법이 있습니다.
- 스켈레톤 프로젝트를 사용하는 경우 프로젝트의 루트에서
php runway [command]
를 실행할 수 있습니다. - 컴포저를 통해 설치된 패키지로 런웨이를 사용하는 경우 프로젝트의 루트에서
vendor/bin/runway [command]
를 실행할 수 있습니다.
어떤 명령이든 --help
플래그를 전달하여 명령어 사용 방법에 대한 자세한 정보를 얻을 수 있습니다.
php runway routes --help
다음은 몇 가지 예시입니다:
컨트롤러 생성
.runway.json
파일의 구성에 따라 기본 위치는 app/controllers/
디렉토리에 컨트롤러를 생성합니다.
php runway make:controller MyController
Active Record 모델 생성
.runway.json
파일의 구성에 따라 기본 위치는 app/records/
디렉토리에 컨트롤러를 생성합니다.
php runway make:record users
예를 들어 users
테이블에 다음 스키마가 있는 경우: id
, name
, email
, created_at
, updated_at
, app/records/UserRecord.php
파일에 다음과 유사한 파일이 생성됩니다:
<?php
declare(strict_types=1);
namespace app\records;
/**
* users 테이블을 위한 ActiveRecord 클래스.
* @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
* // 관계를 정의한 후 $relations 배열에 정의할 수 있습니다.
* @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/
디렉토리를 만들어야 합니다.
명령을 만들려면 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 문서를 참조하십시오!