Код: Выделить всё
public function redirect()
{
ini_set("display_errors", 1);
error_reporting(-1);
/** @var RedirectsEntity $redirectEntity */
$redirectEntity = $this->entityFactory->get(RedirectsEntity::class);
print_r($redirectEntity);
exit;
if (($currentUrl = $this->request->getPageUrl()) && ($redirect = $redirectEntity->get((string)$currentUrl))) {
Response::redirectTo($this->request->getBasePathWithDomain() . $redirect->destination, 301);
}
}
Отлаживать дебаггером. Распечатка - это ж несерьезно...korshunov писал(а):И опять, как отлаживать? Глазами просматривать массу классы-объекты в сложной иерархии, когда нельзя получить простую распечатку - это ж несерьезно...
Простите конечно, но не серьёзно принтерить объекты )) Для этого, если уже нужно посмотреть на внутрянку, есть спец. средства типа xdebug.И опять, как отлаживать? Глазами просматривать массу классов-объектов в сложной иерархии, чтобы определять, когда можно запрашивать простую распечатку, а когда нельзя - это ж несерьезно...
zyxer писал(а):Сейчас модуль все делает сам (и таблицу создает). Если хочеться обсудить это решение с точки зрения "как это делать", давайте тогда обсудим в теме viewtopic.php?f=9&t=1508, я думаю там будет уместно.
Чтобы пользоваться этим, нужно загрузить содержимое архива в Okay/Modules и в админке в разделе модулей нажать "установить"
makki писал(а):Отлаживать дебаггером. Распечатка - это ж несерьезно...
zyxer писал(а):Простите конечно, но не серьёзно принтерить объекты )) Для этого, если уже нужно посмотреть на внутрянку, есть спец. средства типа xdebug.
zyxer писал(а):Сам объект для сущности не большой, но у него есть зависимости, которые прокидывает контейнер, и для всех сущностей это один и тот же экземпляр класса. И проблема в принтере не в том, что объект большой, а сам принтер довольно ресурсоёмкий. Попробуйте даже отпринтерить массив категорий, когда их 50+. Страница уже будет подтупливать.
INSERT INTO `ok_okaycms__redirects` (`id`, `source`, `destination`) VALUES (NULL, 'старая ссылка', 'новая ссылка');
zyxer писал(а):Корзина и класс Entity это разные вещи. Не нужно печатать Entity там нечего смотреть.
zyxer писал(а):Сам объект не большой, но у него есть зависимости, которые лежат в свойствах этого объекта, у них есть свои зависимости... Так вот print_r идёт по этим объектам рекурсивно, и у него кончается память.
zyxer писал(а):Вы смотрели сам класс нужного вам Entity? Что в итоге вы ожидаете увидеть в распечатке?
zyxer писал(а):По поводу памяти, включите opcache и потребление упадёт до 50%.
Так тройка на ООП написана... В таком случае память полюбому потребляется. По этому и был придуман механизм Opcache, который я и вам рекомендую включить.Но даже если этому совету последовать, то простой расчет на уровне первоклассника показывает, что в таком случае в приведенном примере потребление памяти в версии 3 с "включите opcache" по сравнению с версией 2 без "включите opcache" будет выше в 2 раза - это ж ни в какие ворота...
zyxer писал(а):Действительно, вы правы, что программы 2000+ годов потребляли килобайты памяти, программы 2019 года могут потреблять гигабайты. Такова тенденция развития...
zyxer писал(а):Узкие места, мы и так оптимизируем, но в целом сделать чтобы он потреблял пару килобай памяти, практически не возможно, та и зачем, вы хотите окай на микроволновке запускать?
zyxer писал(а):а уменьшить потребление памяти можно либо исправлением узких мест (которые исправляются) или в ущерб функциональности/гибкости/поддерживаемости кода
zyxer писал(а):Вы можете тоже внести свои идеи в развитие. Только напишите что именно вы предлагаете, и как это реализовывается (я имею ввиду для экономии памяти).
zyxer писал(а):Тестами не прогонял по всем кейсам, но вроде работает. После установки нужно в БД в таблице ok_okaycms__redirects создавать записи. В source пишем откуда, в destination пишем куда. Так же не сложно докрутить, чтобы в админке был удобный интерфейс управления этим.
Забыл сказать, и в source и в destination пишем относительные ссылки без слеша пример: http://prntscr.com/q3dpuv
Вернуться в «Полезные решения для OkayCMS»
Сейчас этот раздел просматривают: 40 гостей