프론트(쇼핑몰)

프론트 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 {
            // ...
        }
    }
}