Новости Joomla

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 1696 Просмотров
*

VicS

  • Новичок
  • 8
  • 1 / 0
CATEGORY_NOT_FOUND
« : 18.03.2015, 19:49:05 »
Конфигурация сервера
Спойлер
[свернуть]
Установленные Модули / компоненты / плагины
Спойлер
[свернуть]

Извините за такое подробное изложение информации, может понятнее будет
На Joomla создаю сайты уже 4 года но такое первый раз, просто крик души, помогите пожалуйста!
Локальный хостинг вломали, решил сайт перенести на платный хостинг, поставил CMS с нуля, шаблон, с помощью J2XML перенес категории и материалы.
Пошла настройка, создал категории материалы, прикрутил их к менюшкам, новые материалы прикрутил через News Show Pro GK5, старые которые перенес просто как блог к менюшке сделал.
И тут понеслось, создал материал выставил его как ссылкой, перехожу по ней а меня переносит на главную, хоть какой создаю делаю его ссылкой и все равно переносит на главную.
Начал читать форумы, наткнулся на Убрать ID категории и материала из ссылки
Сделал как здесь
Пробую перейти по ссылке к новому материалу, стало вылазить ошибка 404 и это COM_CONTENT_ERROR_PARENT_CATEGORY_NOT_FOUND логично стало думать что категории у меня не видятся, или как то так.
Наткнулся на одно высказывание:
Цитировать
Была такая, попробуйте структуру меню подстроить подстроить под структуру категорий (не знаю как объяснить более понятно). Ошибка означает, что родительская категория не найдена, значит, ее нужно "найти"/создать и подсунуть материалу
Но и у меня и категории и менюшки по одной схеме сделаны, короче три дня ковырял, отключал модули компоненты ни чего не помогает, один раз заметил после удаления JSN UniForm ссылка заработала, но потом через 10 минут опять вернулось на круги своя.
Что характерно, все материалы которые я переносил и делал к ним ссылки они все работают, новые созданные нет, ново созданные прикручивал к менюшке - работает
В таком виде не работает http://www.b-istok.ru/infrasturtura/organizatsii/zao-zavod-elementov-truboprovodov прикрепляю к меню материал ссылка стает такая: http://www.b-istok.ru/zao-zavod-elementov-truboprovodov и все работает на ура
пример тут слева меню пункт ЗЭТ http://www.b-istok.ru/
пример ссылок новых созданных материалов и старых перенесенных http://www.b-istok.ru/kontakty
Надеюсь суть понятно будет из этой писанины и Вы меня поймете.
Помогите пожалуйста разобраться в чем проблема, сам уже сил нету. Спасибо.
На других сайтах с Joomla 3.4 все нормально робит.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: CATEGORY_NOT_FOUND
« Ответ #1 : 18.03.2015, 23:17:45 »
Стока всего понаписали, что практически ничего не понял.
*

VicS

  • Новичок
  • 8
  • 1 / 0
Re: CATEGORY_NOT_FOUND
« Ответ #2 : 18.03.2015, 23:26:50 »
Вот наглядный пример, создан материал и ссылка на него, и она не работает, материал есть а его не открывает
http://www.b-istok.ru/kontakty
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: CATEGORY_NOT_FOUND
« Ответ #3 : 18.03.2015, 23:58:19 »
Это смотреть надо, чего вы там наворотили, на что и как ссылается меню, какие права, алиасы и т.д.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться