2013-02-22 5 views
0

나는 경로 배열을 기반으로 템플릿 배열을 렌더링하는 다음과 같은 PHP 함수를 가지고 있습니다. 이 함수에어디에서 예외를 throw합니까?

$array_template = array(
    'carousel' => 'carousel', //type=>name (with out extension). 
    'mini' => 'mini_feed' 
) 

$array_paths = array(
    'path_one' => 'path/to/one/', 
    'path_two' => 'path/to/two/' 
) 

: 그것은 찾아서 해당 파일에 대한 모든 경로를 확인, 모든 파일을 렌더링해야

protected function _render_templates_array($templates, array $template_name){ 
    foreach($template_name as $type=>$name){ 
     foreach($templates as $template=>$path){ 
      if(file_exists($path . $name . '.phtml')){ 
       require_once($path . $name . '.phtml'); 
      } 
     } 
    } 

    return; 
} 

즉, 같은 배열의 집합을 제공합니다.

내가 겪고있는 문제는 일단 모든 파일을 찾으면 검색을 중지하는 방법을 알아 냈습니다. 어떻게하면 다른 파일을 추가하고 오류가 발생합니까? 또는 다른 곳에서 오류를 던져야하는 곳이 있습니까?

는 기본적으로 내가 필요

  1. 그 템플릿에 대한 모든 경로에서보고해야하고, 모든 템플릿을 렌더링합니다.
  2. 템플릿이 경로에서 발견되지 않으면 오류가 발생합니다.
  3. 모든 파일이로드되면 처리를 중지합니다.

생각들?

+0

모두 응용 프로그램이 수행해야하는 작업에 따라 다릅니다. 템플릿을 찾지 못해도 대처할 수 있다면 다른 템플릿을 계속 진행하십시오. 템플릿을 찾아내는 것이 근본적이며 찾을 수없는 경우 예외를 중지하고 throw하십시오. 순수하게 당신의 선택. – GarethL

답변

1

foreach 줄 사이에 $found = false;을 추가하십시오. if 내부에 $found = true;을 추가하십시오. 두 "end foreach"} 사이에 필요에 따라 if(!$found) throw.....;을 추가하십시오.

protected function _render_templates_array($templates, array $template_name){ 
    foreach($template_name as $type=>$name){ 
     $found = false; 
     foreach($templates as $template=>$path){ 
      if(file_exists($path . $name . '.phtml')){ 
       require_once($path . $name . '.phtml'); 
       $found = true; 
      } 
     } 
     if(!$found) throw new .......; 
    } 

    return; 
} 
관련 문제