> 백엔드 개발 > PHP 문제 > MVC 프레임워크를 사용하지 않고 PHP를 사용하여 단일 진입점을 구현하는 방법

MVC 프레임워크를 사용하지 않고 PHP를 사용하여 단일 진입점을 구현하는 방법

PHPz
풀어 주다: 2023-03-29 14:40:08
원래의
706명이 탐색했습니다.

웹 애플리케이션이 계속 발전함에 따라 웹 사이트 구축 방식도 지속적으로 개선되고 있습니다. 과거에는 개발자들이 각기 다른 요청을 처리하는 여러 파일을 사용하여 웹사이트를 구축하는 경우가 많았습니다. 그러나 이 접근 방식은 유지 관리가 어려운 지저분한 코드를 초래할 수 있습니다. 이를 바탕으로 코드를 모델, 뷰, 컨트롤러의 세 부분으로 나누어 코드를 쉽게 구성하고 관리할 수 있는 MVC 아키텍처가 탄생했습니다. 그러나 일부 소규모 애플리케이션이나 초보자의 경우 MVC 아키텍처를 사용할 필요가 없으며 MVC 프레임워크를 사용하면 애플리케이션에 대한 액세스가 늘어나 성능 최적화에 도움이 되지 않습니다.

이 글에서는 MVC 프레임워크를 사용하지 않고 PHP를 사용하여 단일 항목을 구현하는 방법을 소개합니다.

Single Entry

단일 항목은 애플리케이션에서 사용되는 아키텍처입니다. 전체 애플리케이션에는 하나의 항목 파일만 있고 모든 요청은 이 파일에 의해 처리됩니다. 이 아키텍처의 장점은 요청을 균일하게 관리하고 쉽게 유지 관리할 수 있다는 것입니다. 동시에 불법 액세스를 방지하기 위해 요청에 대해 보안 제한을 구현할 수도 있습니다. PHP에서는 .htaccess 파일을 사용하여 모든 요청을 index.php 파일로 전달하여 단일 항목을 얻을 수 있습니다.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L]
</IfModule>
로그인 후 복사

위 코드는 요청을 index.php 파일로 전달합니다. 요청한 파일이 존재하지 않고 요청한 디렉터리가 존재하지 않는 경우에만 전달됩니다. ## 라우팅 구현 단일 입력 모드에서는 URL을 구문 분석하고 이를 해당 컨트롤러 및 작업에 매핑해야 합니다. 이 프로세스를 라우팅이라고 합니다. 정규식을 사용하여 URL을 컨트롤러와 액션이라는 두 가지 매개변수로 구문 분석할 수 있습니다.

$request = $_SERVER[&#39;REQUEST_URI&#39;];
if (preg_match(&#39;/index.php\/(?P<controller>[a-z]+)\/(?P<action>[a-z]+)/&#39;, $request, $matches)) {
    $controller = ucfirst($matches[&#39;controller&#39;]) . &#39;Controller&#39;;
    $action = $matches[&#39;action&#39;] . &#39;Action&#39;;
} else {
    $controller = &#39;IndexController&#39;;
    $action = &#39;indexAction&#39;;
}
로그인 후 복사

위 코드는 URL을 컨트롤러와 액션이라는 두 개의 매개변수로 구문 분석하고 이를 $controller 및 $action 변수에 할당합니다. URL이 규칙을 준수하지 않는 경우 기본적으로 IndexController 및 indexAction이 사용됩니다.

컨트롤러 및 작업 구현 컨트롤러는 단일 입력 모드의 핵심 부분으로 요청을 수신하고 해당 작업을 호출하는 역할을 합니다. 동시에 컨트롤러는 데이터 처리 및 출력 보기도 담당합니다. 일반적인 컨트롤러는 다음과 같습니다.

class IndexController
{
    public function indexAction()
    {
        // 处理数据
        $data = [&#39;title&#39; => &#39;Hello World&#39;];
        
        // 输出视图
        require_once &#39;index.view.php&#39;;
    }
}
로그인 후 복사

위 코드는 indexAction 액션이 있는 IndexController 컨트롤러를 정의합니다. 데이터는 작업에서 처리되고 출력을 위해 뷰로 전달됩니다. ## 뷰 구현 뷰는 단일 입력 모드의 또 다른 중요한 부분으로, 컨트롤러가 전달한 데이터를 처리하고 사용자에게 데이터를 표시하는 역할을 합니다. HTML과 CSS를 사용하여 뷰를 만들 수 있습니다. 간단한 보기는 다음과 같습니다.

<!DOCTYPE html>
<html>
<head>
    <title><?= $data[&#39;title&#39;] ?></title>
</head>
<body>
    <h1><?= $data[&#39;title&#39;] ?></h1>
    <p>Welcome to my website.</p>
</body>
</html>
로그인 후 복사

위 코드는 PHP 짧은 태그를 사용하여 컨트롤러가 전달한 데이터를 출력합니다.

결론 이 기사에서는 MVC 프레임워크를 사용하지 않고 PHP를 사용하여 단일 진입점을 구현하는 방법을 소개했습니다. 우리는 .htaccess 파일을 사용하여 모든 요청을 index.php 파일로 전달하고 URL을 구문 분석하여 적절한 컨트롤러 및 작업에 매핑하도록 경로를 지정합니다. 동시에 컨트롤러와 뷰의 구현 방법도 소개했습니다. 단일 진입점을 사용하면 코드를 더욱 체계적으로 구성하고 코드의 유지 관리성과 보안을 향상할 수 있습니다.

위 내용은 MVC 프레임워크를 사용하지 않고 PHP를 사용하여 단일 진입점을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿