Новости Joomla

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира 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

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

fox7812

  • Захожу иногда
  • 111
  • 18 / 0
Краткое изложение:

Концепция USCACHE:
Отдача наиболее посещаемых страниц сайта полностью в статичном виде.

В чем отличие от стандартного кеша joomla:
Стандартный кеш Joomla ускоряет загрузку страниц, но фреймворк отрабытывает полностью, также кеш отдается фрагментарно. USCACHE останавливает фреймворк
в случае обнаружения возможности загрузить кеш и загружает полностью статичную страницу, сохраненную заранее.

А если на сайте динамичный контент (корзина):
Концепция тестировалось на свзяке Joomla 2.5 + VirtueMart. Решение заключается в том что первая страница сайта для посетителя всегда грузится динамически,
для получения сессии и окружения. Последущие статично. В случае корзины VirtueMart проверяется ее активность и если в корзине что-то лежит, она используется,
то страницы загружается динамично.

А если стоит LMplugin?
Система интегрирована с LMplugin, заголовок Last Modified отдается в любом случае.

А если кеш битый?
Перед загрузкой статики она проверяется на целостность и корректность.

Как сохраняется кеш?
На данный момент кеш сохраняется отдельной программой на C++, которую можно запустить удаленно из браузера и спланировать задания cron. Возможна реализация
на других языках программирования.

Как системой управлять?
Включение и выключение uscache интегрировано в плагин LMplugin.

А если нужно посмотреть как выглядит динамичная страница?
Для этого есть флаг ?nocache, который отключает загрузку статики конкретной страницы в данный момент.

А зачем все это нужно и так все хорошо?
Я за вас рад!

________________________________

Идея USCACHE родилась случайно. USCACHE не компонент и не плагин Joomla. А интересный подход к кешированию страниц сайта и отдаче их в полностью статичном виде.

Сама концпеция родилась при размышлении о ускорении загрузки страниц одного из проектов, интернет магазина на Joomla 2.5 с использованием VirtueMart 2. Скажу
сразу на выделенном хостинге сайт летал и так, были применены все мыслимые методы:

- кеширование байт-кода php
- стандартное кеширование  Joomla
- отдельное кеширование CSS и js
- включен gzip

Идея возникла исходя из постулата - 20 процентов клиентов приносят 80% прибыли. На языке web это означало - 20% страниц сайта посещают 80% пользователей.
На практике, при анализе статистики посещаемости данного проекта выяснилось, что при ресурсе проекта более чем в 700 страниц, около 10 являются наиболее
посещаемыми. Это оказались главная страницы и наиболее популярные каталоги и товары. Возникла идея эти 10 страниц отдавать полностью в статичном виде.

Технически концепция заключалась в следующем:
1) В корневой директории сайта создается папка, куда кладутся статичные HTML файлы нужных страниц.
2) При инициализации Joomla проверяет наличие кеша и в случае успеха вместо дальнейшей работы фреймворка загружает статику из каталога.

На деле я столкнулся со сложностями:
1) Проект был интернет-магазином и необходимо было обеспечить нормальную работу VirtueMart и корзины.
2) Проект активно продвигается в интернете, необходимо чтобы страница отдавала корректные заголовки, необходимые поисковым системам.

Итоговая реализация выглядит так:
1) При посещении первой страницы пользователем она загружается динамически, создается сессия и все необходимое окружение для работы компонентов.
2) При посещениие других страниц они загружаются статично, если кеш существует.
3) Даже при отдаче статичных страниц отрабатывает плагин LMplugin и отдает необходимые заголовки.

На практике наблюдалось ускорение загрузки страницы более чем в 2 раза и использовнием кеша.

Следующим этапом разработки была оптимизация процесса кеширования, результата которой стала программа на C++. С++ был выбран прежде всего для скорости, да и я в
момент возникновения идеи больше писал на С++, но программа может быть воспроизведена на любом другом языке. Сервер проекта выделен и проблем с компиляцияей
программы не сервере проекта со всеми необходимыми библиотеками не стояло.

Итак, программа при запуске читала свой конфигурациионный файл, где перечислялись страницы проекты, которые было необходимо закешировать. После этого указанные
страницы запрашивались и складывались в папку с кешем. Программа работает по крону и доступна из бразуера для ручного обновления кеша.

После этого было решено добавить защиту от сбоев при загрузке кеша Joomla, а именно:
- перед загрузкой статичной страницы проверяется целостна ли она (загружена ли полностью)
- также проверяется корректна ли страница (проверка на ошибку сервера)

Последним этапом стало подключение управления системой, а именно:
- для удобства разработки загрузку динамичной страницы вместо кеша можно инициализировать добавлением к url параметра ?nocache
- Плагин LMplugin был доработан для включения и выключения USCACHE   

Посмотреть код включения можно тут http://www.sdf-group.ru/joomla/uscache-otdaem-statichnye-stranitsy.html.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин отложенной загрузки элементов страницы для Joomla 2.5/3

Автор Arkantos

Ответов: 3
Просмотров: 2706
Последний ответ 16.04.2014, 17:41:49
от Arkantos
Модуль вывода заголовка страницы

Автор snikolai

Ответов: 3
Просмотров: 2047
Последний ответ 10.06.2013, 22:43:31
от snikolai