2012-10-11 3 views
0

PHP를 배우는 데 최근에 익숙해 져서 웹 페이지를 만드는 데 이상한 디자인 패턴을 따르는 것을 알았지 만 실제로 생각보다 똑똑한 지 모르겠습니다. 그냥 쓰레기 뒤죽박죽입니다.모듈 방식의 목적으로 php를 사용하는 다른 접근 방식

기본적으로 모든 웹 페이지가 웹 사이트에서 일반적으로 동일하므로 PHP를 사용하여 웹 사이트의 머리글과 바닥 글을로드합니다. 나는 각 페이지의 중심 내용을 위해 html을로드하기 위해 PHP를 사용한다.

머리말과 꼬리말의 "템플릿"이 이미 만들어 졌기 때문에 새로운 웹 페이지를 빠르게 만들 수 있다고 생각합니다. 코드가 본질적으로 더 작은 코드의 상호 교환 가능한 블록을 가지고 있기 때문에 웹 사이트 관리가 더 쉽습니다. 그냥 바꿔 치기 만하면 돼.

다른 사람이 이런 종류의 방법을 사용합니까? 더 효율적인 비슷한 패턴이 있습니다.

+1

네, 많은 사람들이 당신이 발견 한 모듈성에 따라 작동하는 템플릿 엔진/프레임 워크를 작성했습니다. 어떤 것은 단순하고, 어떤 복잡한 것은 복잡합니다. 인터넷 검색에는 많은 가치가 있습니다. 탐색! – nickhar

답변

0

이것은 좋은 코딩 방법입니다. 나는 항상이 방법으로 웹 사이트를 구축하므로 콘텐트를 추가하고 라이브를 신속하게 얻을 수 있으며 Django 백 엔드를 구축 할 수 있습니다.

나는 반대로 생각합니다. 각 페이지 (예 : index.php)는 headerfooter에 대해 include입니다.

내가 작성한 매우 유용한 점은 현재 디렉토리를 결정하는 짧은 PHP 스크립트로, 모든 페이지에서 항상 동일한 방식으로 링크를 입력 할 수 있습니다.

<?php 

//This function generates a string of the page URL 
function curPageURL() { 
if ($_SERVER["SERVER_PORT"] != "80") { 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 
//We then store the URL as a string 
$url = curPageURL(); 
//And split the string up everytime there is a backslash 
$pieces = explode('/', $url); 

//Each backslash corresponds to a directory, so we can now use this to compute 
//what we need to prepend to the links. 

//Root 
if (count($pieces) == 2) 
    $root = ''; 
else if (count($pieces) == 3) 
$root = '../'; 
else if (count($pieces) == 4) 
$root = '../../'; 

//Finally, we include the header file. 
include($root . 'header.php'); 
?> 

이 방법으로, 웹 페이지의 모든 링크가 같은 형태를 취할 :

는 코드입니다.

<a href="<?php echo $root; ?>business/"> 

이것은 또한 당신이 404에 일어날 어떤 디렉토리에 나타납니다 해당 페이지로 404 페이지에 특별한 사용을 가지고!

0

이것은 모든 개발자가 시작하는 방식에 기초를두고 있지만 올바른 기능을 갖춘 템플리트 시스템, MVC 프레임 워크 또는 CMS에 이미 내장 된 기능이 이미 포함되어있는 CMS로 전환하는 것이 좋습니다. . 학습과

당신은 일반적으로도 한 번에 3를 사용하거나 CMS가 다른 구성 요소 자체를 제공 할 것입니다 ...

행운을 빕니다!

관련 문제