2017-08-30 6 views
0

ソースツリー内のrobofile-templatesというディレクトリ内のファイルを見つけるために、次のコードを用意しました。 今、私はpharファイルにアプリケーションをパッケージ化しています。symfonyファインダでphar内のファイルを検索

pharファイルに含まれるファイルに対して同様のコードを使用して反復処理を行うことはできますか、それとも書き直す必要がありますか?

protected function getTemplateRoboFiles() { 
    $base = dirname(__DIR__); 

    $templates = []; 

    $finder = new Finder(); 
    $finder->directories()->in($base)->name('robofile-templates'); 
    foreach ($finder as $directory) { 
     $fileFinder = new Finder(); 
     $fileFinder->files()->in($directory->getRealPath())->name('*.php'); 
     foreach ($fileFinder as $file) { 
      $templates[ $file->getBasename('.php') ] = $file->getRealPath(); 
     } 
    } 

    return $templates; 
} 

EDIT:PHAR内部opendir/readdir、十分に面白い作品。私はこれらの基本的なファイル機能を使うことに頼ることができますが、Symfonyファイルファインダーは同じ基本コマンドで構築されていると思いますか?

答えて

0

Symfony finderは期待通りに動作し、pharファイルも検索しています。

私の問題は、プロセスの別の部分にありました。私はpherをコンポーザインストールでインストールしていましたが、composer.lockはデータに依存しませんでした。私がアーカイブ内で見つけようとしていたファイルがコンポーザーモジュールにあったので、実際にはpharには含まれていませんでした。

だから誰がこの問題を抱えているのですか。あなたのファイルが本当にpharにパッケージ化されているかどうかをよく確認してください。

関連する問題