1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
|
|||||||||||
1 | |||||||||||
Автоподключение классов06.04.2016, 17:08. Показов 2642. Ответов 33
Метки нет (Все метки)
Написал скрипт:
Fatal error: Class 'app\Router' not found in C:\server\Site\OpenServer\domains\rainforest\Vasilisk\index.php on line 19 Что не так? Сделал все по уроку. У автора работает.
0
|
06.04.2016, 17:08 | |
Ответы с готовыми решениями:
33
Автоподключение Автоподключение к wi-fi автоподключение в фоне Автоподключение к нэту |
85 / 78 / 32
Регистрация: 26.11.2015
Сообщений: 481
|
|
06.04.2016, 19:23 | 2 |
не знаю как у автора, а функция (в вашем случае Autoload)должна возвращать true или false
Добавлено через 4 минуты не нужно использовать двойной обратный слеш в разделителях пути. используйте обычный слеш / , даже если вы на винде. Пхп простит. в некоторых случаях можно использовать константу DIRECTORY_SEPARATOR, но обычно можно обойтись без нее
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
06.04.2016, 19:49 | 3 |
Если файл с таким названием существует, это еще не значит что в этом файле существует класс Router в пространстве имен app.
0
|
1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
|
|||||||||||
06.04.2016, 20:20 [ТС] | 4 | ||||||||||
Содержание класса:
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
06.04.2016, 20:41 | 5 |
0
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
||||||
06.04.2016, 20:55 | 6 | |||||
не стоит проверять наличие файла. не зачем
достаточно написать так, и манипулировать namespace
0
|
1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
|
|
06.04.2016, 21:03 [ТС] | 7 |
Ну так это папка с классами... В этом и смысл загрузчика. В переменной $path содержится "C:\server\Site\OpenServer\domains\rainforest\Vasilisk\app\Router.php"
Добавлено через 5 минут Poznakomlus, Я не столь разбираюсь, что бы понять, о чем вы. У меня по уроку, spl_autoload_register запускает загрузчик Autoload. Который перехватывает классы и подключает их, разбивая на путь к файлу и сам файл.
0
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|
06.04.2016, 21:14 | 8 |
Я привел то-же самое. Без лишнего дебилизма. О чем может написать автору урока, что не стоит проверять наличие файла класса в автозагрузчике
0
|
1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
|
||||||
06.04.2016, 21:20 [ТС] | 9 | |||||
Poznakomlus,
0
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
||||||
06.04.2016, 21:28 | 10 | |||||
нет не правильно вот этого кода достаточно
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
||||||||||||||||
06.04.2016, 21:32 | 11 | |||||||||||||||
Сообщение было отмечено Vassillissk как решение
Решение
Нет, в контексте
1
|
1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
|
|||||||||||
06.04.2016, 21:37 [ТС] | 12 | ||||||||||
Poznakomlus,
Все, понял ваш код. Только ошибка та же.
0
|
85 / 78 / 32
Регистрация: 26.11.2015
Сообщений: 481
|
|
06.04.2016, 21:39 | 13 |
очень даже стоит. Например чтобы корректно срабатывала функция class_exists, а приложение не падало с fatal error при ее вызове
0
|
1 / 1 / 0
Регистрация: 12.12.2015
Сообщений: 89
|
|
06.04.2016, 21:42 [ТС] | 14 |
С пространством имен не сталкивался, пошел читать. Спасибо, что разъяснили очередную глупую ошибку.
0
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|
06.04.2016, 21:53 | 15 |
class_exists здесь при чем?
не падало с fatal error при ее вызове это где, что падать то должно. если вы делаете ошибку тогда и правьте ее сразу не стоит специально писать говнокод
0
|
85 / 78 / 32
Регистрация: 26.11.2015
Сообщений: 481
|
|
06.04.2016, 21:59 | 16 |
как будете править Fatal error: require(): Failed opening required... при вызове class_exists для проверки несуществующего класса
ну говнокодить так говнокодить. конечно эта функция не причем и в программе использоваться не будет, только потому что автолоад кривой
0
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
||||||
06.04.2016, 22:06 | 17 | |||||
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
06.04.2016, 22:07 | 18 |
1. А Вы каждый раз перед созданием объекта или при других обращениях к классу используете class_exists?
2. Интересно а что же делать если он не exists?
0
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|
06.04.2016, 22:11 | 19 |
при чем ошибка без собаки Warning, которые вы на продакшене должны отключить
0
|
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
|
|
06.04.2016, 22:12 | 20 |
Ага, тогда останется "Fatal error: Class 'app\Router' not found" в любом случае, только уже будет непонятно с чего это он вдруг not found Может файла не существует, а может и существует... в php собака - враг человека, самый настоящий...
0
|
06.04.2016, 22:12 | |
06.04.2016, 22:12 | |
Помогаю со студенческими работами здесь
20
Автоподключение rvm Автоподключение проектора Windows 10 автоподключение wifi Автоподключение по telnet, ssh Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |