Foto de Ariadne S.
Ariadne há 9 meses
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á 9 meses
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
Envie uma dúvida grátis
Resposta na hora da Minerva IA e de professores particulares
Enviar dúvida
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Precisa de outra solução? Conheça
Aulas particulares Encontre um professor para combinar e agendar aulas particulares Buscar professor