Как стать автором
Обновить
54.41

PHP *

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

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

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

Время на прочтение6 мин
Количество просмотров3.1K

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

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Новости

Добавление полей Joomla в результаты Умного Поиска при помощи JFilters

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров293

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

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии1

Почему FilamentPHP — это хорошее решение для создания CMS

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров4.3K

Привет, Хабр! Меня зовут Егор Черненок, я работаю PHP-разработчиком в AGIMA. В этой статье расскажу вам о FilamentPHP. В документации говорится, что это набор красивых Fullstack-компонентов для Laravel. От себя добавлю, что он отлично подходит для построения CMS. А теперь подробно объясню, почему это так.

Читать далее
Всего голосов 10: ↑5 и ↓50
Комментарии23

Настраиваем Windows WSL для локальной разработки Laravel

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

В этой небольшой статье я очень сжато расскажу, как правильно настроить WSL в Windows 11 для локальной разработки Laravel-приложения. Мы собираемся установить php, mysql, nginx и composer, а также отредактировать файл hosts в самом Windows. Заранее прошу не гневаться на меня поклонников Docker, здесь я рассказываю именно про WSL.

Итак, без лишних промедлений, приступим. И начнем с того, что, как мы предполагаем, у нас есть Windows и всё. Если WSL уже установлен, львиную часть статьи можно пропустить.

Убедитесь в том, что ваша версия Windows совместима с WSL.

Читать далее
Всего голосов 11: ↑7 и ↓4+3
Комментарии22

Разработка автоматизированной очереди для сдачи лабораторных работ

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

Учеба в политехе заключается в сдаче лабораторных работ. Буквально. Очень редко бывает такое, что на парах мы чему-то учимся, зачастую все завязано на самообучении. Грубо говоря, вот вам методичка, разбирайтесь сами, через неделю дедлайн.

В связи с этим мы столкнулись с очередями на сдачу этих лабораторных. Сначала просто писали в общий чат, кто каким будет в очереди (например, "я первый", "я вторая", "я третий" и т.д.). Далее решили создать расшаренную таблицу в гугле для формирования очередей. Однако долго она тоже не прожила, так как со временем появились "умники", которые стали ставить себя первыми в очереди, сдвигая остальных вниз. Потом общий доступ для таблицы закрыли, и было принято решение для записи на сдачу писать старосте, он, в свою очередь, будет добавлять студентов в список. Но староста группы не может быть постоянно на связи, иными словами, оперативно добавиться в очередь было просто невозможно.

В связи с этим я задумался над созданием автоматизированной очереди. В качестве стека основных технологий выбрал HTML5+CSS3 для фронтенда, PHP для бэкенда. В качестве СУБД был выбран phpMyAdmin (SQL-DB). В первую очередь, конечно, необходимо было продумать структуру базы данных. Предметная область информационной системы уже была сформулирована: "Очередь на сдачу лабораторных работ с возможностью записи по отдельным дисциплинам, удаления своей записи. Учет истории создания записи, удаления записей, включая время записи. Возможность смены пароля, просмотра профиля." Даталогическая модель БД была построена в MySQL Workbench 8.0 CE в нотации IDEF1X.

Читать далее
Всего голосов 6: ↑3.5 и ↓2.5+1
Комментарии13

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

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

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

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

Читать далее
Всего голосов 5: ↑4.5 и ↓0.5+4
Комментарии9

LayerSlider WordPress CVE-2024-2879

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

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

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

Читать далее
Всего голосов 9: ↑6 и ↓3+3
Комментарии2

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

Время на прочтение3 мин
Количество просмотров565

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

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

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

Время на прочтение7 мин
Количество просмотров37K

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

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

Читать далее
Всего голосов 172: ↑168 и ↓4+164
Комментарии174

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

Время на прочтение9 мин
Количество просмотров4.1K

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

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

Читать далее
Всего голосов 16: ↑13 и ↓3+10
Комментарии16

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

Время на прочтение5 мин
Количество просмотров4.2K

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

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии4

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

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

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

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

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

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

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии7

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

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

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

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

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

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии133

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

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

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

Читать далее
Всего голосов 15: ↑10 и ↓5+5
Комментарии4

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

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

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

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

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

Читать далее
Всего голосов 7: ↑4 и ↓3+1
Комментарии6

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

Время на прочтение18 мин
Количество просмотров603

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии5

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

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

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

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

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

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

Поехали!
Всего голосов 14: ↑13 и ↓1+12
Комментарии52

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

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

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

Распилить
Всего голосов 42: ↑39 и ↓3+36
Комментарии36

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

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

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

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

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

Читать далее
Всего голосов 76: ↑74 и ↓2+72
Комментарии33
1
23 ...