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