37 lines
1.3 KiB
PHP
37 lines
1.3 KiB
PHP
|
|
<?php
|
|||
|
|
require_once 'RegionalCourtParser.php';
|
|||
|
|
require_once 'MoscowCourtParser.php';
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Фабрика для создания подходящего парсера
|
|||
|
|
*/
|
|||
|
|
class CourtParserFactory {
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Получить подходящий парсер для данной ссылки
|
|||
|
|
* @param string $url URL страницы дела
|
|||
|
|
* @param PDO $pdo Соединение с БД
|
|||
|
|
* @param string $case_number Номер дела
|
|||
|
|
* @param string $uid УИД дела
|
|||
|
|
* @param bool $skip_duplicate_check Пропустить проверку дубликатов (для тестирования)
|
|||
|
|
* @param int|null $project_id ID проекта для уведомлений
|
|||
|
|
* @return BaseCourtParser|null
|
|||
|
|
*/
|
|||
|
|
public static function getParser($url, $pdo, $case_number, $uid, $skip_duplicate_check = false, $project_id = null) {
|
|||
|
|
$parsers = [
|
|||
|
|
new MoscowCourtParser($pdo, $case_number, $uid, $skip_duplicate_check, $project_id),
|
|||
|
|
new RegionalCourtParser($pdo, $case_number, $uid, $skip_duplicate_check, $project_id),
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
foreach ($parsers as $parser) {
|
|||
|
|
if ($parser->canHandle($url)) {
|
|||
|
|
return $parser;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
?>
|
|||
|
|
|