Блог - PHP

MageConf 2017

16 декабря 2017 г в Киеве прошла конференция по разработке на Magento - Mageconf 2017

Я посетил эту конференцию в рамках работы в компании "220 Вольт"

От нашей компании на конференцию поехали 3 человека. Иван Кулик - директор интернет магазина, Федор Зубков - project manager, Антон Шелыганов - PHP/Magento разработчик.

Вылетели из Санкт-Петербурга в пятницу 15 декабря, в 14:45. Летели компанией БелАвиа, с пересадкой в Минске, поскольку рейсов из России на Украину нет. Перелет получился немного утомительным, зато много кормили.

Фильтр матерных слов для сайта

В данном посте решается задача обнаружения мата в комментариях. Впринципе можно сделать с помощью stop words. Эти списки есть в открытом доступе. Но, как правило, списки неполные. И уж точно не учитывают все возможные словоформы

В итоге многие матерные слова все равно идут мимо фильтра. На помощь приходят анализаторы. Всего мне попалось 2 анализатора, которые работают неплохо(смотрел варианты на php).

Пишем CRUD-генератор для Magento 2

Создание GRUD и связанной логики в Magento 2 может быть непростой задачей.

Достаточно прочитать это руководство, чтобы понять это.

Постепенно привыкаешь и все это уже выглядит не так сложно. Но, если ты только начал работать с magento, то создание grid в админке magento напоминает ритуал воскрешения сатаны. Если же понадобится сделать еще один модуль с grid, то весь процесс придется повторить.

Интеграция Magento 2 и Elastic Search

В нашем проекте DIY price мы используем Magento 2 в качестве ecommerce движка. Сначала пытались делать проект полностью на magento но в итоге пришли к headless режиму. Frontend написан на VueJS, отделен от magento и взаимодействует с ней по Rest API. Такой подход приносит определенные сложности - многое нужно продумывать самому, нехватает некоторых методов api и т.д. В то же время упрощает работу frontend разработчиков, дает больше гибкости. Настраивать тему magento под свои нужды иногда может быть непростирой задачей. В конечном итоге headless архитектура оправдывает себя.

В качестве поискового движка планировали использовать Elastic Search. Причем в нашем случае мы можем даже обращаться к нему напрямую, тем самым разгружая magento. К тому же мы используем Magento Enterprice и его поддержка заявлена из коробки. Правда начинали мы разработку на Comunity Edition и искали возможности интеграции уже в этот момент.

Подсветка кода в markdown с помощью GeSHi

Всем привет! Сегодня расскажу про подсветку кода в markdown файлах. То, что описано в этой статье, Я использую непосредственно на этом сайте. Для отображения этой самой статьи!

Вероятно, проще всего сделать блог на wordpress. Но я же все-таки - программист!. Поэтому я предпочел сделать его на Symfony. Оба подхода имеют свои преимущества и недостатки. Так, например, мне удобнее писать статьи не в админке, а в IDE. И хранить все тексты не в базе данных, а в файлах под git.

Автотесты в Magento 2, часть 1

В этой статье речь пойдет про автоматическое тестирование в CMS Magento 2. Использовалась Magento 2.2

Общеизвесно, что magento достаточно сложная система сама по себе. Она требовательна к ресурсам. Разрабатывать под нее сложно и долго. В целом, у меня сложилось очень неоднозначное впечатление от ее использования.

Если мы делаем крупный проект на Magento с большим количеством самописных модулей, то, наверняка, в какой-то момент захочется писать автотесты.

Автотесты в Magento 2, часть 2

В предыдущей статье мы насторили окружение для тестов. В этой статье попробуем писать сами тесты.

У нас есть модуль. Пусть это будет личный кабинет. Но в отличии от стандартного модуля magento, это будет rest api. К нему можно будет подключить свой frontend.

Тесты будут лежать в папке Tests Здесь будут Unit тесты, Интеграционные тесты, вспомагательный код и фикстуры.

Laravel downloader app

Всем привет. Не так давно делал тестовое задание для одной компании. Вакансия Senior PHP Developer, на удаленку. Нужно было сделать web сервис на Laravel, который будет загружать ресурсы по http.

Примеры использования Elastic Search

Всем привет! Недавно сделал демонстрационный проект, который содержит основные наработки по Elastic Search. Реализовал примеры функционала, который был сделан в рамках последних проектов.

В демонстрационном проекте есть примеры обычного и нечеткого поиска, фильтрации, агрегации, поиска с синонимами, динамического обновления настроек индекса, подсветки поисковых запросов, поиска с учетом руской морфологии, поиска с учетом стоп-слов и поисковых подсказкок. Также есть примеры поиска по документам(PDF, DOC, XLS и т.д.) с помощью ingest плагина.