개발 꿀팁/PHP

CrossPHP 프레임워크의 상용 동작

Jammie 2022. 7. 27. 14:32
반응형

1. 뷰 컨트롤러에서 리소스 파일의 절대 경로를 생성하기 위해 $this->res() 메서드를 사용합니다

$this->res('css/style.css');

생성된 연결은 http://youdomain.com/static/css/style.css입니다.


2. 지정한 앱의 이름을 가진 연결 생성
$this->appUrl() 첫 번째 매개 변수는 기초 url이고, 두 번째 매개 변수는 앱 이름, 세 번째 매개 변수입니다.컨트롤러용: 메서드 네 번째 매개 변수는 열입니다.표, 다섯 번째 매개 변수는 암호화 연결 생성 여부를 나타냅니다.



3. 레이아웃 파일에서 뷰 컨트롤러를 호출하는 방법

레이아웃 파일에 $this->action() 을 직접 사용하면 뷰 컨트롤러의 메소드를 호출할 수 있습니다. 다음 예와 같습니다

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
 
    <meta name="Keywords" content="<?php echo isset($keywords) ? $keywords : "기본 키워드"); ?>"/>
    <meta name="Description" content="<?php echo isset($description) ? $description : '기본 설명'; ?>"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
 
    <title><?php echo isset($title)?$title:'기본 제목' ?></title>
    <?php $this->loadRes() ?>
</head>
<body>
    <?php echo isset($content)?$content:'' ?>
</body>
</html>

4. 템플릿에 링크 생성
템플릿에서 url 메서드 호출, 자동으로 연결이 생성될 수 있으며, 다른 이름이 있는 경우 다른 이름을 먼저 사용할 수 있습니다

$this->url('controller:action', array('key'=>'value'));

5. 컨트롤러에서 다른 컨트롤러로 이동

$this->to([controller:action, params, sec])

지정된 페이지로 이동하면, 이 방법은 $this ->view ->link()의 연결이며, url을 생성한 후 header 함수로 점프한다.

6. 컨트롤러에서 보기 불러오기

$this->display([data, method, http_response_status])

보기 제어를 호출합니다. $this ->view ->display() 연결.

7. 컨트롤러에서 매개 변수 받기

현재 url을 가정하여

http://domain/skeleton/htdocs/web/controller/action/p1/1/p2/2

메서드 내에서 컨트롤러의 $this->params 속성을 사용하면 매개 변수의 값을 얻을 수 있습니다.

namespace app\web\controllers;
 
use Cross\MVC\Controller;
 
class User extends Controller
{
    function index()
    {
        print_r($this->params);
    }
}

skeleton/ app/ web/ init.php의 값이 url['type'] = 3일 때 연결된 인덱스 배열로 출력합니다

Array ( 'p1' => 1 'p2' => 2 )

출력 결과는 앱 프로필에 있는 url 항목의 설정에 따라 차이가 있을 수 있습니다

8. 컨트롤러에서 modules 사용


컨트롤러에서 modules 사용, UserModules 사용예:

namespace app\web\controllers;
 
use Cross\MVC\Controller;
 
class User extends Controller
{
    function index()
    {
        $USER = new UserModules();
    }
}

클래스 내 각 action이 UserModules에 의존한다면, UserModules를 초기화하는 작업을 생성자에 넣을 수 있다

namespace app\web\controllers;
 
use Cross\MVC\Controller;
 
class User extends Controller
{
    /**
     * @var UserModule
     */
    protected $USER;
 
    function __construct()
    {
        parent::__construct();
        $this->USER = new UserModule();
    }
 
    function index()
    {
 
    }
}

컨트롤러에서 볼 수 있게 된 후 바로 제공하는 방법을 실행하고 있었다. modules



9. 길에서 보기 틀. 방문은 지정

http://up.kuman.com/api/getWithdrawInfo(은 URL을 고정으로 쓰지만, 이 방식은 일반적인 온라인과 로컬 디버깅이 같은 도메인 이름을 사용하지 않는다는 단점이 있습니다. 만약 직접 고정으로 작성한다면, 우리가 정의한 경로를 하나씩 변경해야 할 것입니다.)

그래서 crossPHP에서는 이런 식으로 라우팅하는 것을 추천한다.

반응형

'개발 꿀팁 > PHP' 카테고리의 다른 글

Nginx가 Upstream을 사용하여 움직임 분리하기  (0) 2022.07.27
PHP 정책 패턴 쓰기  (0) 2022.07.27
php zip 압축 파일 읽기 (스트리밍 동작)  (0) 2022.07.27
php 원형 페이지  (0) 2022.07.27
Docker의 PHP 설치 방법  (0) 2022.07.26