웹 애플리케이션이 계속 발전함에 따라 웹 사이트 구축 방식도 지속적으로 개선되고 있습니다. 과거에는 개발자들이 각기 다른 요청을 처리하는 여러 파일을 사용하여 웹사이트를 구축하는 경우가 많았습니다. 그러나 이 접근 방식은 유지 관리가 어려운 지저분한 코드를 초래할 수 있습니다. 이를 바탕으로 코드를 모델, 뷰, 컨트롤러의 세 부분으로 나누어 코드를 쉽게 구성하고 관리할 수 있는 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['REQUEST_URI']; if (preg_match('/index.php\/(?P<controller>[a-z]+)\/(?P<action>[a-z]+)/', $request, $matches)) { $controller = ucfirst($matches['controller']) . 'Controller'; $action = $matches['action'] . 'Action'; } else { $controller = 'IndexController'; $action = 'indexAction'; }
위 코드는 URL을 컨트롤러와 액션이라는 두 개의 매개변수로 구문 분석하고 이를 $controller 및 $action 변수에 할당합니다. URL이 규칙을 준수하지 않는 경우 기본적으로 IndexController 및 indexAction이 사용됩니다.
컨트롤러 및 작업 구현 컨트롤러는 단일 입력 모드의 핵심 부분으로 요청을 수신하고 해당 작업을 호출하는 역할을 합니다. 동시에 컨트롤러는 데이터 처리 및 출력 보기도 담당합니다. 일반적인 컨트롤러는 다음과 같습니다.
class IndexController { public function indexAction() { // 处理数据 $data = ['title' => 'Hello World']; // 输出视图 require_once 'index.view.php'; } }
위 코드는 indexAction 액션이 있는 IndexController 컨트롤러를 정의합니다. 데이터는 작업에서 처리되고 출력을 위해 뷰로 전달됩니다. ## 뷰 구현 뷰는 단일 입력 모드의 또 다른 중요한 부분으로, 컨트롤러가 전달한 데이터를 처리하고 사용자에게 데이터를 표시하는 역할을 합니다. HTML과 CSS를 사용하여 뷰를 만들 수 있습니다. 간단한 보기는 다음과 같습니다.
<!DOCTYPE html> <html> <head> <title><?= $data['title'] ?></title> </head> <body> <h1><?= $data['title'] ?></h1> <p>Welcome to my website.</p> </body> </html>
위 코드는 PHP 짧은 태그를 사용하여 컨트롤러가 전달한 데이터를 출력합니다.
결론 이 기사에서는 MVC 프레임워크를 사용하지 않고 PHP를 사용하여 단일 진입점을 구현하는 방법을 소개했습니다. 우리는 .htaccess 파일을 사용하여 모든 요청을 index.php 파일로 전달하고 URL을 구문 분석하여 적절한 컨트롤러 및 작업에 매핑하도록 경로를 지정합니다. 동시에 컨트롤러와 뷰의 구현 방법도 소개했습니다. 단일 진입점을 사용하면 코드를 더욱 체계적으로 구성하고 코드의 유지 관리성과 보안을 향상할 수 있습니다.
위 내용은 MVC 프레임워크를 사용하지 않고 PHP를 사용하여 단일 진입점을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!