/** * import a single file into a collection * * @param SplFileInfo $file file * @param InputInterface $input User input on console * @param OutputInterface $output Output of the command * * @return void */ private function importResource(\SplFileInfo $file, InputInterface $input, OutputInterface $output) { $doc = $this->frontMatter->parse($file->getContents()); $origDoc = $this->serializer->unserialize($doc->getContent()); if (is_null($origDoc)) { $output->writeln("<error>Could not deserialize file <{$file}></error>"); } else { $collectionName = $doc->getData()['collection']; $this->getClient($input)->selectCollection($this->databaseName, $collectionName)->save($origDoc); $output->writeln("<info>Imported <{$file}> to <{$collectionName}></info>"); } }
/** * Read content of fisture file. split content by "--EXPECT--" * First part is Yaml to be used with configuration. * Second part can be: * - fully qualified name of exception throw during configuration processing * - array resulting of processing configuration * * @param \SplFileInfo $file * @return array */ private function parseFixture(\SplFileInfo $file) { $contents = $file->getContents(); $data = ['yaml' => null, 'expect' => null, 'exception' => null]; $values = explode('--EXPECT--', $contents); $data['yaml'] = $values[0]; $result = str_replace([' ', "\n"], '', $values[1]); if (false === stripos($result, 'exception')) { eval("\$data['expect'] = {$result} ;"); } else { $data['exception'] = $result; } return $data; }
public function testDecoratedMethods() { $decorated = $this->getMockBuilder('hanneskod\\classtools\\Tests\\MockSplFileInfo')->setConstructorArgs([''])->getMock(); $decorated->expects($this->once())->method('getRelativePath'); $decorated->expects($this->once())->method('getRelativePathname'); $decorated->expects($this->once())->method('getContents'); $decorated->expects($this->once())->method('getATime'); $decorated->expects($this->once())->method('getBasename'); $decorated->expects($this->once())->method('getCTime'); $decorated->expects($this->once())->method('getExtension'); $decorated->expects($this->once())->method('getFileInfo'); $decorated->expects($this->once())->method('getFilename'); $decorated->expects($this->once())->method('getGroup'); $decorated->expects($this->once())->method('getInode'); $decorated->expects($this->once())->method('getLinkTarget'); $decorated->expects($this->once())->method('getMTime'); $decorated->expects($this->once())->method('getOwner'); $decorated->expects($this->once())->method('getPath'); $decorated->expects($this->once())->method('getPathInfo'); $decorated->expects($this->once())->method('getPathname'); $decorated->expects($this->once())->method('getPerms'); $decorated->expects($this->once())->method('getRealPath'); $decorated->expects($this->once())->method('getSize'); $decorated->expects($this->once())->method('getType'); $decorated->expects($this->once())->method('isDir'); $decorated->expects($this->once())->method('isExecutable'); $decorated->expects($this->once())->method('isFile'); $decorated->expects($this->once())->method('isLink'); $decorated->expects($this->once())->method('isReadable'); $decorated->expects($this->once())->method('isWritable'); $decorated->expects($this->once())->method('openFile'); $decorated->expects($this->once())->method('setFileClass'); $decorated->expects($this->once())->method('setInfoClass'); $decorated->expects($this->once())->method('__toString')->will($this->returnValue('')); $fileInfo = new SplFileInfo($decorated); $fileInfo->getRelativePath(); $fileInfo->getRelativePathname(); $fileInfo->getContents(); $fileInfo->getATime(); $fileInfo->getBasename(); $fileInfo->getCTime(); $fileInfo->getExtension(); $fileInfo->getFileInfo(); $fileInfo->getFilename(); $fileInfo->getGroup(); $fileInfo->getInode(); $fileInfo->getLinkTarget(); $fileInfo->getMTime(); $fileInfo->getOwner(); $fileInfo->getPath(); $fileInfo->getPathInfo(); $fileInfo->getPathname(); $fileInfo->getPerms(); $fileInfo->getRealPath(); $fileInfo->getSize(); $fileInfo->getType(); $fileInfo->isDir(); $fileInfo->isExecutable(); $fileInfo->isFile(); $fileInfo->isLink(); $fileInfo->isReadable(); $fileInfo->isWritable(); $fileInfo->openFile(); $fileInfo->setFileClass(); $fileInfo->setInfoClass(); (string) $fileInfo; }
$response = new Response(); $response->setPublic(); $recipeDocsPath = $app['recipes.path'] . '/docs/'; if ($page === 'index') { $file = new SplFileInfo($app['recipes.path'] . '/README.md'); } else { $file = new SplFileInfo($recipeDocsPath . $page . '.md'); } if (!$file->isReadable()) { throw new \Symfony\Component\HttpKernel\Exception\NotFoundHttpException(); } $response->setLastModified(new DateTime('@' . $file->getMTime())); if ($response->isNotModified($request)) { return $response; } $response->headers->set('Content-Type', 'text/html'); $response->setCharset('UTF-8'); list($body, $title) = parse_md(file_get_contents($file->getPathname())); // Generate menu based on files list $finder = new Finder(); $finder->files()->in($recipeDocsPath); $nav = []; foreach ($finder as $file) { /** @var \Symfony\Component\Finder\SplFileInfo $file */ list($_, $name) = parse_md($file->getContents()); $nav[] = ['title' => $name, 'link' => $request->getBaseUrl() . '/recipes/' . $file->getBasename('.md')]; } $response->setContent(render('recipes.twig', ['title' => $title, 'nav' => $nav, 'content' => $body])); return $response; })->assert('page', '[\\w/-]+')->value('page', 'index'); return $controller;