3v4l.org

run code in 300+ PHP versions simultaneously
<?php namespace AdLabs\ParserBundle\Parsers; /** * Класс парсинга данных * @author Syomik Dmitriy <dsemik@gmail.com> */ class Parsers{ /** * put your comment there... * * @var \stdClass */ protected $inputData; /** * Укзаатель на менеджер сущностей * * @var mixed */ protected $entityManager; /** * логгер * * @var mixed */ protected $logger; /** * Контент файла * * @var string */ protected $fileContent; /** * Массив общих шаблонов парсинга * * @var array */ protected $patterns; /** * Объект класса данных * * @var ParsersObjectData */ protected $objectData; /** * Статус отработки основого шаблона * * @var boolean */ protected $patternStatus; /** * put your comment there... * * @param mixed $objectData объект данных * @param mixed $entityManager Entity Manager * @param mixed $logger логер * * @return Parsers */ public function __construct($objectData, $entityManager, $logger) { $this->objectData = $objectData; $this->entityManager = $entityManager; $this->logger = $logger; } /** * Установить входящие данные * * @param \StdClass $inputData входящие данные (запрос, путь к файлу) * */ public function setInputData(\StdClass $inputData) { $this->inputData = $inputData; } /** * Получить объект данных * * @return ParsersObjectData */ public function getObjectData() { return $this->objectData; } /** * Инициализация поисковой системы и шаблонов для парсинга * * @return boolean */ public function init() { $infoParseResult = $this->pathInfoParse(); $patternResult = $this->getPatterns(); $contentResult = $this->getContent(); return $infoParseResult && $patternResult && $contentResult; } /** * Получить все шаблоны для текущей поисковой системы * * @return boolen */ private function getPatterns() { $this->patterns = $this->entityManager ->getRepository("AdLabsParserBundle:PoiskovikPattern") ->getPatterns($this->objectData->getSearchEngine(), $this->objectData->getDataType()); if (!empty($this->patterns)) { return true; } else { $this->logger->write('Patterns not found '.__CLASS__.' '.__METHOD__); } return false; } /** * Инит поисковой системы из имени файла * * @param string $parsePath * * @return boolen */ private function pathInfoParse() { $parsePath = (string) $this->inputData->path; $pathInfo = pathinfo($parsePath); if (!empty($pathInfo['extension'])) { $this->objectData->setDataType($pathInfo['extension']); $this->objectData->setSearchEngine((string) $this->inputData->searchEngine); $this->objectData->setQuery((string) $this->inputData->query); return true; } $this->logger->write('Error init search engine'); return false; } /** * Получить контент файла * * @return boolen */ private function getContent() { $filePath = (string) $this->inputData->path; if (is_file($filePath)) { $this->fileContent = file_get_contents($filePath); if (!empty($this->fileContent)) { return true; } else { $this->logger->write('File '.$filePath.' is empty'); } } else { $this->logger->write('Parse file '.$filePath.' not found'); } return false; } }
Output for git.master, git.master_jit, rfc.property-hooks

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
71.15 ms | 401 KiB | 8 Q