1. 뷰 컨트롤러에서 $this->res() 메서드를 사용하여 리소스 파일의 절대 경로 생성
$this->res('css/style.css');
2. 지정된 app 이름의 연결 생성
$this->appUrl() 첫번째 인자는 기본 url이고, 두번째 인자는 app 이름, 세번째 인자는 컨트롤러: 방법 네번째 인자는 인자의 목록, 다섯번째 인자는 암호화된 연결을 생성할지 여부를 나타냅니다.
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 )
출력 결과는 app 구성 파일의 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. 보기 템플릿에서 지정한 경로에 액세스하기
따라서, crossPHP에서는, 역시 이러한 방식으로 라우팅하는 것을 추천한다
'개발 꿀팁 > PHP' 카테고리의 다른 글
PHP가 데이터베이스에 이미지를 업로드하고 표시 (0) | 2022.10.31 |
---|---|
논단에서 무한분류의 원리 (0) | 2022.10.31 |
PHP 프로젝트에서 캐시된 다양한 응용 프로그램 구현 (0) | 2022.10.28 |
Nginx는 Upstream을 사용하여 동정을 분리한다 (0) | 2022.10.28 |
crossphp 프레임워크에서, 템플릿에 다른 템플릿을 로드합니다 (0) | 2022.10.28 |