Обновить
64K+

PHP *

Скриптовый язык общего назначения

75,74
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Подводные камни при разработке мобильного приложения на Bitrix REST API

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели2.6K

Меня зовут Андрей Буйновский, я разработчик в ИТ-компании. Мы с командой решили написать эту статью и поделиться некоторыми проблемами, подводными камнями и их решениями в разработке мобильного приложения для одного нашего заказчика из ритейла. 

Мы разработали интернет-магазин для крупной торговой сети. После запуска интернет-магазина, мы перешли к развитию проекта, в рамках которого появилась задача по созданию дополнительного канала по взаимодействию с покупателями. Вопрос о выборе API для бэкэнда не стоял, так как интернет-магазин был разработан на платформе 1С-Битрикс, система имеет необходимый функционал для работы с альтернативным фронтом и мобильным приложением. Перед нашей командой стояла задача разработать мобильное приложение на основе Bitrix REST API для платформ iOS и Android с сохранением функционала действующего интернет-магазин заказчика. Это означало необходимость использования компонентов, уже реализованных для интернет-магазина, копирования их с целью сохранения логики, удаления верстки и использования возвращаемых данных.

Читать далее

LayerSlider WordPress CVE-2024-2879

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели3.4K

WordPress - самый популярный CMS для создания сайтов. Поэтому появление уязвимостей в различных плагинах затрагивает множество пользователей по всему миру. Усугубляет общую картину и тот факт, что во многих плагинах отсутствует автоматическое обновление версий. Не исключением стал и плагин LayerSlider в котором была найдена уязвимость типа SQL-injection, получившая идентификатор CVE-2024-2879 и балл CVSS равный 9,8 (критический).

Давайте вместе с вами более детально рассмотрим данную уязвимость в нашей статье и покажем ее эксплуатацию.

Читать далее

Используем поля Joomla для фильтрации материалов

Время на прочтение3 мин
Охват и читатели1.4K

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

Читать далее

Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

Время на прочтение7 мин
Охват и читатели48K

В жизни любого разработчика наступает момент, когда он роняет прод. Представьте: полдень, в Skyeng час пик, тысячи запланированных онлайн-уроков, а наша платформа лежит… 

Все упало из-за ошибки в процессе деплоя, которая связана с тонкостью PostgreSQL. К сожалению, на этом моменте у нас прокололась не одна команда. И чтобы такое больше не произошло ни у нас, ни в другой компании — велкам под кат.

Читать далее

Исследование: какую долю занимает Joomla среди ru-сайтов в 2024 году?

Время на прочтение9 мин
Охват и читатели7K

В процессе работы как с самой Joomla, так и вместе с Joomla-сообществом периодически возникали вопросы о том "какую долю рынка CMS" занимает Joomla, каким общедоступным цифрам можно доверять и насколько они точны. Также, кроме уточнения самой доли рынка хотелось получить статистику по используемым версиям Joomla.

Ну и весомым фактором было желание попробовать сделать с Joomla что-то новое, выходящее за рамки обычной рабочей рутины - сделать собственное исследование ?

Читать далее

PHP и Laravel дайджест новостей за февраль 2024 года

Время на прочтение5 мин
Охват и читатели4.8K

Всем привет! Краткий обзор новостей из мира PHP и Laravel за январь 2024 года от Сергея Пантелеева и Данила Щуцкого (CutCode).

Читать далее

Система уведомлений в ресурсах Laravel

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели3.7K

В предыдущей статье по работе с API ресурсами в Laravel была затронута тема изменения бизнес-потребностей в области формирования внешнего вида объекта ответа на запрос к API приложения.

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

Читать далее

Магический API Resource в Laravel

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели10K

В Laravel есть удобные API ресурсы, с которыми легко и приятно работать в области трансформации данных для ответа на запрос. Но что делать когда возникает необходимость изменить их структуру в соответствии с бизнес-потребностями? Разберёмся вместе!

Читать далее

Анемичная модель предметной области и логика в сервисах

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели24K

Анемичная модель предметной области (Anemic domain model) это такая модель, где сущности содержат только свойства, а бизнес-логика находится в сервисах. Ее противоположность это богатая модель предметной области (Rich domain model), где логика находится в сущностях, а cервиcы рекомендуют писать только в редких случаях.

В этой статье я хочу показать, почему логика в сервисах является более правильным подходом. Мы рассмотрим пример бизнес-требований и их реализацию с Anemic domain model.

Читать далее

Как я обновлял свой проект на Laravel c 10-й версии на 11-ю

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

Сегодня, 12 марта 2024, года официально вышла Laravel 11. И все те, кто хочет обновится - добро пожаловать под кат!

Читать далее

WordPress: разбор уязвимости в Discount Rules for WooCommerce

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели2.3K

Добрый день, уважаемые читатели! Сегодня мы разберем одну старую уязвимость в плагине Discount Rules for WooCommerce < 2.2.0 для WordPress.

WooCommerce - это плагин для создания онлайн-магазина на движке WordPress, а WooCommerce Discout Rules - дополнение для WooCommerсe для предоставления и управления скидками на товары.

Суть уязвимости заключается в возможности использовать некоторые методы плагина через admin-ajax.php, которые позволяют перечислять товары, пользователей, а самое главное - сделать товар бесплатным посредством добавления правила на скидку.

Читать далее

Добавление своих команд для CLI в Joomla 4 и Joomla 5 с помощью плагина

Время на прочтение18 мин
Охват и читатели1.9K

В Joomla, как и во многих других PHP фреймворках и движках, уже довольно давно (с версий 1.7.x) существует возможность работы с помощью CLI. С его помощью обычно решают те задачи, решение которых в веб-интерфейсе Joomla нецелесообразно из-за возможных ограничений веб-сервера - так называемые "тяжелые" задачи. Это может быть миграция большого количества контента со старой версии Joomla на новую, синхронизация данных с внешним источником по API (синхронизация цен и остатков, выгрузка заказов), работа с файлами и каталогами, выполнение пакетных заданий на больших объёмах и т.д. - всё то, что может занимать много времени и ресурсов сервера.

Как добавить свою команду в CLI интерфейс Joomla расскажет эта статья.

Читать далее

Пишем REST-приложение на Delphi

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели15K

Привет, Хабр!

Я Ануар, работаю в GlowByte и профессионально играю на нервах (шутка ?).

К написанию статьи подвигла ситуация отсутствия в Рунете информации, как с использованием Delphi реализовать классическое трехзвенное приложение без использования фреймворков и каких-то приближенных к Microsoft технологий. Ниже следует текст немного в шутливой форме о мини-квесте «Как быстро написать распределенное многозвенное приложение на Delphi, использующее REST API». 

Целью было написать статью, которая бы коротко и ясно показывала, как реализовать такой функционал, так как не нашел статей и примеров именно по этой тематике и проблематике. Может, кому-то пригодится при освоении и понимании азов REST API. Возможно, кому-то статья покажется «для самых маленьких», но я надеюсь, что она будет полезна как в практическом смысле, так и теоретическом и поможет понять, как все это работает.

Поехали!

Ближайшие события

Мы пилили монолит — много нас, а он один. Полезные советы от команды Яндекс Еды

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели23K

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

Распилить

Как я обработал один миллиард строк в PHP

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели22K

Вероятно, вы уже слышали о соревновании под названием "The One Billion Row Challenge" (1brc), если же нет, то предлагаю ознакомиться с репозиторием 1brc Гуннара Морлинга.

Моё участие в проекте было мотивировано присутствием в нём двух моих коллег, которые достигли лидирующих позиций.

PHP не известен своими выдающимися скоростными показателями. Тем не менее, учитывая, что я работаю над профайлером PHP, я решил исследовать его производительность на примере этого вызова.

Читать далее

Паттерн Aggregate Outside

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.7K

Руслан Гнатовский aka @Number55 в свой статье Когда ни туда, ни сюда, или в поисках оптимальной границы Domain слоя описал известную проблему протекания бизнес-логики из агрегата, в случае если эта логика зависит от данных которые находятся вне агрегата, и предложил несколько решений этой проблемы, каждое из которых не лишено недостатков. Многие из этих недостатков были описаны в статье а также в комментариях поэтому я не буду здесь дублировать эту информацию а попытаюсь предложить решение которое этих недостатков лишено.

Читать далее

Joomla на FOSDEM 2024: запуск Альянса открытых веб-сайтов

Время на прочтение5 мин
Охват и читатели834

FOSDEM 2024 - масштабная конференция разработчиков ПО с открытым исходным кодом, насчитывающая тысячи участников и более шестидесяти конференц-залов. Президент Joomla Crystal Dionysopoulos присутствовала на этом мероприятии. Представители популярных платформ Joomla, Drupal, WordPress и Typo3 объединили усилия и запустили Альянс открытых веб-сайтов.

Читать далее

Превращение событий PostgreSQL в события Laravel

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели6.1K

В прошлый раз я описал, как можно поставить задачу (Job) в очередь Laravel из хранимой процедуры или триггера PostgreSQL.

В этой статье я расскажу, как можно преобразовать события, возникающие в PostgreSQL, в события Laravel.

Рабочий пример выложен на GitHub.

Читать далее

Подмена функций стандартной библиотеки PHP с помощью xepozz/internal-mocker

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели1.7K

Как в PHP заставить функции из стандартной библиотеки, например \time() или \date() выдать нужный результат?

С помощью инструмента xepozz/internal-mocker такое возможно сделать. Для этого необходимо выполнить несколько подготовительных шагов и можно запускать тесты в любом окружении.

Читать далее

Управляем командами на Laravel

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели6.6K

Chronos for Laravel

Веб-интерфейс для управления командами Laravel в real-time без необходимости лезть в код проекта.

Читать далее