본 챕터의 내용은 github koenyeon ci4 endpoint_param 브랜치 https://github.com/koeunyeon/ci4/tree/endpoint_param 에서 확인하실 수 있습니다.
엔드포인트에 파라미터를 입력받는 방법을 알아보겠습니다. Sample
컨트롤러에 아래의 메소드를 두 개 추가합니다.
/app/Controllers/Sample.php
public function param($name): string // (1)
{
return "param name is " . $name; // (2)
}
public function param2($name, $age): string // (3)
{
return "param name is $name. age is $age"; // (4)
}
http://localhost:8080/sample/param/ci4 URL에 접속해서 결과를 확인해 보겠습니다.
http://localhost:8080/sample/param2/ci4/5 URL도 접속해서 결과를 확인해 보겠습니다.
코드를 확인해 보겠습니다.
(1) 첫번째 메소드 param
은 엔드포인트 파라미터를 입력받는 간단한 예제입니다. 메소드 파라미터로 $name
이 선언되었습니다.
코드이그나이터4에서 엔드포인트 파라미터는 경로의 3번째 항목부터 차례로 바인딩됩니다. 예를 들어 /sample/param/ci4 경로가 서버로 요청되면, 코드이그나이터 4는 Sample
클래스의 param
메소드를 ci4
라는 파라미터로 호출합니다. 이런 식으로요.
$sample = new Sample();
$sample->param("ci4");
(2) 경로를 통해 입력받은 파라미터 $name
을 출력합니다.
return "param name is " . $name;
(3) 두번째 메소드 param2
는 파라미터가 $name
, $age
두 개입니다. 짐작할 수 있듯이 $name
은 경로의 세번째 항목을, $age
는 경로의 네번째 항목을 전달받습니다. /sample/param2/ci4/5 경로에서 $name
파라미터는 ci4
값을 가지고 $age
파라미터는 5
값을 가집니다. 아마도 코드이그나이터4 프레임워크는 call_user_func_array
등을 이용해서 아래와 비슷한 동작을 하겠죠.
$sample->param2("ci4", 5);
(4) 파라미터가 정상적으로 읽어지는지 확인하기 위해 클라이언트에 결과를 응답합니다.