2010-06-14 4 views
0

젠드 프레임 워크의 MVC 구조를 사용하도록 웹 응용 프로그램을 변환 중입니다. 나는 대부분의 데이터베이스 정보와 프로그램에서 사용되는 일부 정적 변수를 포함하는 파일을 포함하는 root.php 파일을 가지고 있습니다. 이 중 일부가 컨트롤러의 init() 함수 또는 bootstrap에 호출 된 모델의 application.ini에 있어야하는지 확실하지 않습니다.젠드 프레임 워크 -이 root.php 파일은 어디에서 MVC로 이동해야합니까?

도움이 될 것입니다.

<?php 

    /*** 
      //Configuration file 
    */ 

    ## Site Configuration starts ## 


    define("SITE_ROOT"  , dirname(__FILE__)); 


    define("SITE_URL"  , "http://localhost/monkeycalendarapp/monkeycalendarapp/public"); 
    define('DB_HOST', "localhost"); 
    define('DB_USER', "root"); 
    define('DB_PASS', "xxx"); 
    define('DB_NAME', "xxxxx"); 

    define("PROJECT_NAME"  , "Monkey Mind Manager (beta 2.2)"); //site title 
    define("CALENDAR_WIDTH"  , "300"); //left mini calendar width 
    define("CALENDAR_HEIGHT" , "150"); //left mini calendar height 

    $page_title = 'Event List'; 
    $stylesheet_name = 'style.css'; //default stylesheet 


    define("SITE_URL_AJAX" , SITE_URL . "/ajax-tooltip"); 
    define("JQUERY" , SITE_URL . "/jquery-ui-1.7.2"); 

    $a_times = array("12:00","12:30","01:00","01:30","02:00","02:30","03:00","03:30","04:00","04:30","05:00","05:30","06:00","06:30","07:00","07:30","08:00","08:30","09:00","09:30","10:00","10:30","11:00","11:30"); 

    //PTLType Promotional timeline type 
    $a_ptlType= array(1=>"Gigs","To-Do","Completed"); 

    $a_days  = array("Su","Mo","Tu","We","Th","Fr","Sa"); 

    $a_timesMerd = array("12:00am","12:30am","01:00am","01:30am","02:00am","02:30am","03:00am","03:30am","04:00am","04:30am","05:00am","05:30am","06:00am","06:30am","07:00am","07:30am","08:00am","08:30am","09:00am","09:30am","10:00am","10:30am","11:00am","11:30am","12:00pm","12:30pm","01:00pm","01:30pm","02:00pm","02:30pm","03:00pm","03:30pm","04:00pm","04:30pm","05:00pm","05:30pm","06:00pm","06:30pm","07:00pm","07:30pm","08:00pm","08:30pm","09:00pm","09:30pm","10:00pm","10:30pm","11:00pm","11:30pm"); 

    //Setting stylesheet for this user. 
    $AMPM=array("am"=>"am","pm"=>"pm"); 

    include(SITE_ROOT . "/includes/functions/general.php"); 
    include(SITE_ROOT . "/includes/db.php"); 

    session_start(); 
    if(isset($_SESSION['userData']['UserID'])) { 
    $s_userID = $_SESSION['userData']['UserID']; 
    } 

    $stylesheet_name = stylesheet(); 

    ini_set('date.timezone', 'GMT'); 
    date_default_timezone_set('GMT'); 

    if($s_userID) { 
    ini_set('date.timezone', $_SESSION['userData']['timezone']); 
    date_default_timezone_set($_SESSION['userData']['timezone']); 
    } 

?> 

답변

0

구성이 필요한 모든 것은 리소스입니다 (pre-defined ones를 사용하거나 직접 작성하십시오).

자원은 예컨대 : application.ini

  • 에서

    • 는 부트 스트랩에서 직접 구성하는 index.php를
    • 에서 젠드 응용 프로그램에 많은 설정 파일을 전달, 여러 가지 방법으로 구성 할 수 있습니다.

    정의를위한 가장 좋은 장소는 실제로 index.php (include 'root.php')입니다. 그러나 전역 상수/변수의 수를 최소로 줄여야합니다 (이 경우 자원 구성 파일이 최상의 옵션 인 것 같습니다).

  • 0

    당신이 프레임 워크를 사용하는 방법에 따라 달라집니다 :

    root.php는 (모든 PHP 페이지의 상단에 파일을 포함). 여기에 ZF 관련 코드가 보이지 않으므로 Zend Framework Bootstrap 및 Application 클래스를 사용하지 않고 자신의 코드를 롤업하는 것처럼 보입니까? 모든 요청이 라우팅되는 index.php 파일이 있습니까? 이 응용 프로그램 전체 상수를 거기에 넣을 수 있습니다. 이고 응용 프로그램 및 부트 스트랩 클래스를 사용하는 경우 you should probably use .ini style config loading을 사용하여 이러한 매개 변수 중 일부를 ini 파일에 넣고 Zend_Registry로 응용 프로그램 전체에서 사용할 수 있도록 등록하십시오.

    +0

    위의 코드는 프레임 워크와 OOP를 더 잘 이해하기 위해 Zend Framework 용으로 재 작성한 이전 코드입니다. 표준 ZF 구성 (Zend Tool 사용)을 사용하고 있지만, 현재 대부분의 것들은 public/folder에 있습니다. 거기에 ZF index.php 파일이 모든 라우팅에 공개되어 있습니다. 그래서 그것은 상수가가는 것에 대해 의미가 있습니다. – Joel