컨트롤러에 머리글, 메뉴 및 바닥 글 포함

키드 다이아몬드

내 자신의 기본 MVC (또는 MVP라고도 부를 수있는 MVP) 프레임 워크를 만들고 있으며, 컨트롤러에 머리글, 바닥 글 및 기타 항목을 포함하는 모범 사례 방법을 알고 싶습니다.

현재 나는 모든 컨트롤러 의 끝에서 다음과 같이하고 있습니다 .

class Index extends Controller
{
    public function index()
    {
        $hData = array(
            'title'       => 'Home',
            'stylesheets' => array(
                'style1.css',
                'style2.css'
            ),
            'javascripts' => array(
                'script1.js',
                'script2.js'
            )
        );

        $cData = array(
            'heading' => 'My first PHP application',
            'message' => 'Hello, world!'
        );

        //HTML Output
        $header  = new View('/views/header.php');
        $html    = $header->fetch($hData);

        $menu    = new View('/views/menu.php');
        $html   .= $header->fetch();

        $content = new View('/views/index.php');
        $html   .= $content->fetch($cData);

        $footer  = new View('/views/footer.php');
        $html   .= $footer->fetch();

        echo $html;
    }
}

내가 올바르게하고 있습니까, 아니면 더 나은 방법이 있습니까? 그렇다면 예를 들어 매우 감사하겠습니다.

데니스 v

일반적으로 MVC 프레임 워크를 직접 구축하면 일부 타협을 받아 들여야합니다. 하지만 제가 생각하는 것은 다음과 같습니다.

  1. 템플릿 엔진이 있어야합니다 (이상적으로는 대체 가능). PHP 일 수도 있고 이미 존재하는 일부일 수도 있습니다 (Twig, Smarty).

  2. 컨트롤러는 템플릿 엔진에 의해 렌더링되는 특정 뷰에 대해서만 알아야합니다. 따라서 뷰는 템플릿 파일에 대한 구체적인 경로가 아닌 이름으로 사용할 수 있어야합니다.

  3. 템플릿 엔진은 템플릿 이름을 실제 템플릿 파일로 확인하는 방법을 알고 있어야합니다.

  4. 템플릿 엔진은 컨트롤러에서 전달할 수있는 템플릿에 대한 변수를 받아 들일 수 있어야합니다.

  5. 헤더, 바닥 글 등을 포함하는 것은 템플릿 엔진이나 템플릿 내에서 고려되어야하지만 컨트롤러 내에서는 고려되지 않습니다. 예를 들어, 코드는 일부 내부 HTML을 보여주는 AJAX 호출을 지원할 수 있습니다. 이 경우 템플릿의 이름은 동일 할 수 있지만 컨트롤러에서 전달 된 일부 var에 따라 템플릿 엔진 (또는 템플릿 자체)은 일반 요청에 대해 머리글과 바닥 글을 표시하고 ajax 요청에 대해서는 생략 할 수 있습니다.

  6. 그리고 확실히, 템플릿에로드 할 css 파일을 하드 코딩 된 방식으로 정의하는 것은 컨트롤러의 작업이 아닙니다. 그러나, 컨트롤러에서 읽은 다음 변수로 템플릿에 전달 될 수있는 몇 가지 시스템 설정합니다.

추가 유연성이 필요하지 않거나 나중에 Smarty 또는 Twig로 전환 할 필요가 없다고 확신하는 경우 2와 3은 선택 사항 일 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이메일 클라이언트 <td>를위한 이메일 뉴스 레터 머리글 및 바닥 글 정렬

분류에서Dev

rmarkdown 및 pandoc에 대한 YAML 메타 블록의 머리글 및 바닥 글

분류에서Dev

여러 페이지에 포함 할 머리글 및 바닥 글 파일을 만드는 방법

분류에서Dev

VBA (Word)-바닥 글 모양 컬렉션에는 바닥 글 및 머리글 모양이 모두 포함됩니다.

분류에서Dev

tableView 섹션 바닥 글 및 머리글 스크롤

분류에서Dev

사이트 최적화 및 머리글 / 바닥 글 페이지

분류에서Dev

Excel 파일의 머리글 및 바닥 글 텍스트 교체

분류에서Dev

Excel 파일의 머리글 및 바닥 글 텍스트 교체

분류에서Dev

html 및 css의 바닥 글 메뉴

분류에서Dev

가져온 .csv에서 머리글 및 바닥 글 제거

분류에서Dev

.docx 파일에서 머리글 및 바닥 글 제거

분류에서Dev

모달 팝업에 머리글 및 바닥 글 누락

분류에서Dev

ABCpdf 복사 머리글 및 바닥 글

분류에서Dev

SwiftUI WebView에서 콘텐츠 사용자 지정 (바닥 글 및 머리글 메모 추가)

분류에서Dev

부트 스트랩 바닥 글 메뉴

분류에서Dev

Word에서 머리글 및 바닥 글의 Powershell 업데이트 필드

분류에서Dev

그리드 레이아웃-머리글과 바닥 글에서 전체 높이 나머지가있는 사이드 바 및 메인 콘텐트 할당?

분류에서Dev

CSS 머리글 및 바닥 글, 스크롤 가능한 콘텐츠

분류에서Dev

고정 머리글 및 바닥 글 스크롤 가능한 기본 영역

분류에서Dev

Google 앱 스크립트 | 머리글 및 바닥 글 | 텍스트 교체

분류에서Dev

drupal7 분할 스크립트 변수 (머리글 및 바닥 글용)

분류에서Dev

Divi Theme Builder, Wordpress 템플릿 페이지에 머리글 및 바닥 글 추가

분류에서Dev

PHP를 사용하는 머리글 및 바닥 글에 대한 .htaccess

분류에서Dev

현재 CSS Flexbox 레이아웃에 바닥 글 DIV 및 머리글 DIV 추가

분류에서Dev

VBA Excel-Word에서 머리글 및 바닥 글 연결 해제

분류에서Dev

Facebook 그래프 게시 기능에 줄 바꿈 및 글 머리 기호 포함

분류에서Dev

테이블 및 div 내의 고정 머리글 및 바닥 글?

분류에서Dev

HTML 구성 요소를 만드는 방법은 바닥 글 메뉴에 포함되지 않습니까?

분류에서Dev

동적 콘텐츠가 포함 된 정적 머리글 / 바닥 글 포함

Related 관련 기사

  1. 1

    이메일 클라이언트 <td>를위한 이메일 뉴스 레터 머리글 및 바닥 글 정렬

  2. 2

    rmarkdown 및 pandoc에 대한 YAML 메타 블록의 머리글 및 바닥 글

  3. 3

    여러 페이지에 포함 할 머리글 및 바닥 글 파일을 만드는 방법

  4. 4

    VBA (Word)-바닥 글 모양 컬렉션에는 바닥 글 및 머리글 모양이 모두 포함됩니다.

  5. 5

    tableView 섹션 바닥 글 및 머리글 스크롤

  6. 6

    사이트 최적화 및 머리글 / 바닥 글 페이지

  7. 7

    Excel 파일의 머리글 및 바닥 글 텍스트 교체

  8. 8

    Excel 파일의 머리글 및 바닥 글 텍스트 교체

  9. 9

    html 및 css의 바닥 글 메뉴

  10. 10

    가져온 .csv에서 머리글 및 바닥 글 제거

  11. 11

    .docx 파일에서 머리글 및 바닥 글 제거

  12. 12

    모달 팝업에 머리글 및 바닥 글 누락

  13. 13

    ABCpdf 복사 머리글 및 바닥 글

  14. 14

    SwiftUI WebView에서 콘텐츠 사용자 지정 (바닥 글 및 머리글 메모 추가)

  15. 15

    부트 스트랩 바닥 글 메뉴

  16. 16

    Word에서 머리글 및 바닥 글의 Powershell 업데이트 필드

  17. 17

    그리드 레이아웃-머리글과 바닥 글에서 전체 높이 나머지가있는 사이드 바 및 메인 콘텐트 할당?

  18. 18

    CSS 머리글 및 바닥 글, 스크롤 가능한 콘텐츠

  19. 19

    고정 머리글 및 바닥 글 스크롤 가능한 기본 영역

  20. 20

    Google 앱 스크립트 | 머리글 및 바닥 글 | 텍스트 교체

  21. 21

    drupal7 분할 스크립트 변수 (머리글 및 바닥 글용)

  22. 22

    Divi Theme Builder, Wordpress 템플릿 페이지에 머리글 및 바닥 글 추가

  23. 23

    PHP를 사용하는 머리글 및 바닥 글에 대한 .htaccess

  24. 24

    현재 CSS Flexbox 레이아웃에 바닥 글 DIV 및 머리글 DIV 추가

  25. 25

    VBA Excel-Word에서 머리글 및 바닥 글 연결 해제

  26. 26

    Facebook 그래프 게시 기능에 줄 바꿈 및 글 머리 기호 포함

  27. 27

    테이블 및 div 내의 고정 머리글 및 바닥 글?

  28. 28

    HTML 구성 요소를 만드는 방법은 바닥 글 메뉴에 포함되지 않습니까?

  29. 29

    동적 콘텐츠가 포함 된 정적 머리글 / 바닥 글 포함

뜨겁다태그

보관