Foto de Ariadne S.
Ariadne há 1 ano
Enviada pelo
Site

Criando uma agenda em php

Estou tentando fazer a comunicação do banco de dados com uma agenda, para fins de aprendizado com a linguagem. Porém já testei todos os arquivos importantes e continua dando erro.

A estrutura dos meus arquivos está assim:

Estrutura do Projeto:

- Agenda_BOT

     - index.php

     - class

           - ClassEvents.php

     - controllers 

           - ControllerEvents.php

      - config

            - config.php

       - model

            - ModelConect.php

       - views

       -img 

       - lib

            - css

            - js

            - html

            - composer

                      - src

                      - vendor

                            -composer

                            - autoload.php

                       - composer.json

                       - composer.lock


Erro fatal : Erro não detectado: Classe "Classes\ClassEvents" não encontrada em C:\xampp\htdocs\Agenda_BOT\controllers\ControllerEvents.php:8 Rastreamento de pilha: #0 {main} lançado em C:\xampp\htdocs\Agenda_BOT\ controllers\ControllerEvents.php na linha 8

 

Os arquivos que podem está dando problema:

classEvents.php

<?php

namespace Classes;

use Models\ModelConect;

class ClassEvents extends ModelConect{
    #Trazer os dados de eventos do banco
    public function getEvents(){
        $b=$this->conectDB()->prepare("select * from events");
        $b->execute();
        $f=$b->fetchAll(\PDO::FETCH_ASSOC);
        return $f;
    }
}
 
controllerEvents.php
<?php
 
include("../config/config.php");

$objEvents = new \Classes\ClassEvents();

var_dump($objEvents->getEvents());
autoload.php
<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';
 
composer.json

{
    "name": "wef/calendar",
    "description": "Calendário Agenda de Eventos",
    "autoload": {
        "psr-4": {
            "Wef\\Calendar\\": "src/",
            "Classes\\": "class/",
            "Models\\": "model"
        }
    },
    "authors": [
        {
            "name": 
            "email": 
        }
    ],
    "require": {}
}
 
 
modelConect.php
<?php

namespace Models;

 abstract class ModelConect{
    protected function conectDB(){
        try{
            $con = new \PDO("mysql:host=".HOST."; dbname=".DB."",USER,PASS);
            return $con;

        }
        catch(\PDOException $erro){
            return $erro->getMessage();
        }
    }
}
 
index.php
<?php include("config/config.php"); ?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>Page Title</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link rel='stylesheet' type='text/css' media='screen' href='main.css'>
    <script src='main.js'></script>
    <title>Agenda</title>
    <link rel="stylesheet" href="<?php echo DIRPAGE.'Agenda_Bot/lib/css/style.css'; ?>">
    <link rel="stylesheet" href="<?php echo DIRPAGE.'Agenda_Bot/lib/js/FullCalendar/main.min.css'; ?>">
</head>

<body>
    <div class="calendar"></div>

    <script src="<?php echo DIRPAGE.'Agenda_Bot/lib/js/FullCalendar/main.min.js'; ?>"></script>
    <script src="<?php echo DIRPAGE.'Agenda_Bot/lib/js/javascript.js'; ?>"></script>
</body>
</html>
 
config.php
 
<?php
# Caminhos absolutos
$dirInt = "";
define('DIRPAGE', "http://{$_SERVER['HTTP_HOST']}/{$dirInt}");

$bar = (substr($_SERVER['DOCUMENT_ROOT'], -1) == "/") ? "" : "/";
define('DIRREQ', "{$_SERVER['DOCUMENT_ROOT']}{$bar}{$dirInt}");

# Banco de Dados
define('HOST', 'localhost');
define('DB', 'sistema');
define('USER', 'root');
define('PASS', '');

# Incluir arquivos
include(DIRREQ . 'Agenda_BOT/lib/composer/vendor/autoload.php');

?>


 
Eu já fiz muitas alterações no código e não estou conseguindo exergar pq isso está acontecendo. Se alguém puder me ajudar, ficarei muito agradecida!
1 resposta
Professora Francisca S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
Contatar Francisca

Verifique se o arquivo ClassEvents.php esteja realmente dentro de um diretório chamado class/ , verificando já que o php é sensível a maiúsculas e minúsculas. Se o diretório estiver nomeado incorretamente (por exemplo, Class/ em vez de class/), o autoloader não será capaz de encontrar a classe.

 

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Tire dúvidas com IA
Resposta na hora da Minerva IA
Enviar dúvida
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Prefere professores para aulas particulares ou resolução de atividades?
Aulas particulares
Encontre um professor para combinar e agendar aulas particulares Buscar professor
Tarefas
Envie sua atividade, anexe os arquivos e receba ofertas dos professores Enviar tarefa