- 인쇄
- PDF
PHP
- 인쇄
- PDF
PHP 형식의 액션을 생성하고 다양하게 활용하는 방법과 예제를 소개합니다.
액션 생성
JavaScript의 NPM처럼 PHP의 패키지 매니저인 컴포저(Composer)를 사용하여 의존성을 관리할 수 있으며 의존성 라이브러리와 함께 패키징하여 액션을 생성할 수도 있습니다. PHP로 작성한 코드는 여러 개의 함수를 포함할 수 있지만 main
함수는 프로그램의 시작점으로서 반드시 선언되어야 합니다. 이 점을 고려하여 이름과 장소를 포함하여 "Hello World"를 출력하는 PHP 형식의 간단한 예제 코드 hello.php
는 다음과 같습니다.
<?php
function main(array $args) : array
{
$name = $args["name"] ?? "World";
$place = $args["place"] ?? "Naver";
$greeting = "Hello $name in $place!";
echo $greeting;
return ["payload" => $greeting];
}
?>
위에서 작성한 코드를 사용하여 콘솔에서 'hello'라는 이름의 액션을 생성하는 과정은 다음과 같습니다.
의존성 파일을 함께 패키징하여 액션 생성
코드를 작성하다 보면 하나의 액션 파일 외에 의존 파일들을 함께 패키징해야 하는 경우가 있습니다. 이러한 경우 관련된 파일들을 하나의 파일로 압축하여 패키징하고, 압축된 파일을 이용하여 액션을 생성할 수 있습니다.
기본값으로 사용되는 main(args)
함수와 같이 액션 실행 시 진입점 역할을 하는 메인 함수는 index.php 파일 안에 반드시 정의되어 있어야 합니다.
예를 들어 메인 액션에서 사용되는 함수들이 작성된 helper.php
파일과 함께 패키징하여 액션을 생성하고 싶은 경우, 다음 명령어를 사용하여 액션과 관련된 파일들을 helloPHP.zip으로 압축합니다.
zip -r helloPHP.zip index.php hello.php
이후 생성된 압축 파일을 사용하여 액션을 생성할 수 있습니다.
컴포저(Composer) 의존성을 패키징하여 액션 생성
PHP 액션 코드를 작성할 때 의존성 관리 도구인 composer을 사용하여 여러 라이브러리를 사용하는 경우가 있습니다. 이러한 경우 기본적으로 패키징하는 방법과 동일하게 vendor
에 포함된 의존 모듈까지 함께 패키징하여 액션을 생성하고 실행할 수 있습니다. 또한 메인 함수가 index.php
파일 안에 정의되어 있어야 합니다.
fzaninotto/faker
라이브러리를 추가하여 실제 주소와 유사한 fake 데이터를 생성하는 액션을 생성하는 예제는 다음과 같습니다.
composer 명령을 통해 라이브러리를 설치해 주십시오.
$ composer require fzaninotto/faker
index.php 파일 이름으로 fake address를 반환하는 메인 함수를 정의해 주십시오.
<?php require __DIR__ . '/vendor/autoload.php'; function main(array $args) : array { $faker = Faker\Factory::create(); return ["address" => $faker->address]; } ?>
vendor 폴더와 index.php 파일을 함께 압축하여 주십시오.
$ zip -r composerPHP.zip vendor index.php
압축 파일을 업로드하여 액션을 생성해 주십시오.