CLI를 통해 컨트롤러 실행
애플리케이션의 Controllers는 브라우저의 URL을 통해 호출할 수 있으며, 명령줄 인터페이스(CLI)를 통해 로드할 수도 있습니다.
Let’s try it: Hello World!
컨트롤러 생성
작동하는 모습을 볼 수 있도록 간단한 컨트롤러를 만들어 보겠습니다. 텍스트 편집기를 사용하여 Tools.php라는 파일을 만들고 다음 코드를 그 안에 넣습니다.
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class Tools extends Controller
{
public function message($to = 'World')
{
return "Hello {$to}!" . PHP_EOL;
}
}
Note
자동 라우팅(개선됨)를 사용한다면 메소드 이름을 cliMessage()
로 변경하십시오.
파일을 app/Controllers/ 디렉터리에 저장합니다.
경로 정의
자동 라우팅(Auto Routing)을 사용하는 경우 이 단계를 건너뜁니다.
app/Config/Routes.php 파일에 cli()
메소드를 사용하여 CLI에서만 액세스할 수 있는 경로(route)를 생성할 수 있습니다.
그 외 다른 것은 일반 경로 정의와 동일하게 작동합니다.
<?php
$routes->cli('tools/message/(:segment)', 'Tools::message/$1');
자세한 내용은 경로 페이지를 참조하세요.
Warning
자동 라우팅(레거시)을 활성화하고 명령(command) 파일을 app/Controllers에 배치하면 누구나 HTTP를 통하여 자동 라우팅(레거시)의 도움으로 명령에 액세스할 수 있습니다.
CLI를 통해 실행
일반적으로 다음과 유사한 URL을 사용하여 사이트를 방문합니다.
example.com/index.php/tools/message/to
이를 대신하여 Mac/Linux(Windows : 실행 > “cmd”)의 터미널로 이동하여 CodeIgniter 프로젝트의 웹 루트로 이동합니다.
$ cd /path/to/project/public
$ php index.php tools message
제대로 했다면 “Hello World!”가 표시됩니다.
$ php index.php tools message "John Smith"
위 예는 URL 매개변수가 작동하는 것과 같은 방식으로 인수를 전달합니다. 인수로 “John Smith”가 전달되고 출력은 다음과 같습니다.
Hello John Smith!
That’s the Basics!
명령줄 컨트롤러에 대해 알아야 할 사항은 이것뿐입니다.
명령줄도 일반 컨트롤러이므로 라우팅과 _remap()
이 잘 작동한다는 것을 기억하십시오.
Note
_remap()
은 자동 라우팅(개선됨)와 함께 작동하지 않습니다.
CLI를 통해 실행되고 있는지 확인하려면 is_cli()
의 반환 값을 확인하세요.
CodeIgniter는 CLI 전용 라우팅와 CLI 전용 도구를 지원하는 라이브러리를 포함하여 CLI 액세스 가능한 스크립트를 훨씬 더 즐겁게 만들 수 있는 추가 도구를 제공합니다.