PEAR: Console_CommandLine #2 – 기본

2015-04-29

Console_CommandLine을 사용하기 위해서는 Console_CommandLine 인스턴스를 생성한 후에, addOption() 또는 addArgument() 메소드로 옵션이나 인자에 대한 명세를 설정한 후 parse() 메소드를 통해 파싱을 하면 됩니다. 이 과정 중에 명세에 맞지 않는 인자를 발견하면 예외가 발생합니다. 이 때 발생한 예외를 잡아서 적절한 사용법 안내를 화면에 출력합니다.

우선 컴포져를 통해서 Console_CommandLine 패키지를 읽어들이기 위해 vendor/autoload.php를 불러들입니다. 그 다음 Console_CommandLine 인스턴스를 생성하면서 프로그램 이름을 ‘hello’로 설정합니다. 프로그램 설명은 ‘Hello Program’으로, 버전은 ‘1.0.0’으로 설정합니다. 설정은 인스턴스를 생성하면서 매개변수로 전달하여 할 수도 있고, 생성 후 프로퍼티에 값을 대입하여 할 수도 있습니다.

기본적으로 도움말(-h, –help) 옵션을 제공합니다. 버전(-v, –version) 옵션은 버전을 설정한 경우에만 사용 가능합니다.

이번에는 인사를 한국어로 출력하는 옵션(-k, –korean)을 추가했습니다. addOption() 메소드를 이용해 옵션 이름은 ‘korean’으로 하고, 짧은 옵션은 -k, 긴 옵션은 --korean으로 설정했습니다. description은 옵션에 대한 설명으로 도움말(-h) 옵션 사용시 출력됩니다. action은 옵션을 지정했을 때 어떻게 처리하는가에 대한 값으로, 여기서는 -k 옵션을 지정하면 true 값으로 설정하도록 했습니다. (StoreTrue)

옵션값은 options 배열에 옵션 이름을 첨자로 사용해서 확인 할 수 있습니다. 옵션을 사용하지 않은 경우 null 값이 됩니다. 여기서는 StoreTrue 액션으로 지정했으므로, 한국어 옵션을 사용한 경우 true 값이 됩니다.

도움말을 출력 해보면 추가한 한국어 옵션을 확인 할 수 있습니다.

이제 한국어 옵션(-k, --korean)을 사용하면 한국어로 인사말을 출력합니다.

이름을 명령행 인자로 받아 인사를 하도록 해보았습니다. addArgument() 메소드를 통해 명령행 인자를 추가 할 수 있습니다. 명령행 인자 이름은 ‘name’으로, description은 ‘이름’으로, help_name은 ‘NAME’으로 설정했습니다. descriptionhelp_name은 도움말 화면을 통해 출력됩니다.

multipletrue로 설정하면, 인자를 여럿 받을 수 있습니다. 도움말에는 help_name 뒤에 숫자를 붙이고 말줄임표를 뒤에 덧붙여서 인자를 여럿 사용 할 수 있다는 것을 보여줍니다.

명령행 인자는 args 배열을 통해서 읽어들일 수 있습니다. 옵션과 마찬가지로 명령행 인자 이름 ‘name’이 첨자로 사용됩니다.

옵션 다음에 ‘NAME’ 인자를 쓸 수 있다고 도움말에 표시됩니다. 인자가 어떤 값인지에 대한 설명은 하단 ‘Arguments’ 부분에 출력됩니다.

다음에는 옵션과 명령행 인자를 XML로 설정하는 법에 대해 이야기 해보려합니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다


*