Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/64: Рейтинг темы: голосов - 64, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37

Не находит класс (Uncaught Error: Class )

26.10.2018, 19:02. Показов 12677. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня, не могу понять почему не работает (((

есть папочки
- install
--core
---installTables.php
--config
indexInstall.php

------------
файл indexInstall.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use install\core\InstallTables;
 
spl_autoload_register(function ($class_name) {
 
    $path = str_replace('\\', '/', $class_name.'.php');
    echo $path; //ПИШЕТ install/core/InstallTables.php
    if(file_exists($path)){
        require $path;
    }
 
});
 
$install = new InstallTables();
$install->run();
-------------------

-----------
Файл installTables.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace install\core;
 
class InstallTables {
 
    public $tables; 
 
 
 
    public function __construct(){
        $this->tables = require 'install/config/tables.php'; //
 
        foreach ($this->tables as $val) {
            echo $val;
        }
    }
 
    public function run(){
        echo 'Тут я запускаюсь';
    }
}
-------------

Пишет ошибку
PHP Fatal error: Uncaught Error: Class
Uncaught Error: Class 'install\core\InstallTables' not found in


Заранее спасибо!!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2018, 19:02
Ответы с готовыми решениями:

Fatal error: Uncaught Error: Class 'mysqli' not found in
Стояла у меня версия PHP 7.0.... из-за некоторых причин мне нужно было установить 7.2, установил, проверил инфо - все как положено версия...

Ошибка: FATAL ERROR Uncaught Error: Call to undefined function Test()
Доброго времени суток! Народ на одном из популярных порталов изучал примеры ООП, попробовав на практике пример не запустился, кто может...

Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'You have an error in your SQL syntax
Всем доброго времени суток. Коллеги, помогите пожалуйста решить такую проблему: не проходят запросы к БД. Вот сама база: База...

16
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
26.10.2018, 19:29
Сделал всё как вы описали и никаких ошибок, у меня всё работает.

Цитата Сообщение от Sergye Посмотреть сообщение
echo $path; //ПИШЕТ install/core/InstallTables.php
Не используйте относительные пути. Лучше __DIR__ . '/' . $path;
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
26.10.2018, 19:32  [ТС]
А где именно это прописать?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
26.10.2018, 19:35
Sergye,
PHP
1
$path = __DIR__ . '/' . str_replace('\\', '/', $class_name.'.php');
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
26.10.2018, 19:41  [ТС]
Теперь пишет полный путь)))) но не пишет данные из методово класса

Сама ошибка
Uncaught Error: Class 'install\core\InstallTables'

PHP Fatal error: Uncaught Error: Class 'install\core\InstallTables' not found in /home/...../install/indexInstall.php:19
Stack trace:
#0 {main}
thrown in /home/..../install/indexInstall.php on line 19


Попробывал на чистом проекте все то же смаое....
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
26.10.2018, 19:45  [ТС]
вот папочки
Изображения
 
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
26.10.2018, 19:50  [ТС]
При таком варианте
$path = __DIR__ . '/' . str_replace('\\', '/', $class_name.'.php');
задваивает папку "insstall"
0
 Аватар для sad67man
2598 / 1502 / 689
Регистрация: 23.08.2015
Сообщений: 3,804
26.10.2018, 19:54
Sergye, а вы не думали использовать composer?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
26.10.2018, 20:03
Цитата Сообщение от Sergye Посмотреть сообщение
задваивает папку "insstall"
Точно. Из первого сообщения показалось, что файл InstallTables.php находится в корне.

Sergye, сделайте так:
PHP
1
var_dump(file_exists($path));
Если выведет false, значит что-то не так с путями, проверьте ещё раз иерархию папок.

Добавлено через 3 минуты
Sergye, с текущей иерархией должно работать так:

PHP
1
$path = realpath(__DIR__ . '/..') . '/' . str_replace('\\', '/', $class_name.'.php');
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
26.10.2018, 20:10  [ТС]
да ответ install/core/InstallTables.phpbool(false)

Что именно с папками не так?

Добавлено через 2 минуты
а вот так работает

$path = realpath(__DIR__ . '/..') . '/' . str_replace('\\', '/', $class_name.'.php');

Добавлено через 3 минуты
Может кто объеснит почему не работает??? в другой части кода ведь работает (в другом каталоге)))))
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
26.10.2018, 20:16
Sergye, потому что вы используете относительный путь, он меняется в зависимости от местонахождения подключающего файла. А __DIR__ ссылается на путь самого файла indexInstall, который всегда одинаковый.
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
26.10.2018, 20:21  [ТС]
так файлы лежат в одном и том же месте и место положения не меняют! или я что то не понимаю?

Добавлено через 1 минуту
хм....перенес фал в самы корень прокта и запусти...все заработало!
0
 Аватар для sad67man
2598 / 1502 / 689
Регистрация: 23.08.2015
Сообщений: 3,804
26.10.2018, 20:24
Sergye, indexInstall.php у вас находится в папке install, отсюда и __DIR__ дает путь к этой папке. Вместо __DIR__ можно использовать $_SERVER["DOCUMENT_ROOT"]. Я бы автолоадер вынес в отдельный файл.
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
26.10.2018, 20:39  [ТС]
Поделитесь примером как вытащить в отдельный файл (пример бы)

С проблемой боле мене разобрался. Всем спасибо!
0
 Аватар для sad67man
2598 / 1502 / 689
Регистрация: 23.08.2015
Сообщений: 3,804
26.10.2018, 21:01
Sergye, что там пример писать, создаете файл autoloader.php, там пишете свою функцию spl_autoload_register. И подключаете через require_once

Добавлено через 9 минут
Sergye, Но вообще я бы все-таки советовал использовать composer там уже есть автолоадер. composer упрощает жизнь, тем более что сейчас без него довольно затруднительно использовать современные библиотеки, которые непременно вам понадобятся)
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
26.10.2018, 21:13  [ТС]
Ввиду того что я только учусь и постигаю истину...до встроенных решений и библиотек...пока рано
0
1 / 1 / 0
Регистрация: 29.05.2016
Сообщений: 37
27.10.2018, 12:25  [ТС]
так что это даст если я вынесу какие приемущства или плюсы

что там пример писать, создаете файл autoloader.php, там пишете свою функцию spl_autoload_register. И подключаете через require_once
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2018, 12:25
Помогаю со студенческими работами здесь

PHP Fatal error: Uncaught Error: Call to undefined function curl_init()
Всем привет! Знаю, проблема обсосана со всех сторон. Получаю вот это: PHP Fatal error: Uncaught Error: Call to undefined...

Ошибка - Fatal error: Uncaught Error: Call to undefined function mysql_connect()
В чем проблема? Fatal error: Uncaught Error: Call to undefined function mysql_connect() in...

PHP Fatal error: Uncaught Error: Call to undefined function mb_strlen()
У меня в файлах запускаемых кроном используется функция mb_strlen(), когда заметил что скрипт не работает запустил его из консоли, мне...

Ошибка Fatal error: Uncaught Error: Call to undefined function mysql_query()
добрый день у меня не работает mysl_query, вот код который хочет взять из базы данных. abstract class ACore{ protected $db; ...

Ошибка: Fatal error: Uncaught Error: Call to undefined function mysql_num_rows() in
Пытаюсь вывести картинку из базы данных. Код PHP: <?php $host =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru