2012-04-17 3 views
0

최근에이 tiny mvc boilerplate을 사용하여 다음 MVC 코드를 구현했습니다. 작은 구조체 만 필요로하기 때문에 Zend 나 Symfony를 사용하고 싶지는 않지만 실제로이 구조체를 조금씩 사용해야합니다.PHP MVC - 자세히보기

저는 PHP에 익숙하지 않으므로 누구나이 도구를 사용했는지 또는 다른보기를 추가하는 방법을 알고 있는지 궁금합니다. 레이아웃 레이아웃을로드하는 데 사용하는 링크 버전이 있지만이 레이아웃 내에 다른 페이지를 호출 할 수있는 컨텐츠 섹션을 추가하고 싶습니다.

도움이 필요하시면 도움이 될 것입니다.

+0

해당보기에서 호출 하시겠습니까? 또는 템플릿을 사용하는 것이 좋습니다. – Michelle

+0

좋습니다, 그 프레임 워크는 실제 사용을 위해서 너무 기본적인 것입니다. 스크립트의 경로를 제어해야합니다. 그리고 그것은 하나의 클래스로 하드 코딩되어 있으므로 단지 controller.php를 호출 할 수 있습니다. MVC ...이 자습서를보고 소스 파일에서 배우는 것이 좋습니다. http://phpro.org/tutorials/Model-View-Controller-MVC.html –

+0

도움 주셔서 감사합니다. 나는 내가 사용한 예가 너무 근본적 이었다는 느낌이 들었다. – TLD

답변

0

아래 동영상은 끔찍합니다. 기존의 예에서

, 당신이 (더 정말보기가 무엇 없음) 또 다른 "보기"를 추가하려는 경우, 당신은 컨트롤러의 다른 방법이 필요합니다 :

class Controller 
{ 
    // -- snip -- 
    // you need to change the constructor too 
    public function __construct() 
    { 
     $this->load = new Load; 
     $this->model = new Model; 
    } 

    // -- snip -- 

    public function gallery() 
    { 
     $list = $this->model->get_urls(); 
     if (count($list) > 0) 
     { 
      $this->load->view('gallery.php' , $list); 
     } 
     else 
     { 
      $this->load->view('error.php', array(
       'source' => 'gallery', 
       'reason' => 'empty' 
      )); 
     } 
    } 

    // -- snip -- 
} 

을 그리고 당신은 또한에 필요 어쨌든

$c = new Controller; 
$action = 'home'; 
if (isset($_GET['page'])) 
{ 
    $action = $_GET['page']; 
} 

if (method_exists($c, $action)) 
{ 
    $c->{$action}(); 
} 
else 
{ 
    echo 'no such action !'; 
} 

다음 tinyMvc.php 파일을 변경합니다. 그 "튜토리얼"전체는 MVC의 용어를 사용합니다. 이것은 실제로 만들어진 것이 아닙니다. 그의 "보기"는 실제로 단순한 템플릿입니다. 초보자를위한 방법을 배우는 것은 완전히 불가능한 일이지만 구현이 너무 빨라졌습니다. 간단한 네이티브 PHP 템플릿을 만드는 방법을 배우려면 this article이 매우 유용 할 수 있습니다.

+0

고맙습니다. 그때 이후로 위의 템플릿을 삭제하고 다른 템플릿을 사용하기로 결정했습니다. 현재 [PHPro] (phpro.org/tutorials/Model-View-Controller-MVC.html)와 [Symfony2] (http://symfony.com) 사이를 결정하고 있습니다. 나는 [Codeigniter] (http://codeigniter.com/)가 초보자들에게는 좋다고 들었지만, 앞으로 기본적인 그런 것들을 사용하여 후회할 지 궁금해. – TLD

+0

@DVL, CodeIgniter (CakePHP와 함께)는 거기서 최악의 PHP 프레임 워크 중 하나입니다. 가능하면 피하십시오. 심포니 2는 꽤 받아 들일 수 있지만 레벨의 누군가에게는 너무 복잡 할 수 있습니다. MVC를 파헤 치려고하는 대신 OOP에 대해 더 자세히 알아야합니다.이 법칙은 잘 쓰여진 객체 지향 코드와 관련이 있습니다. –

+0

그럼 완료해야 할 프로젝트가 있습니다. 정말 고집하고 싶습니다. 신속하게 선택하여 올바른 도구를 사용하고 싶습니다. PHPro MVC를 권하고 싶습니까? 가볍고 가볍게 보이기 때문에 필요한 경우 라인 아래에 물건을 추가 할 수 있습니다. – TLD

관련 문제