Bom dia! Estou recebendo o erro Uncaught Error: Call to a member function request() on null in quando executo minha classe, segue o código: SearchEngine.php
<?php
namespace MoraesDaniel\SearchEngine;
use GuzzleHttp\ClientInterface;
use Symfony\Component\DomCrawler\Crawler;
class SearchEngine
{
private $httpClient;
private $crawler;
public function __constructor(ClientInterface $httpClient, Crawler $crawler)
{
if (!$this->httpClient) {
echo "HTTP Client está nulo" . PHP_EOL;
}
$this->httpClient = $httpClient;
$this->crawler = $crawler;
}
public function search(string $url, string $cssSelector): array
{
if (!$this->httpClient) {
echo "HTTP Client está nulo no método search" . PHP_EOL;
}
$response = $this->httpClient->request('GET', $url);
$html = $response->getBody();
$this->crawler->addHtmlContent($html);
$items = $this->crawler->filter($cssSelector);
$itemsReturn = [];
foreach ($items as $item) {
$itemsReturn[] = $item->textContent;
}
return $itemsReturn;
}
}
fetch-data.php
<?php
require 'vendor/autoload.php';
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;
use MoraesDaniel\SearchEngine\SearchEngine;
$client = new Client(['verify' => false]);
$crawler = new Crawler();
$searchEngine = new SearchEngine($client, $crawler);
$items = $searchEngine->search('https://www.petz.com.br/cachorro/racao/racao-seca', 'h3.nome_produto');
foreach($items as $item) {
echo $item . PHP_EOL;
}
Percebam que coloquei duas verificações na SearchEngine.php e ele me diz que, no método search, o $this->httpClient está nulo, como pode?