Novidade no Symfony 2.2: Melhorias no Finder

(Tradução de: http://symfony.com/blog/new-in-symfony-2-2-finder-improvements)

O componente Finder oferece uma agradável DSL para permitir que você encontre arquivos e diretórios.


Filtrar por Caminho

O método name() restringe arquivos por nome; ele aceita strings, globs ou expressões regulares:

  Finder::create()->files() ->name('*.php');
  Finder::create()->files() ->name('/\.php$/');

A partir do Symfony 2.2, você também pode restringir arquivos e diretórios pelo caminho, através do método path(), que aceita strings ou expressões regulares:

  Finder::create()->path('some/special/dir');
  Finder::create()->path('/^foo\/bar/');

Para negar a restrição, utilize os métodos notName() e notPath().

Saiba mais sobre este novo recurso na documentação em http://symfony.com/doc/master/components/finder.html#path.


Suporte a Glob no método in()

O método in() diz ao Finder para procurar por arquivos e diretórios nos diretórios fornecidos. A partir da versão 2.2, você pode definir esses diretórios como globs:

Finder::create()->files() ->in('src/Symfony///Resources/translations');

A documentação está disponível no capítulo sobre o componente Finder: http://symfony.com/doc/master/components/finder.html#location.


Aumento de velocidade em algumas Plataformas

Por último, mas não menos importante, e apenas para algumas plataformas (como o Linux, MacOs e BSD), o desempenho do Finder foi muito melhorado, através da conversão dos critérios para comandos nativos. Dê uma olhada nos resultados iniciais do benchmark (https://gist.github.com/jfsimon/3230139) que foram publicados quando o pull request foi submetido.

Precisamos da sua ajuda com relação à esta mudança, pois, às vezes, a versão otimizada não funciona em algumas versões do Unix, por isso temos que ter certeza de excluir esses casos e realizar fallback para o adaptador PHP. Teste no seu ambiente e relate se houver algum problema.  
Shared publiclyView activity