Метод notContains
Метод notContains класса Finder
исключает из выборки файлы, в содержимом
которых встречается заданная строка. Первым
параметром передаётся искомая строка или
массив строк. Метод возвращает сам объект
Finder, поэтому его можно вызывать
цепочкой с другими методами.
По умолчанию поиск ведётся по содержимому
файлов. Если передать вторым параметром
true, то строка будет искаться не в
содержимом, а в именах файлов.
Синтаксис
notContains(string|array $patterns, bool $filename = false)
Пример
Давайте найдём все файлы в папке src,
в содержимом которых нет строки 'article':
<?php
namespace App\Controller;
use Symfony\Component\Finder\Finder;
class ArticleController
{
public function index(): void
{
$finder = new Finder();
$finder->files()->in('src')->notContains('article');
foreach ($finder as $file) {
echo $file->getFilename() . "\n";
}
}
}
?>
Результат выполнения кода:
"user.php"
"hello.php"
Пример
Давайте передадим массив строк, чтобы исключить файлы, содержащие любую из них:
<?php
namespace App\Controller;
use Symfony\Component\Finder\Finder;
class ArticleController
{
public function index(): void
{
$finder = new Finder();
$finder->files()->in('src')->notContains(['article', 'user']);
foreach ($finder as $file) {
echo $file->getFilename() . "\n";
}
}
}
?>
Результат выполнения кода:
"hello.php"
Пример
Давайте передадим вторым параметром true,
чтобы исключить файлы, в именах которых нет
строки 'user':
<?php
namespace App\Controller;
use Symfony\Component\Finder\Finder;
class ArticleController
{
public function index(): void
{
$finder = new Finder();
$finder->files()->in('src')->notContains('user', true);
foreach ($finder as $file) {
echo $file->getFilename() . "\n";
}
}
}
?>
Результат выполнения кода:
"article.php"
"hello.php"