Задать вопрос
@romaaa32

Как реализовать подключение класса пхп?

use modules\datebase\connection;
 
$CONNECT = new Connection();
...


Есть страница откуда посылаются данные (ajax) на php файл, где подключается класс БД, его там не находит.
Если же не через ajax все работает. Почему?

Fatal error: Uncaught Error: Class 'modules\datebase\connection' not found in


Есть много разделов сайта где эти же неймспейсы рабочие, но когда использую ajax - перестают работать.
  • Вопрос задан
  • 283 просмотра
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 3
@cheevauva
Если ты новичок, то читай это php.net/manual/ru/language.oop5.autoload.php

В твоем случае, самым простым вариантом, будет что-то такое
spl_autoload_register(function ($className) {
    $map = array(
        'modules\datebase\connection' => 'Путь до файла с этим классом'
    );

    if (isset($map[$className])) {
        require_once $map[$className];
    }
});

Оптимальным же вариантом будет объявление своего автозагрузчика классов на основе PSR-4 в композере.
Ответ написан
Используйте Composer и единую точку входа.
Ответ написан
orlov0562
@orlov0562 Куратор тега PHP
I'm cool!
Добавь условие при котором отобразится путь к файлу и убедись что путь правильный, а если у тебя не винда, то еще и в том, что регистр символов в названии папок/файлов правильный (т.е. например, что есть файл connection.php а не Connection.php)
spl_autoload_register(function ($class) {
$file = __DIR__ . "/" . str_replace("\\", "/", $class) . '.php';
if ($class=='modules\datebase\connection') die($file); // <<<<<<<<<<<<<<<<<
if (is_file($file))
{
require_once $file;
}
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы