Как правильно оформить класс для парсинга сайтов на lumen/laravel? Требуется сделать парсер сайтов. Выбор пал на lumen micro framework. Как правильно оформить класс для парсинга, куда сохранять и как подставить эти классы в архитектуру фреймворка? Я еще новичок в ооп.

21 Авг 2019 в 07:04
202 +1
0
Ответы
1

Для начала создайте новый класс для парсинга сайтов в вашем проекте Lumen. Давайте назовем его SiteParser.

<?php
namespace App\Services;
use GuzzleHttp\Client;
class SiteParser
{
protected $client;
public function __construct(Client $client)
{
$this->client = $client;
}
public function parse($url)
{
$response = $this->client->request('GET', $url);
$content = $response->getBody()->getContents();
// Реализуйте парсинг сайта здесь
return $parsedData;
}
}

Затем создайте новый сервис-провайдер для регистрации вашего класса в архитектуре Lumen.

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Services\SiteParser;
use GuzzleHttp\Client;
class SiteParserServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->singleton(SiteParser::class, function ($app) {
return new SiteParser(new Client());
});
}
}

Теперь зарегистрируйте ваш сервис-провайдер в файле bootstrap/app.php:

$app->register(App\Providers\SiteParserServiceProvider::class);

Теперь вы можете использовать ваш класс SiteParser в контроллерах или других частях вашего приложения:

<?php
namespace App\Http\Controllers;
use App\Services\SiteParser;
class SiteController extends Controller
{
protected $siteParser;
public function __construct(SiteParser $siteParser)
{
$this->siteParser = $siteParser;
}
public function parseSite()
{
$url = 'http://example.com';
$parsedData = $this->siteParser->parse($url);
// Обработка данных парсинга
return response()->json($parsedData);
}
}

Таким образом, вы создали класс для парсинга сайтов, зарегистрировали его в архитектуре Lumen с помощью сервис-провайдера и использовали его в контроллере для выполнения парсинга сайта. Надеюсь, это поможет вам структурировать ваш код и использовать ООП в ваших проектах на Lumen/Laravel.

20 Апр в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир