contains() public method

Strings or PCRE patterns can be used: $finder->contains('Lorem ipsum') $finder->contains('/Lorem ipsum/i')
See also: FilecontentFilterIterator
public contains ( string $pattern ) : Finder | Symfony\Component\Finder\SplFileInfo[]
$pattern string A pattern (string or regexp)
return Finder | Symfony\Component\Finder\SplFileInfo[] The current Finder instance
示例#1
0
 /**
  * @Route("/search")
  */
 public function searchAction(Request $request)
 {
     $search = new FileSearch();
     $dirList = $this->generateDirList();
     $form = $this->createForm(SearchType::class, $search, array('dir_list' => $dirList));
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         $searchFor = $form->get('searchFor')->getData();
         $fileType = $form->get('fileType')->getData();
         $searchDir = $form->get('searchDir')->getData();
         $finder = new Finder();
         if (isset($fileType)) {
             $finder->files()->name("*.{$fileType}");
         }
         if (isset($searchDir)) {
             $finder->files()->in($searchDir);
         } else {
             $finder->files()->in(__DIR__);
         }
         if (isset($searchFor)) {
             $finder->contains($searchFor);
         }
         if (isset($finder) && count($finder) > 0) {
             echo "<h3>Found results in {$searchDir}: </h3><br/>";
             foreach ($finder as $key => $value) {
                 echo "<h4> {$value} contains '{$searchFor}' </h4>";
             }
         } else {
             echo "No content '{$searchFor}' in '{$searchDir}'";
         }
     }
     return $this->render('MihailSearchBundle:randomsearch:search_form.html.twig', array('form' => $form->createView()));
 }
 /**
  * @Route("/emo_simple_search_api_bundle/{searchContent}/{fileType}/{searchDir}")
  */
 public function searchAction($searchDir = "", $searchContent = "search text", $fileType = "php")
 {
     $finder = new Finder();
     if (isset($fileType)) {
         $finder->files()->name("*.{$fileType}");
     }
     if (isset($searchDir) && $searchDir !== "") {
         $finder->files()->in($searchDir);
     } else {
         $finder->files()->in(__DIR__);
     }
     if (isset($searchContent)) {
         $finder->contains($searchContent);
     }
     $result = array('result' => "No content '{$searchContent}' in '{$searchDir}'");
     if (isset($finder) && count($finder) > 0) {
         $result['result'] = "Found results in {$searchDir}";
         foreach ($finder as $key => $value) {
             $result[] = "{$value} contains '{$searchContent}'";
         }
     }
     return new Response(json_encode($result), 200, array('Content-Type' => 'application/json'));
 }
示例#3
0
 /**
  * Find in files.
  *
  * @param string      $query
  * @param string      $path
  * @param string      $name
  * @param bool|string $contains
  * @param int         $priority
  */
 private function find($query, $path = 'theme', $name = '*.twig', $contains = false, $priority = 0)
 {
     if (!$this->showFiles) {
         return;
     }
     $finder = new Finder();
     $finder->files()->ignoreVCS(true)->notName('*~')->in($this->app['resources']->getPath($path));
     if ($name) {
         $finder->name($name);
     }
     if ($contains) {
         $finder->contains($contains);
     }
     /** @var \Symfony\Component\Finder\SplFileInfo $file */
     foreach ($finder as $file) {
         $relativePathname = $file->getRelativePathname();
         $filename = $file->getFilename();
         $this->register(['label' => sprintf("%s » <span>%s</span>", Trans::__('Edit file'), $filename), 'path' => $this->generatePath('fileedit', ['namespace' => 'theme', 'file' => $relativePathname]), 'description' => '', 'priority' => self::OMNISEARCH_FILE + $priority, 'keywords' => ['Edit file', $filename, $query]]);
     }
 }
示例#4
0
 /**
  * @param string $template
  *
  * @return bool
  */
 public function hasView($template)
 {
     $finder = new Finder();
     $finder->in($this->template_paths);
     return $finder->contains($template) or $finder->contains("{$template}.php");
 }
示例#5
0
 /**
  * @param  InputInterface $input
  * @return Finder
  */
 public function createFinder(InputInterface $input)
 {
     $finder = new Finder();
     $finder->files();
     foreach ($input->getArgument('directory') as $dir) {
         $finder->in($dir);
     }
     foreach ($input->getOption('not-dir') as $ignoreDir) {
         $finder->exclude($ignoreDir);
     }
     foreach ($input->getOption('file-name') as $pattern) {
         $finder->name($pattern);
     }
     foreach ($input->getOption('not-file-name') as $pattern) {
         $finder->notName($pattern);
     }
     foreach ($input->getOption('contains') as $pattern) {
         $finder->contains($pattern);
     }
     foreach ($input->getOption('not-contains') as $pattern) {
         $finder->notContains($pattern);
     }
     foreach ($input->getOption('path') as $pattern) {
         $finder->path($pattern);
     }
     foreach ($input->getOption('not-path') as $pattern) {
         $finder->notPath($pattern);
     }
     if ($size = $input->getOption('size')) {
         $finder->size($size);
     }
     if ($modified = $input->getOption('modified')) {
         $finder->date($modified);
     }
     if ($depth = $input->getOption('depth')) {
         $finder->depth($depth);
     }
     return $finder;
 }
示例#6
0
 /**
  * Find in files
  *
  * @param type        $query
  * @param string      $folder
  * @param string      $name
  * @param bool|string $contains
  * @param int         $priority
  */
 private function find($query, $folder = '/theme', $name = '*.twig', $contains = false, $priority = 0)
 {
     if (!$this->showFiles) {
         return;
     }
     $finder = new Finder();
     $finder->files()->ignoreVCS(true)->notName('*~')->in(BOLT_PROJECT_ROOT_DIR . $folder);
     if ($name) {
         $finder->name($name);
     }
     if ($contains) {
         $finder->contains($contains);
     }
     foreach ($finder as $file) {
         $relativePathname = $file->getRelativePathname();
         $filename = $file->getFilename();
         $this->register(array('label' => sprintf("%s » <span>%s</span>", __('Edit file'), $filename), 'path' => $this->backend . 'file/edit/theme/' . $relativePathname, 'description' => '', 'priority' => self::OMNISEARCH_FILE + $priority, 'keywords' => array('Edit file', $filename, $query)));
     }
 }
示例#7
0
文件: Finder.php 项目: stopsopa/utils
 /**
  * @return Finder
  */
 public function contains($pattern)
 {
     return parent::contains($pattern);
 }