Новости 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 Гость просматривают эту тему.
  • 30 Ответов
  • 31727 Просмотров
*

jem777

  • Завсегдатай
  • 1666
  • 119 / 2
Re: Attachments. Кодировка имени файла
« Ответ #30 : 06.05.2020, 12:00:15 »
Давно не слежу за компонентом, но скорее всего -  удаляете физически файл с диска, но в БД информация остается.
Логично что при загрузке этого же файла идет проверка и ошибка.
Проверить наличие записи про этот файл в базе и удалить там.
Наоборот, с базы данных удаляет корректно, а вот с диска уже не может. Папка целиком остается бесхозной. Соответственно если попытаться загрузить тот же файл во второй раз, то ессно ругается что такой файл уже имеется.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Attachments, не прикрепляются файлы с расширение ppt, pptx (презентации)

Автор IrochkaStep

Ответов: 0
Просмотров: 3270
Последний ответ 13.04.2020, 12:48:58
от IrochkaStep
Attachments Joomla похоже все. Альтернативы есть?

Автор wishlight

Ответов: 19
Просмотров: 5208
Последний ответ 29.03.2019, 21:12:04
от effrit
простой файловый downloader - Attachments for content articles

Автор zaboich

Ответов: 141
Просмотров: 88395
Последний ответ 01.03.2018, 17:50:50
от gromlan
Joomla 3.8 и Attachments - не отображаются вложенные файлы

Автор dimetrius

Ответов: 4
Просмотров: 4534
Последний ответ 02.01.2018, 12:36:00
от wishlight
Баги при работе с Joomla 3.7 и Attachments

Автор Alexis001

Ответов: 1
Просмотров: 4065
Последний ответ 12.05.2017, 14:45:24
от Alexis001