관리자(백오피스)

관리자 URL을 통하여 컨트롤러에 접근하는 방법에 대해 설명 합니다.

컨트롤러(Controller)

관리자 컨트롤러는 프론트 컨트롤러와 달리 Ajax 연동 기능이 하나의 컨트롤러에 통합되어 관리됩니다. HTTP 메소드(GET, POST)에 따라 View에 데이터를 전달하거나, JSON 형태의 데이터를 비동기 방식으로 전달합니다.

관리자 컨트롤러는 모듈로 구성되며, 모듈그룹으로 묶여 application/module/{moduleGroup}/controllers 디렉토리에 위치합니다.

프론트 Ajax 컨트롤러와 같이 PascalCase 형식으로 작성된 파일명과 .class.php 확장자를 사용합니다.

관리자 컨트롤러의 URL은 /{moduleGroup}/{class}/{method}로 구성되며 클래스명과 파일명에 별도의 접두사와 접미사를 사용하지 않고 namespace CustomScm\Controller\{moduleGroup};을 사용합니다.

만약 URL이 /product/listProduct/get라면 컨트롤러의 클래스명은 ListProduct이고 파일은 application/module/product 아래 ListProduct.class.php입니다.

URL file path method
http(s)://www.test.com/product/listProduct/get application/module/product/controllers/ListProduct.class.php get()

작성 예> ListProduct.class.php

<?php

namespace CustomScm\Controller\Product;

class ListProduct extends \ForbizAdminController
{

    public function __construct()
    {
        parent::__construct();
    }

    public function get()
    {
        // ....
    }
}

{method} 이후 / 로 구분되어 전달되는 문자열은 파라메터로 입력되며 변수를 통하여 전달 받습니다.

URL file path method
http(s)://www.test.com/product/listProduct/get/123 application/module/product/controllers/ListProduct.class.php get()
<?php

namespace CustomScm\Controller\Product;

class ListProduct extends \ForbizAdminController
{

    public function __construct()
    {
        parent::__construct();
    }

    // http(s)://www.test.com/product/listProduct/get/123

    public function get($pid = false)
    {
        // ....
        if($pid !== false) {
            // 상품 정보 조회
        } else {
            // ...
        }
    }
}