To dokumentacja do narzędzia z którego korzystam. Płoć PHP (roach-php.dev)
Przerabiam nowe narzędzie, wszystko wygląda na łatwe i dobrze opisane w dokumentacji, ale nie mogę tego w żaden sposób wyświetlić w widoku. Jest instrukcja dla Laravela, jednak nic nie daję dobrego rezultatu.
w pliku app/http/livewire/homecomponent.php
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use App\Spiders\TakeAwaySpider;
use RoachPHP\Roach;
class HomeComponent extends Component
{
public function render()
{
// $items is an array<int, ItemInterface>
$items = Roach::collectSpider(TakeAwaySpider::class);
return view('livewire.home-component',[
'items'=>$items
])->layout('layouts.base');
}
}
spider
<?php
namespace App\Spiders;
use Generator;
use RoachPHP\Downloader\Middleware\RequestDeduplicationMiddleware;
use RoachPHP\Extensions\LoggerExtension;
use RoachPHP\Extensions\StatsCollectorExtension;
use RoachPHP\Http\Response;
use RoachPHP\Spider\BasicSpider;
use RoachPHP\Spider\ParseResult;
class TakeAwaySpider extends BasicSpider
{
public array $startUrls = [
'https://roach-php.dev/docs/spiders'
];
public array $downloaderMiddleware = [
RequestDeduplicationMiddleware::class,
];
public array $spiderMiddleware = [
//
];
public array $itemProcessors = [
//
];
public array $extensions = [
LoggerExtension::class,
StatsCollectorExtension::class,
];
public int $concurrency = 2;
public int $requestDelay = 1;
/**
* @return Generator<ParseResult>
*/
public function parse(Response $response): Generator
{
$title = $response->filter('h1')->text();
$subtitle = $response
->filter('main > div:nth-child(2) p:first-of-type')
->text();
yield $this->item([
'title' => $title,
'subtitle' => $subtitle,
]);
}
}
Narazie to wszystko jest testowo, chce tu docelowo ładować za pomocą scrapingu komentarze ze strony pyszne.pl
Ostatnie 5 komentarzy. Ale póki co chce załadować jakikolwiek tytuł. Brak reakcji. Chce wyświetlić póki co cokolwiek. Przekazać do widoku i załadować na stronie. Nic nie działa ani pętla foreach, ani @yield nic nic nic ...