2009-11-25 3 views
0

현재 레거시 기반/비 기능 시스템을 지원하기 위해 업데이트해야하는 레거시 기반 비 MVC PHP 프레임 워크가 있습니다.레벨/계층 기반 프레임 워크를위한 전략

정상 모드 (현재 모드)와 낮은 기능, 중간 기능, 높은 기능을 포함하는 기능을 제어하는 ​​수준 기반 모드의 두 가지 모드가 필요합니다.

예를 들어, 하위 계층은 Google지도를 지원하지 않지만 중간 및 상위 계층은 지원합니다. 레이아웃도 계층에 따라 다르므로 현재 템플릿뿐만 아니라 각 계층에 대한 템플릿 마스터 파일을 가져야합니다.

상위 수준에 포함되는 특정 항목이 있지만 수준에 따라 상위 수준이 다르지만 현재 모드 (무 수준 기반)에는 무제한 기능이 있습니다.

현재 시스템 구조가 같은 배치되어

:

templates/ 
    default.php 

includes/ 
    branding.php 
    css.php 
    js.php 
    map.php (google map) 

당신이 index.php을 방문하는 경우 또는 contact.php 그것은 단지 require_once APP_PATH . 'templates/default.php'

내가 그 가장 이상적인 유형이 아닌 것을 알고 않습니다 환경이 MVC가 아니기 때문에 기반이지만 그게 내가 ATM과 붙어있는 이유입니다. 그래서

<!doctype html> 
<html> 
<head> 
    <?php include APP_PATH . 'includes/branding.php'; 
</head> 
<body> 
    <?php 
    switch (filename) { 
     case 'map': 
     include APP_PATH . 'includes/map.php'; 
    } 
    ?> 

<?php 
include APP_PATH . 'includes/google.php'; 
?> 
</body> 
</html> 

템플릿 파일의 상당히 oldschool 유형 :

templates/default.php은 같이 보입니다. 내가 뭔가 같은 내 프레임 워크 구조를 변경해야합니다 의심 레벨링 시스템을 지원하기 위해

..

templates/ 
    level-0.php 
    level-1.php 
    level-2.php 
    level-3.php 

includes/ 
    branding.php 
    css.php 
    js.php 

지금 내 구성 파일에 내가 같은 몇 가지 상수를 정의해야합니다 ..

define('LEVEL', 1); 
define('TEMPLATE_FILE', APP_PATH . 'templates/level-' . LEVEL . '.php'); 

default.phplevel-0.php이되며 단계 기반 템플릿들은 1, 2, 3에 각각있다. -이 이상적인인가

require_once TEMPLATE_FILE 

: 나는 index.php 또는 contact-us.php와 같은 페이지를 방문 할 때

그래서 지금은 TEMPLATE_FILE 상수를 포함 할 것이다? 어떤 결점이 있습니까?

이 방법을 사용하면 4 개의 별도 템플릿 파일이 생기며 괜찮습니다. 예를 들어, 가장 낮은 계층은 map 포함을 포함하지 않고 최상위 계층은 포함합니다.

내가 우려하는 또 다른 문제는 하위 분기입니다. 포함 파일에서 분기해도 괜찮습니까? 예를 들어 가장 낮은 계층에는 favicon이 없을 것입니다. favicon 요소는 에 있으므로 해당 파일 내에서 분기해야합니다.

/css.PHP는 :

<link rel="stylesheet" type="text/css" href="main.css"> 
<?php if (LEVEL !== 1) { ?> 
<link rel="shortcut icon" href="favicon.ico"> 
<?php } ?> 

-이 조금 지저분한 얻을 수 있습니다,하지만 사방 css.php 중복과의 4 개 인스턴스를 갱신 할 필요가 저를 절약 할 수 있습니다. 이상적입니까?

로드 된 질문에 사과 드리며 조언을 주시면 감사하겠습니다.

답변

1

이것은 나에게 지저분 해 보입니다. 그리고 왜 당신이이 '평평함'방식으로 돌아가는지 궁금합니다. 왜냐하면 나에게 그것은 4 레벨의 디스플레이처럼 보이기 때문에, 1은 가장 적게, 4는 가장 많이 보입니다.

당신이, 어떤 작동이 하나의 대체 무엇을 프레임 워크를 요구하는 경우 (많은 PHP의 사람이 있습니다, 검색을 할, 내 즐겨 찾기가 codeigniter.com)

또한

이 같은 CSS보고 예를 들어, favicon만큼 중요하지 않은 것을하는 것은 왜 혼란 스럽습니다 (그러나 디스플레이 수준에 따라 CSS를 선택하는 예를 볼 수 있습니다).

하지만 CSS 파일을 한 번 (또는 4 세트로 나누었습니다 : 일반, lev1,2 등;) 다음 하나의 CSS로 포함하고 병합하십시오.

하지만 네가 머리에 못을 박았을 때 난이도가 올라 갔다. 나는 그 내용을 분리하거나 더 나은 방법으로 앉아서이 전체 프로젝트를 다시 쓰고 문제가있는 곳을 몇 가지를 확인한 것 같았습니다. 먼저 프로젝트를 작성한 다음 프로젝트 범위에 만족하면 프로그래밍하십시오.

그렇지 않으면 명확한 조치없이 프로그램을 시작하지 않는 것이 좋습니다.

+0

1 도움

희망은 내가 젠드를 선호 PHP를하도록 강요하지만 난 ....이 완전히 그것의 재 작성을 할 수있는 제안을 찾는 게 아니에요 웹 프레임 워크로 철탑을 선호합니다. 매우 간단한 예제이고 문제를 명확히 보여주기 때문에, 때로는 더 많은 양의 코드에 동일한 기술을 적용 할 것입니다. 3. 동적 인 내용은 핵심 템플릿/"뷰"와는 분리되어 있습니다. 그것은 너무 많이 다를 것이고 그것에 익숙한 사람들은 –

관련 문제