2009-03-21 6 views
0

젠드 프레임 워크 프로젝트 구조는 컨트롤러 및 물건이 해당 레벨의 한 폴더 위에있는 localhost/guessbook과 같이 서버 당 하나의 응용 프로그램 만 실행한다고 가정합니다.동일한 루트 폴더에있는 여러 Zend 프레임 워크 프로젝트

localhost/app1, localhost/app2를 사용하여 정규 PHP 스크립트 응용 프로그램처럼 주소를 지정할 수 있도록 localhost에 몇 가지 다른 ZF 기반 프로젝트를 만들 수 있습니까?

이상적으로는 DocumentRoot없이하고 싶습니다. 브라우저를 사용하여 즉시 응용 프로그램간에 전환하고 싶습니다.

+0

그것은 밖으로의 상자는 당신의 경로를 포함 아무 곳 ZF 라이브러리를 이동하고 다른 폴더에있는 애플 리케이션을 가지고 :) 작동합니다. –

답변

1

나는 이것이 틀렸다고 생각합니다. 동일한 호스트 이름에 여러 개의 zend 프레임 워크 응용 프로그램을 가질 수 있습니다. 나는. 나는 여러 서버를 사용하여 여러 가지 Magento 설치를 시도해 왔습니다. 젠드는 지금까지 내가 (프레임 워크 내 선택의 이유 중 하나) 알고있는 파일 구조를 고정하지 않습니다

당신은 웹 루트 폴더 외부에 젠드 라이브러리를 배치하고이 같은 뭔가를 호출에도 배치 할 수 있습니다 :

$lib = realpath(dirname(basename(__FILE__)) . '/../../../lib'); 
set_include_path(get_include_path() . PATH_SEPARATOR . $lib); 


$rootDir = dirname(dirname(__FILE__)); 
     define('ROOT_DIR', $rootDir); 

     set_include_path(get_include_path() 
      . PATH_SEPARATOR . ROOT_DIR . '/library/' 
      . PATH_SEPARATOR . ROOT_DIR . '/app/models/' 
     ); 

     include 'Zend/Loader.php'; 
     spl_autoload_register(array('Zend_Loader', 'autoload')); 

     // Load configuration 
     Zend_Registry::set('configSection', $configSection); 
     $config = new Zend_Config(new Zend_Config_Ini(ROOT_DIR.'/application/config.ini', $configSection)); 
     Zend_Registry::set('config', $config); 
2

나는 무엇이 문제인지 조용히 알지 못합니까? 아마도 /index.php으로 보내는 일반적인 다시 쓰기 규칙을 언급했을 것입니다. 당신이 공유 젠드 프레임 워크 라이브러리를 가질 수 있도록 글쎄, 당신은, 당신은 모든 포함 경로를 정의 bootstrap.php에서

RewriteRule ^/app1/.*$ /app1/index.php [NC,L] 
RewriteRule ^/app2/.*$ /app2/index.php [NC,L] 

RewriteRule ^.*$ /index.php [NC,L] 

에서 재 작성 규칙 것을 변경할 수 있습니다.

+1

기본 디렉토리에 하나의 커다란 재 작성 규칙 세트가있는 것이 아니라 각 서브 디렉토리에 '표준'디렉토리를 두는 것보다 간단합니다. –