Всем доброго дня, не могу понять почему не работает (((
есть папочки
- install
--core
---installTables.php
--config
indexInstall.php
файл indexInstall.php
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
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
вообщем проблема была в том что при использовывнии namespace, путь выстриавался не правильный!!!
Сергей, ты стараешься подключить файл которого не существует. Файл называется install/core/installTables.php, а ты подключаешь install/core/InstallTables.php.
Также используется проверка на существование файла (file_exists
) и подключение, если файл существует, но не используется обработка ситуаций, когда файла нет:
if (file_exists($path)) {
// файл найден, подключаем файл
require $path;
} else {
// иначе - не найден
$message = sprintf('File "%s" not exists', $path);
die($message);
}
Также, исправив эту проблему ты столкнешься с другой: PHP Warning: Invalid argument supplied for foreach()
потому что в InstallTables
задаешь свойству $this->tables
результат require
. Во первых - require возвращает не содержимое файла, а 1
если файл подключен и не возвращает ничего и false
и предупреждение - если не подключен. Скорее всего тебе нужно собрать список файлов в той папке конфигов и заинклюдить каждый в цикле, а потом собирать структуру твоего $this->tables
. Думаю, будет полезным array_merge.
Так же посоветую почитать о include, require, и их отличии от include_once
и require_once
.
Потом о composer и PSR-4. Ну и конечно же PSR-2, PSR-1.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
При переходе на любую другую страницу, вываливается ошибка: Sorry, the page you are looking for could not be found
вот такая ошибка у меня ErrorException in SteamAuthphp line 206: Undefined offset: 1 Тут весь код ошибок: http://prntscr