0

パスの配列に基づいてテンプレートの配列をレンダリングする次のphp関数があります。つまり、次のような配列のセットを提供する場合:

$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;
}

すべてのファイルを見つけてレンダリングし、そのファイルのすべてのパスをチェックする必要があります。

私が抱えている問題は、すべてのファイルが見つかったら検索を停止する方法を見つけましたが、ifにelseを追加して、エラーをスローすることはできますか?または、エラーをスローする必要がある場所は他にありますか?

基本的に必要なもの:

  1. すべてのテンプレートをレンダリングし、それらのテンプレートのすべてのパスを確認してください。
  2. テンプレートがどのパスにも見つからない場合は、エラーをスローします。
  3. すべてのファイルがロードされたら、処理を停止します。

考え?

4

1 に答える 1

1

2foreach行の間に を追加し$found = false;ます。の中にif$found = true;2 つの "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;
}
于 2013-02-22T16:39:20.210 に答える