@Vakha1

Вопрос по работе — COMPOSER — autoload?

У меня такой вопрос.
В папке localhost у меня лежит файл index.php и папка php_classes в которой я создал 2 тестовых класса.
Затем я устанавливаю через консоль composer в эту папку localhost. И создаю файл autoload. Когда в index.php вывожу классы они подгружаются выводятся все норм работает.
Корневая папка сайта получается localhost.

А если делаю так например в папке localhost создаю папку APP и затем в этой папке создаю файл index.php папку php_classes и ЗДЕСЬ же устанавливаю composer то когда хочу вывести классы то выходит ошибка-
Fatal error: Uncaught Error: Class 'php_classes\Worker' not found in C:\OSPanel\domains\localhost\app\index.php
Почему так происходит где моя ошибка?
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
сложившаяся практика (имена кроме вендора условные)

app - текущий проект
public - www root
src - для либ, которые в дальнейшем планируется использовать в других
vendor
composer.json

Как описать свою либу в самом простейшем варианте
"autoload": {
"psr-4": {
"antson\\": "src/antson/"
}
},
в src создаем папку antson (кто автор), в ней подпапку mylib
ну и дальше
MySuperPuper.php
<?php
namespace antson\mylib;
class MySuperPuper{
....
}

в основном проекте юзаем так
$a = new antson\mylib\MySuperPuper();
или
use antson\mylib\MySuperPuper;
...
$a = MySuperPuper();

Это сильно упрощено ! Внимательно читаем про PSR и namespace.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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