1
resposta

Fatal error no código

Estou com um problema na hora de executar o arquivo buscar-cursos.php

PHP Fatal error: Uncaught Error: Call to undefined function exibeMensagem() in C:\xampp\htdocs\Projetos\Alura\composer\buscar-cursos.php:16 Stack trace:

#0 {main} thrown in C:\xampp\htdocs\Projetos\Alura\composer\buscar-cursos.php on line 16

aqui está a linha de código que estou utilizando:

<?php

require 'vendor/autoload.php';

use Alura\BuscadorCursos\Buscador;
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;

$client = new Client(['verify' => false, 'base_uri' => 'http://www.alura.com.br/']);
$crawler = new Crawler();

$buscador = new Buscador($client, $crawler);
$cursos = $buscador->buscar('/cursos-online-programacao/php');

foreach ($cursos as $curso) {
    echo exibeMensagem($curso);
}

aqui está a função que estou utilizando, o problema é que a função exibeMensagem não está sendo reconhecida, como resolvo isso?

<?php


function exibeMensagem(string $mensagem)
{
    echo $mensagem . PHP_EOL;
}

Quando retiro o código da função e dou apenas echo $curso ele funciona normalmente.

No arquivo json inclui o files e utilizei o composer dump-autolad, porém não funcionou

{
    "name": "alura/buscador-cursos",
    "description": "busca sites",
    "type": "library",
    "autoload": {
        "files":["./functions.php"],
        "psr-4": {
            "Alura\\BuscadorCursos\\": "src/"
        }
    },
    "require": {
        "guzzlehttp/guzzle": "^7.4",
        "symfony/dom-crawler": "^6.1",
        "symfony/css-selector": "^6.1"
    }
}
1 resposta

Olá! Tudo bem?

Gostaria de pedir desculpas pela demora em responder o seu tópico.

Pelo erro apresentado, parece que a função exibeMensagem não está sendo encontrada pelo PHP. Isso pode estar acontecendo porque o arquivo que contém a função não está sendo carregado corretamente.

No seu arquivo composer.json, você adicionou o arquivo functions.php no autoload, mas no código que você compartilhou, parece que a função exibeMensagem está em outro arquivo ou outro diretório.

Fico no aguardo do seu retorno, espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software