Форум программистов, компьютерный форум, киберфорум
PHP: Фреймворки
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/48: Рейтинг темы: голосов - 48, средняя оценка - 4.79
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827

Настройка портативного xampp slim psr7 с использованием composer

22.02.2021, 16:58. Показов 9760. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Дома и на работе стоит винда и это одна из причин почему пользуюсь портативным xampp. На докер пока не перехожу, потому что нужно разбираться, а времени нет и как я понял, его нельзя использовать портативно. А xampp можно. Иногда устанавливаю какие-то библиотеки с помощью composer. Он у меня установлен глобально на домашнем компе в одну из папок портативного xampp. У меня они на нескольких дисках висят. На работе пока не пробовал использовать с флэшки. Собираюсь на днях попробовать устанавливать пакеты используя composer на флэшке.
Пока что хочу поставить микрофреймворк Slim. Пытался ставить и в тот xampp где установлен composer, и на другой диск поставить. Установка проходит нормально. Ставится версия 4.7 и к нему psr7 версии 1.3.0. Прописываю в index.php путь к autoload, но либо ничего не загружается, либо загружается autoload а дальше ошибки. Все указывают на то, что не могут найти путь к определенным файлам. Если прописываешь по очереди "правильные" пути, то стартует следующий файл, а в нем аналогичная проблема. Не может найти следующий. В index.php прописываю следующее:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
 
require __DIR__ . '/../vendor/autoload.php'; // так сказать родной путь, но он не срабатывает
$app = AppFactory::create();
 
$app->get('/', function (Request $request, Response $response, $args){
    $response->getBody()->write('{прювет}');
    //retune $response->withHeader('Content-Type', 'application/json');
});
 
$app->run();
Делал варианты путей:
PHP
1
2
3
4
5
6
7
require __DIR__ . '/vendor/autoload.php'; // пишет правильный путь от диска, но не стартует
require __DIR__ . '../vendor/autoload.php'; // добавляет двоеточие после папки public в проекте
require '/vendor/autoload.php'; // указывает путь от папки vendor
require 'api/public/vendor/autoload.php';  // указывает путь от папки api
require 'psr1/api/public/vendor/autoload.php'; // указывает путь от папки проекта
require '../vendor/autoload.php'; // срабатывает, но дальше не идет
require ($_SERVER["DOCUMENT_ROOT"].'/psr1/api/vendor/autoload.php'); // срабатывает, но дальше не идет
При этом, если в остальных файлах по очереди (сперва в autoload, затем в autoload_real и тд) менять на другие пути, то следующий файл загружается.
По всей видимости что-то не так настроено в апаче. Возможно и в виртуальных хостах, хотя я пока что не пробовал их включить. Вернее пробовал, но получал ошибки апача. Хотелось бы помощи в этом вопросе.

Добавлено через 1 час 17 минут
Да, забыл написать структуру каталогов проекта:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
htdocs
  -psr1
    -api
      -public
          index.php
      -vendor
          -composer
          -fig
          -nikic
          -psr
          -ralouphie
          -slim
          -symfony
          autoload.php
      composer.json
      composer.lock
    -frontend
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2021, 16:58
Ответы с готовыми решениями:

Xampp и composer
начал установку composer и постоянно выдаёт ошибку с openssl хотя в php.ini убрал точку с запятой не могу понять в чём проблема

Ссылки с использованием препроцессоров less(css) и slim(html)
Задача состоит в следующем: Создать три html документа, связанных между собой. Ссылки должны менять свой внешний вид, например при...

Настройка XAMPP
Здрасте! Уверен эта проблема уже обсуждалась, но я так и не нашел решения. Установил XAMPP. В брандмауэре создал исключение для...

53
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.02.2021, 17:58
Цитата Сообщение от DyadyaGe Посмотреть сообщение
дальше ошибки
Какие конкретно?
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
22.02.2021, 18:52  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Какие конкретно?
Я так понимаю о том, что пути не те:
PHP
1
2
3
4
5
6
index
H:\xampp\htdocs\psr1\api\public/vendor/autoload.php
autoload
autoload_real
 
Fatal error: Uncaught Slim\Exception\HttpNotFoundException: Not found. in H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php:91 Stack trace: #0 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\Routing\RouteRunner.php(72): Slim\Middleware\RoutingMiddleware->performRouting(Object(Slim\Psr7\Request)) #1 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\MiddlewareDispatcher.php(81): Slim\Routing\RouteRunner->handle(Object(Slim\Psr7\Request)) #2 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\App.php(215): Slim\MiddlewareDispatcher->handle(Object(Slim\Psr7\Request)) #3 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\App.php(199): Slim\App->handle(Object(Slim\Psr7\Request)) #4 H:\xampp\htdocs\psr1\api\public\index.php(21): Slim\App->run() #5 {main} thrown in H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php on line 91
Первые четыре строки показывают что подключилось
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.02.2021, 19:00
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Fatal error: Uncaught Slim\Exception\HttpNotFoundException: Not found.
Все отлично с путями, и slim отработал - только обработчика для запрошенной страницы нет (404)
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
22.02.2021, 19:16  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
только обработчика для запрошенной страницы нет (404)
Как бы папка Exception и Error есть. Вроде все прописалось в них. До этого писало тоже самое, только про другие страницы.
А какие ещё должны быть исключения?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.02.2021, 19:18
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Как бы папка Exception и Error есть. Вроде все прописалось в них. До этого писало тоже самое, только про другие страницы.
А какие ещё должны быть исключения?
Не понял
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
22.02.2021, 19:46  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Не понял
Вы пишите про то, что нет обработчика запрошенной страницы. Я так понимаю, это либо нет страницы, тогда какой страницы? Я ведь пути прописываю фактически "вручную". Либо нет обработчика конкретной ошибки. И поскольку на экране не вывелось сообщение именно "404", а я так понимаю, в slim это должно быть реализовано из коробки, значит нет такого обработчика. Опять же, либо его нет физически, либо пути к нему не те. Проверил по содержимому файлов в папке Error. Там нет упоминания про "404". Тоесть физически нет. Зато есть, где по идее и должно быть, в папке Exception файл HttpNotFoundException.php. Но раз сообщение не выводится, то что-то не так, видимо пути.
Перед этим писало аналогичную ошибку, что не может найти файл autoload_real. Могу откатить назад, когда писало про это.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.02.2021, 19:57
С файловой системой всё хорошо.

С обработчика, за написание которого отвечает программист. Вот что-то такое нужно, но для запрашиваемой страницы
Цитата Сообщение от DyadyaGe Посмотреть сообщение
PHP
1
2
3
4
$app->get('/', function (Request $request, Response $response, $args){
    $response->getBody()->write('{прювет}');
    return $response->withHeader('Content-Type', 'application/json');
});
Цитата Сообщение от DyadyaGe Посмотреть сообщение
на экране не вывелось сообщение именно "404", а я так понимаю, в slim это должно быть реализовано из коробки
Далеко не факт. Учитывая, что slim - это микрофреймворк, то никаких обработчиков ошибок могли и не завести. Это и отличает микрофреймворк от фреймворка - "искаробки" только минимальная базовая конфигурация. Нужно что-то еще - устанавливать отдельно или писать свой
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
22.02.2021, 20:40  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Нужно что-то еще - устанавливать отдельно или писать свой
Как бы вот содержание:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class HttpNotFoundException extends HttpSpecializedException
{
    /**
     * @var int
     */
    protected $code = 404;
 
    /**
     * @var string
     */
    protected $message = 'Not found.';
 
    protected $title = '404 Not Found';
    protected $description = 'The requested resource could not be found. Please verify the URI and try again.';
}
Тоесть обработчик, как я понимаю, минимальный, есть.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
но для запрашиваемой страницы
А какая страница запрашивается?
PHP
1
H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\Middleware\RoutingMiddleware.php
? Так она есть.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Вот что-то такое нужно
Пример взят из одного курса. Там все работает, но на докере. И настроено все серьезней чем у меня. Оттуда же взята строка:
PHP
1
require __DIR__ . '/../vendor/autoload.php';
с которой не работает у меня.
Куда копать? Что из своих записей показать? Хотя их и нет почти. Всё ж в index.php только написано.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.02.2021, 20:50
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Как бы вот содержание:
При чем тут содержание файла HttpNotFoundException?
Цитата Сообщение от DyadyaGe Посмотреть сообщение
А какая страница запрашивается?
Это файл, и это тоже не при чем.
Еще раз, с файловой системой все отлично.

Например, в данный момент на этом форуме я смотрю страницу (точнее uri, еще точнее часть uri - path) - /php-frameworks/thread2787124.html

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Пример взят из одного курса. Там все работает, но на докере. И настроено все серьезней чем у меня
Следует смотреть официальную документацию, а не курсы
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
23.02.2021, 00:23  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
При чем тут содержание файла HttpNotFoundException?
Значит я чего-то недопонимаю. Думал, что она отвечает за сообщение, выводимое при ошибке 404.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Следует смотреть официальную документацию, а не курсы
Сам скорее всего не потяну, а на курсах вроде с комментарием документации показывают. Типа: "Написано то-то, поэтому делаем так".
Вернее наверно осилил бы документацию и сам, но сроки. Как всегда дело в сроках. Это по учебе нужно. А кроме неё ещё работа и куча других дел.

Добавлено через 3 часа 9 минут
После создания папки config с файлами: bootstrap.php, container.php, middleware.php, routes.php, settings.php, как написано на странице фреймворка появилось следующее сообщение об ошибке:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Slim Application Error
 
The application could not run because of the following error:
Details
Type: RuntimeException
Code: 0
Message: Callable BasePathMiddleware does not exist
File: H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\CallableResolver.php
Line: 147
Trace
 
#0 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\CallableResolver.php(101): Slim\CallableResolver->resolveSlimNotation('BasePathMiddlew...')
#1 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\CallableResolver.php(79): Slim\CallableResolver->resolveByPredicate('BasePathMiddlew...', Array, 'process')
#2 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\MiddlewareDispatcher.php(208): Slim\CallableResolver->resolveMiddleware('BasePathMiddlew...')
#3 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\Middleware\ErrorMiddleware.php(107): class@anonymous->handle(Object(Slim\Psr7\Request))
#4 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\MiddlewareDispatcher.php(209): Slim\Middleware\ErrorMiddleware->process(Object(Slim\Psr7\Request), Object(class@anonymous))
#5 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\MiddlewareDispatcher.php(81): class@anonymous->handle(Object(Slim\Psr7\Request))
#6 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\App.php(215): Slim\MiddlewareDispatcher->handle(Object(Slim\Psr7\Request))
#7 H:\xampp\htdocs\psr1\api\vendor\slim\slim\Slim\App.php(199): Slim\App->handle(Object(Slim\Psr7\Request))
#8 H:\xampp\htdocs\psr1\api\public\index.php(3): Slim\App->run()
#9 {main}
Видимо где-то какие-то пути не допрописаны
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.02.2021, 00:58
Ссылка на документацию?
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
23.02.2021, 11:30  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Ссылка на документацию?
https://odan.github.io/2019/11... orial.html

Добавлено через 5 минут
У меня есть вариант и полностью как в документации, с той же структурой папок. Но результат один и тот же
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.02.2021, 11:49
Цитата Сообщение от DyadyaGe Посмотреть сообщение
https://odan.github.io/2019/11... orial.html
Это не официальная документация. Вот официальная документация https://www.slimframework.com/
1
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
23.02.2021, 12:30  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Вот официальная документация
Тут же почти ничего не написано. Демонстрируется только полная установка (slim/slim-skeleton). А мне нужен только psr7. И ссылки с этой страницы ведут на тот же гитхаб. И пример на офстранице такой же, как я пробовал.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.02.2021, 12:46
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Тут же почти ничего не написано.

Цитата Сообщение от DyadyaGe Посмотреть сообщение
Демонстрируется только полная установка (slim/slim-skeleton). А мне нужен только psr7
В скелетоне не сильно больше компонент
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
"require": {
    "php": "^7.2",
    "ext-json": "*",
    "monolog/monolog": "^2.2",
    "php-di/php-di": "^6.3",
    "slim/psr7": "^1.3",
    "slim/slim": "^4.7"
},

Да и не обязательно скелетон ставить, это скорее как пример минимально рабочего приложения на конкретном фреймворке
Цитата Сообщение от DyadyaGe Посмотреть сообщение
Демонстрируется только полная установка (slim/slim-skeleton)
А это что?
Цитата Сообщение от DyadyaGe Посмотреть сообщение
И ссылки с этой страницы ведут на тот же гитхаб.
На блог Васяна Daniel Opitz?
1
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
23.02.2021, 12:47  [ТС]
И если ставить полную версию, то она требует аккаунта на гитхабе, а у меня его пока нет. Всему свое время.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.02.2021, 12:52
Цитата Сообщение от DyadyaGe Посмотреть сообщение
И если ставить полную версию, то она требует аккаунта на гитхабе
Не правда
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.02.2021, 12:55
Поставил и скелетон, безо всякой авторизации в гитхабе, и минимальную версию, только 2 пакета. В обоих случаях все работает.
Использовал встроенные сервер, апача нет и ставить не хочу. Но если и использовать апач, никаких проблем быть не должно, настройка самая стандартная, - корень веб сервера в директорию public, запросы к несуществующим файлам в index.php
Кликните здесь для просмотра всего текста
0
18 / 13 / 6
Регистрация: 04.04.2019
Сообщений: 827
23.02.2021, 13:02  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
В скелетоне не сильно больше компонент
В любом случае, при полной установке требует аккаунт. Зачем оно мне?
Цитата Сообщение от Jewbacabra Посмотреть сообщение
А это что?
Честно говоря, не пойму где эта ссылка на самом сайте находится и как на неё выйти. Видать поиск у меня страдает.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
На блог Васяна Daniel Opitz?
Сильно не вникал в авторство. Может он один из авторов. Он же как-то с гитхабом связан.

Добавлено через 3 минуты
Цитата Сообщение от Jewbacabra Посмотреть сообщение
безо всякой авторизации в гитхабе
Прикрепил скрин
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.02.2021, 13:02
Помогаю со студенческими работами здесь

Настройка xampp
Установил xampp, нужно создать виртуальный сервер, вроде все сделал по инструкции, сервер запускается, в xampp через браузер захожу, только...

Настройка xampp 1.8.3
Установил xampp 1.8.3 по инструкции. Начал настраивать хосты по мануалу. Открыл файл /opt/lampp/etc/extra/httpd.conf И убрал...

XAMPP и настройка почты
Не приходят сообщения на почту. Настройки php.ini: ; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury ...

Настройка сервера XAMPP
Установила xampp готовый движок сайта .При установке сайта ввела свой внешний айпи но когда сайт установила пишу в адресной строке свой...

Установка и настройка XAMPP
Помогите найти рабочую версию xampp, уже два дня перепробовал несколько десятков версий дайте пожалуйста рабочую у кого стоит


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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