Да используется Composer. А как тогда? --- Добавлено --- Если я отключаю spl_autoload_register то он не находит классы по namespace
Указываете ему, по какому неймспейсу из какой папки свои классы грузить: Код (Text): { "require": { ... }, "autoload": { "psr-4": {"App\\": "src/"} } } Выполняете: Код (Text): composer dump-autoload и в папке src/Models уже создаёте: Код (Text): namespace App\Models; use Illuminate\Database\Eloquent\Model; class Task extends Model { ... }
Прописал я в composer.json Код (Javascript): "autoload": { "psr-4": {"\\": "/"} } Как я понимаю ко всем namespace искать с корня папки. так ведь? поменял в моделе на PHP: namespace models; use Illuminate\Database\Eloquent\Model; class tasks extends Model{} отключил автолоад в index теперь он просто не находит классы Fatal error: Class 'controllers\main' not found in /home/cpinua/site.ru/index.php on line 10 в этом контроллере написано вот то PHP: namespace controllers; use controllers\tasks as c_tasks; class main{ }
Хорошо я пропишу ко всем namespace App в начале. а вот src это что ? как пример ? "psr-4": {"App\\": "src/"} --- Добавлено --- если у меня вот папки с контролями и моделями лежат в корне. То просто / оставить?
сделал все как сказал. Он пишет что не может найти класс Fatal error: Class 'App\controllers\main' not found in /home/cpinua/site.ru/index.php on line 10 PHP: <?php use App\controllers\main as main; require_once "config/config.php"; require_once "core/views.php"; /*spl_autoload_register(function ($class) { require_once str_replace('\\', '/', $class). '.php'; }); */ $main = new main(); $main->index(); ?> --- Добавлено --- сейчас даже когда врубаю autoload он пишет что файл не найден Warning: require_once(App/controllers/main.php): failed to open stream: No such file or directory in /home/cpinua/site.ru/index.php on line 7
Какой загрузчик composer он там юзает, я умоляю xD PHP: spl_autoload_register(function ($class) { $classPath = str_replace('\\', '/', $class). '.php'; var_dump($classPath); exit(); //require_once str_replace('\\', '/', $class). '.php'; }); Что выдал var_dump?
Вобщето composer стоит, через него ставился Eloquent --- Добавлено --- твой vra_dump string(24) "App/controllers/main.php"
@Dron-Boy, так а где у тебя автолоадер композера подключается? --- Добавлено --- vendor/autoload.php всё равно руками надо включить.
Ну я не знал. подключил его PHP: require 'vendor/autoload.php'; use App\controllers\main as main; require_once "config/config.php"; require_once "core/views.php"; /*spl_autoload_register(function ($class) { require_once str_replace('\\', '/', $class). '.php'; }); */ $main = new main(); $main->index(); попрежнему ошибка Fatal error: Class 'App\controllers\main' not found in /home/cpinua/site.ru/index.php on line 12
@Dron-Boy я вам рекомендую открыть учебник по программированию на php с самого начала и почитать. Желательно найти что нибудь для тех кто в Танке. Потому что вы пытаетесь запрыгнуть на небоскрёб не понимая, что там справа оказывается лестниц сотня штук за углом. Вы даже спросить не в состоянии нормально, то что у вас не получается. Так как вам другие смогут помочь. Есть ещё вариант полностью свой код на гит хаб или в архив и сюда. И может кому - нибудь не лень будет развернуть его у себя, и посмотреть что не так вы сделали. А по отрывкам что вы присылаете, хрен поймёшь что вы не так и где подключили.
@Dron-Boy, ну если бы со мной такая неприятность произошла, я бы посмотрел, что за автолоад мне композер нагенерировал, и почему. И где его autoload ищет мои файлы, и там ли они у меня на самом деле лежат. Но это не твой случай. Так что согласен с @askanim, вернись к основам.
Проблема была в пути в настройках composer я указал psr-4": {"App\\": "/"} и мне выше сказали что это верно. Но оказалось не так и когда я указал psr-4": {"App\\": ""} то все заработало.