의 장점과 단점 중 하나를 사용하여 파일에 대한 전체 웹 페이지?[마감]

StackOverflow https://stackoverflow.com/questions/121849

  •  02-07-2019
  •  | 
  •  

문제

나는 확실하지 않는 방법을 내가 해야 표현이지만,나는 그것을 시도를 제공합니다.
나는 최근에 코딩 시작 포트폴리오 내에서 객체지향 PHP 이 그에 따라 최상의 방법을 사용하여 페이지 하나는 콘텐츠의 변화에 따라서 SQL 데이터 및$_GET 변?

그렇다면/지,왜?

편집:Take a look at my next post,더 깊이있는 정보.

도움이 되었습니까?

해결책

단일 파일이 모든 요청을 제공하는 프론트 컨트롤러 패턴 사용에 대해 묻고 있습니까? 종종 이것은 인덱스 .php 및 mod_rewrite로 수행됩니다. 쿼리 문자열의 매개 변수로 나머지 URL이 제공되는 모든 요청을 가져옵니다.

http://www.onlamp.com/pub/a/php/2004/07/08/front_controller.html

이 패턴은 인증과 같은 것을 처리 할 수있는 단일 장소를 제공하기 때문에이 패턴을 사용하는 것이 좋습니다. 종종 컨트롤러에 등록 된 클래스가있는 새로운 기능을 갖춘 더 엄격한 수준에서 물건을 통합해야합니다. 일부 메커니즘을 통해 많은 의미가 있습니다.

다른 사람들이 언급 한 URL에 대한 우려는 웹 사이트를 구축하는 고대 기술을 사용하지 않는 한 URL 구조와 파일 구조 사이에 실제 관계가 없기 때문에 실제로 정확하지 않습니다. Apache 기능의 좋은 덩어리는 파일/디렉토리 구조 및 URL 구조가 별개의 개념 (별칭 모듈, 모듈 재 작성, 컨텐츠 협상 등)이라는 개념을 기반으로합니다.

다른 팁

  • 확장 할 수 없습니다
  • 코드를 관리하기 어렵습니다
  • 파서는 모든 것을 구문 분석해야합니다
  • 코드 냄새의 완벽한 예
  • 하나의 오류가 전체 사이트가 충돌합니다

세션 변수 등을 사용하는 단일 랜딩 페이지 (예 : index.php)를 의미하는 경우 어떤 코드가 포함되어야하는지 알아 내면 자주 사용되는 기술입니다.

편집 : 그리고 위의 내용은 Daniel Papasian이 그의 훌륭한 게시물에서 자세히 설명하는 것을 의미합니다.

모든 HTML, SQL 및 PHP를 단일 파일에 배치한다는 것을 의미한다면 Gatekiller가 지적한 이유로 아니요.

이 actaul 페이지의 파일로 포함해야는 무엇입 diffrent 에 대해 해당 페이지에서""페이지에서 당신의 사이트(예를 들어 페이지 제목,인덱스 페이지로도 코드 최신 뉴스를 얻기 위해,etc.).모든 게(또는 수)사용에서 하나 이상의 장소로 이동해야 외부 php 파일을 포함됩니다.예제:

  • 데이터베이스의 정보(암호,이름,etc.)
  • 헤더/Footer
  • 로그인 코드

이 코드는 많아요 관리할 수 있습니다.예를 들어 변경할 경우에는 데이터베이스 암호,그것의 중 하나만 필요한 파일 업데이트하는 경우,또는 당신이 결정하는 배너를 추가하는 헤더에,그가 다시 하나만 페이지의 모든 페이지해야 하는 변화입니다.

그것은 또한 새로운 기능을 추가 훨씬 적은 작업은,예를 들어,새로운 페이지 단순히:

<?php
require ('config.php')
require ('start.php')
require ('header.php')
//custom page stuff
require ('footer.php')
?>

또는 추가에 자동 로그인을 통해 쿠키,간단한 변화를 Login()함수는(쿠키를 만드)및 start.php (에 대한 확인하는 쿠키 전화+Login()).

또한할 수 있습 easyily 전송한 파일을 다른 프로젝트에서는 미래입니다.

Gatekiller가 언급 한 모든 것 + 당신은 또한 늦은 바인딩을 활용할 수 없습니다.

  • 코드를 관리하기 어렵습니다

버전 컨트롤을 사용하는 경우 사이트의 단일 "페이지"로 발생했을 수있는 변경 사항을 롤백하기가 훨씬 어려워집니다. 당신은 뒤 따르는 모든 것을 다시 합병해야하기 때문에

Mod Rewrite를 사용하지 않는 한 검색 엔진 친화적이지 않습니다.

대부분의 동의하지 않는 경향이 있습니다. 귀하의 사이트가 사용자 정의 CMS 또는 이와 유사한 것으로 관리되면 한 페이지를 사용하지 않을 이유가 없습니다.

나는 내가 쓴 CMS와 비슷한 일을했다. 모든 클라이언트에는 테마, 컨텐츠, 첨부 파일 및 멤버 권한에 대한 데이터베이스를 쿼리하는 단일 기본값이 있습니다. 변경하기 위해 변경 사항을 한 번만 변경하고 변경에 필요한 경우 다른 고객에게 복사했습니다.

물론 이것은 대부분의 시나리오에서는 작동하지 않을 것입니다. 많은 다른 일을하는 웹 사이트가 있다면 (내 CMS가 페이지를로드하는 동안 특정 기능을 반복 한 경우) 여러 페이지가 실제로 갈 수있는 유일한 방법입니다.

관심있는 사람들에게는이 정확한 모델을 사용하는 프레임 워크가 있습니다. 원래 ColdFusion 용. 이 방법론에는 여전히 커뮤니티가 있습니다. 버전 5.5는 약 1 년 전에 출시되었습니다 (2007 년 12 월).

퓨즈 박스 프레임 워크 사이트

Wikipedia 항목

이 스크린 덤프와 다음 설명은 현재 내 코드가 어떻게 보이는지에 대한 더 나은 아이디어를 줄 수 있습니다.

File-structure

나는 '인터넷 친구', 다니엘 파파 시아와 다른 사람들이 언급 한 것과 같은 모델을 사용합니다. 전면 컨트롤러.

내 인덱스 페이지는 다음과 같습니다.

require_once 'config.php';
require_once 'class_lib/template.php';

$template = new template($config);
$template->dataQuery();
$template->pageCheck();
$template->titleAssembly();
$template->cssAssembly();
$template->metaAssembly();
$template->menuAssembly();
$template->content();
echo $template->publish();

클래스 구성은 기본 템플릿 파일을 열고 태그를 생성 된 코드로 바꾸어 각 메소드가 조작 할 수있는 변수로로드합니다. Mod_rewrite를 사용하여 정리하기 때문에 Ugly URL은 실제로 문제가되지 않습니다.
그러나 Papasian은 요점이 있습니다.이 방법은 웹 기반 응용 프로그램 등에 더 적합합니다.

처음에 내 질문에 대해 매우 구체적이지 않은 것에 대해 사과드립니다.
또한 도움을 줄 몇 줄을 떨어 뜨린 모든 사람에게 큰 '감사합니다'.

나는 종종 .php extension (예 : 사이트)없이 PHP 파일을 사용하고 추가합니다.

<Files site>
ForceType application/x-httpd-php 
</Files>

Apache가 파일을 PHP 파일로 해석하는 .htaccess에.

URL 내의 파일에 Vars를 구문 분석 할 수 있습니다. http://www.yourdomain.com/site/var1/var2/var3

사용

$var_array = explode("/",$_SERVER['REQUEST_URI']); 
$var1 = $var_array[1];
$var2 = $var_array[2];
$var3 = $var_array[3];

VARS를 얻으려면. 이렇게하면 modrewrite가없는 searchEngingingFriendsLyUrls가있는 단일 파일을 사용할 수 있습니다.

Re : URL 및 파일 구조

모든 컨텐츠가 데이터베이스에있는 사이트를 변환하고 인덱스로 액세스했습니다. P = 434 모델. 데이터베이스 사용에는 이점이 없었으며 사이트는 브라우저로 콘텐츠를 편집해야했기 때문에 콘텐츠를 추가 해야하는 사람들에게 혼란 스러웠으며 페이지는 숫자 일뿐입니다.

모든 콘텐츠를 꺼내어 별도의 파일에 넣었습니다. 각각은 현명한 이름을 가지고 있었고 폴더로 구성되었습니다. 각 파일은 다음과 같이 보였습니다.

require('sitelib');
do_header('about', 'About Us');
// content here
do_footer();

고객은 그것을 좋아했습니다. 그들은 HTML 편집기를 사용하여 들어가서 올바른 파일을 찾고 변경할 수있었습니다. 그리고 그들은 새로운 페이지를 만들 수있었습니다. 모두 말하기 : 때로는 URL 및 파일 구조가 일치하는 것이 유용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top