프론트(쇼핑몰)¶
프론트 URL을 통하여 컨트롤러에 접근하는 방법에 대해 설명 합니다.
컨트롤러(Controller)¶
사용자의 입력 데이터를 모델에 전달하여 데이터를 가져온후 템플릿 코드와 HTML로 작성된 뷰 파일에 모델을 연결합니다.
웹 디자이너, 퍼블리셔와 분업/협업을 위하여 URL과 매핑된 경로를 사용하며 최종 결과물은 HTML로 생성됩니다.
컨트롤러는 camelCase
형식으로 작성된 파일명과 .view.php
확장자를 사용합니다.
URL | file path |
---|---|
http(s)://www.test.com/shop/getList | application/www/shop/getList.view.php |
라우팅을 통하여 파일명 뒤에 오는 /
로 구분된 문자열은 파라메터로 전달되며 getParams()
를 통하여 추출 할 수 있습니다.
URL | file path | getParams(0) |
---|---|---|
http(s)://www.test.com/shop/goodsDetail/0000001 | application/www/shop/goodsDetail.view.php | 0000001 |
getParams()
사용 예시
<?php
// Load Forbiz View
$view = getForbizView();
// 상품 코드
$id = $view->getParams(0);
// 카테고리 코드
$cid = $view->getParams(1);
if ($id != '') {
// ...
}
Ajax 컨트롤러¶
사용자의 입력 데이터는 비동기 방식으로 모델에 전달하여 데이터를 입력, 수정, 삭제할 때 사용되는 컨트롤러입니다. 비즈니스 로직이 포함되어 있으며 최종 결과물은 JSON으로 생성됩니다.
Ajax 컨트롤러는 application/custom/controller/mall
디렉토리에 위치하며 PascalCase
형식으로 작성된 파일명과 .class.php
확장자를 사용합니다.
Ajax 컨트롤러의 URL은 /controller/{class}/{method}
로 구성되며 클래스명과 컨트롤러 파일명은 접두사 CustomMall
과 접미사 Controller
를 반드시 사용하여 작성합니다.
만약 URL이 /controller/product
라면 Ajax 컨트롤러의 클래스명은 CustomMallProductController
이고 파일명은 CustomMallProductController.class.php
입니다.
URL | file path | method |
---|---|---|
http(s)://www.test.com/controller/product/getGoodsList | application/custom/controller/mall/CustomMallProductController.class.php | getGoodsList() |
작성 예> CustomMallProductController.class.php
<?php
class CustomMallProductController extends ForbizMallProductController
{
public function __construct()
{
parent::__construct();
}
public function getGoodsList()
{
// ....
}
}
{method}
이후 /
로 구분되어 전달되는 문자열은 파라메터로 입력되며 변수를 통하여 전달 받습니다.
URL | file path | method |
---|---|---|
http(s)://www.test.com/controller/product/getGoodsDetail/123 | application/custom/controller/mall/CustomMallProductController.class.php | getGoodsDetail() |
<?php
class CustomMallProductController extends ForbizMallProductController
{
// http(s)://www.test.com/controller/product/getGoodsDetail/123
public function getGoodsDetail($pid)
{
if(empty($pid) === false) {
// 상품 정보 조회
} else {
// ...
}
}
}