Обновить
128K+

PHP *

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

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

Как ManyChat на PHP8 переезжал

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

Привет, меня зовут Максим, я бэкенд-разработчик в ManyChat. 

Эта статья – о нашем переходе на PHP8. Однажды мы решили немного поисследовать – посмотреть, чего нам будет стоить возможный переход на новую версию, и запланировать эти работы на следующий год, сразу на 8.1. Перспектива переезда тогда вызывала у нас чувства примерно как на КДПВ: от мыслей обо всех тестах и внешних зависимостях было немного неуютно.

Однако в процессе исследования выяснилось, что нельзя просто так взять и остановиться. Одно за другим, и вот мы уже полностью на PHP 8. 

Эта статья – о шагах, из которых складывался переезд, и проблемах, которые мы встретили в процессе. Надеюсь, статья будет полезна для тех, кому ещё только предстоить перейти на PHP 8 – поможет подготовиться хотя бы морально. Для всех остальных (кто уже на PHP 8 или не собирается) – давайте сверимся по ощущениям.

Читать далее

Проектирование, оптимизация и поддержка крупных php-проектов

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

Роман Еникеев в прямом эфире Митапа в ОЭЗ "Иннополис" рассказал о том, что нужно понимать под защищенностью данных, немного об изменении мира к лучшему, путем создания хорошего программного продукта и его характеристиках. Вы узнаете о пирамиде нахождения багов и о самой поддержке продукта.

Читать далее

PHP Дайджест № 214 (11 – 25 октября 2021)

Время на прочтение5 мин
Охват и читатели12K
Фото: Иван Ганцев.

Подборка свежих новостей и материалов из мира PHP.

Конфликт вокруг расширения Swoole и создание форка OpenSwoole; асинхронные фреймворки Amp и ReactPHP выпустили общую реализацию ивент-лупа; PHP 8.1 RC 4; принят первый RFC для 8.2.

Также в выпуске два поста от Никиты Попова, полезные статьи, видео.

Приятного чтения!
Читать дальше →

Установка и настройка Swagger Validator

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

Swagger - популярное решение для документирования API. Он использует OpenAPI Specification. Писать документацию это отлично и прекрасно, но было бы замечательно если она будет валидной и рабочей.

В статье небольшая инструкция по установке и настройке валидатора.

Настроить

Разворачиваем сайт на CMS DLE в контейнерах Docker и Compose

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

В данном туториале мы рассмотрим, как быстро развернуть LEMP-стэк на виртуальный сервер VPS, используя технологию контейнеризации на базе Docker для сайта под управлением CMS DataLife Engine (DLE).

Читать далее

Использование Google reCAPTCHA v2 и v3 в одной форме

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

У Google появилась замечательная reCAPTCHA v3. Замечательна она тем, что освобождает пользователя от необходимости тыкать по картинкам в поисках светофоров и пожарных гидрантов, при этом вполне успешно анализирует его действия на сайте и оценивает их по шкале от 0 до 1. Чем выше балл, тем качественней наш бот выше вероятность, что пользователь реальный. Обычно выставляют порог равным 0.5.

А что делать, если хочется добра пользователям сайта, но есть у его владельца некая обеспокоенность, что не пропустит невидимая столь ценного реального пользователя, который может и ведет себя странно и подозрительно, но совсем не бот?

Ответ - последовательно использовать капчу обоих версий - не прошел невидимую проверку - появилась видимая капча!

Читать далее

PHP Дайджест № 213 (27 сентября – 11 октября 2021)

Время на прочтение4 мин
Охват и читатели11K
Фото: Noriko YAMAMOTO.

Подборка свежих новостей и материалов из мира PHP.

Для PHP 8.2 предложили добавить тип null; опубликована уязвимость в PHP с disable_functions, которая на самом деле не уязвимость; новый сайт от сообщества — phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 и другие релизы.

Также в выпуске порция инструментов, полезные статьи, видео.

Приятного чтения!
Читать дальше →

PHP 8 Programming Tips, Tricks and Best Practices — обзор книги и рекомендации

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

Буквально месяц тому назад вышла книга: "PHP 8 Programming Tips, Tricks and Best Practices" от Дуг Бирера (Doug Bierer). В этой книге автор делает обзор php 8.0, объясняет его нововведения и описывает потенциальные ошибки перехода со старых версий на php 8.0. 

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

Читать далее

Тюнинг PHP-FPM. Введение

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

БОНУС: в нашем подкасте мы обсудили эту тему с экспертом, членом сообщества PHP программистов: https://share.transistor.fm/s/6a8637ba

В этой статье я представлю краткий обзор того, как улучшить производительность PHP-FPM, сконцентрировав ваше внимание на трех типах менеджеров процессов PHP-FPM и том, какой и когда лучше использовать.

PHP-FPM (или FastCGI Process Manager) имеет по сравнению с mod_php несколько преимуществ, из которых самые очевидные — он более гибок в настройке, и в настоящее время сообщество отдает предпочтение именно этому режиму работы PHP. Однако, если вы используете дефолтную конфигурацию от вашего диспетчера пакетов, то, скорее всего, вы не получите максимум выгоды от его использования.

Читать далее

Автоматизация бизнес-процессов своими руками

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

У нас было: N различных систем, которые обращались друг к другу напрямую; M маркетологов, которые генерировали идеи, хотели проводить разные тесты и часто предлагали подключить какой-нибудь новый сервис; и K менеджеров по продажам, у которых было много рутинной работы.

Все это порождало проблемы по поддержке и ошибки человека.

Решение: автоматизация и инкапсуляция бизнес-процессов. Разработать систему, которая снимет с людей рутину и уменьшит количество ошибок, ускорит работу, которую будет просто поддерживать и масштабировать.

Узнать технические подробности

Книжная доминация Python и Java

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

Популярность технологий в современной мире - это сочетание реализованных исторических возможностей, верное и преданное комьюнити, удобный инструментарий, накопленная база знаний и поддержка крупным игроком. Ну и не нужно забывать про удачу, она всегда была и будет в it-сфере.

Без всякого сомнения, самыми влиятельными языками программирования в настоящий момент являются Java и Python. И я приведу простой пример, почему их величие еще не скоро сойдет на нет.

P.s. я специально опускаю из обсуждения JS, Swift и Котлин, так как их доминирующее положение обусловлено немного другими факторами, нежели я обсужу в этой статье.

Читать далее

Реализация простого механизма регулярных выражений в 70 строк кода

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

Эта короткая статья обязана одному интересному тестовому заданию, в котором требовалось реализовать базовый функционал утилиты grep на языке PHP, не используя никаких встроенных функций по работе с регулярными выражениями.

Строка с шаблоном должна была включать поддержку следующих метасимволов:

^ - начало строки

$ - конец строки

. - любой символ

* - 0 или более раз

? - 0 или 1 раз

+ - 1 или более раз

Так же нужно было поддерживать экранирование метасимволов при помощи '\', чтобы по ним возможно было производить поиск. В результате, получившаяся утилита занимает порядка ста строк кода, из которых 70 - это функции регулярных выражений. 

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

Читать далее

Pro PHP 8 MVC: Model View Controller Architecture-Driven Application Development — обзор книги и рекомендации

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

В начале лета 2021 года на свет вышла книга "Pro PHP 8 MVC: Model View Controller Architecture-Driven Application Development" от Кристофера Питта. Это второе издание его книги о том, как работать с паттерном MVC в рамках PHP. 

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

Читать далее

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

Прикручиваем Twig к Битрикс, или ещё одна попытка скрестить ежа с ужом

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

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

И вот в один прекрасный момент, попробовав Blade и Twig, я задумался о том, как бы какой-нибудь шаблонизатор к битре прикрутить.

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

В итоге, перелопатив (почти) всю информацию по этому поводу, я решил создать своё решение (почему никто не удивлён?). Сначала была идея запилить модуль, но потом решил использовать composer-пакет.

Это было небольшое вступление, теперь непосредственно к сути.

Как интересно, требую полный текст!!!

Как использовать PHP для создания микросервиса?

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

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

Читать далее

PHP Дайджест № 212 (13 – 27 сентября 2021)

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

Подборка свежих новостей и материалов из мира PHP.

Вышел PHP 8.1 RC2 и уже доступен первый пакет с использованием перечислений, будет сделан форк Magento, новый тип стандартов PER в дополнение к PSR, стартовала PhpStorm 2021.3 EAP, Symfony 6 будет полностью типизирован — как обновляться?

Для PHP 8.2 предложены новые оптимизированные структуры данных.

Также в выпуске порция инструментов, полезные статьи, видео и анонсы двух митапов.

Приятного чтения!
Читать дальше →

Один человек ответил на 85+ тысяч вопросов на Stack Overflow (24,1 ответа в день)

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

В среднем 24,1 ответа в день (если все 365 дней в году считать рабочими) на протяжении почти 10 лет.

Несколько дней назад на некоторых англоязычных ресурсах началось обсуждение одного очень необычного пользователя Stack Overflow. Его зовут Гордон Линофф (Gordon Linoff), он из Нью-Йорка, и за 9 лет и 8 месяцев своего присутствия на платформе он дал 85,201 ответов на различные вопросы, в основном связанные с SQL и дата-майнингом (цифра актуальна на 27.09.2021).

Что это за маг?

Читать далее

Видишь уязвимости? А они есть! Наше исследование популярных CMS-систем

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

Львиная доля всех работ по анализу защищенности внешнего периметра – это тестирование веб-приложений. Здесь могут быть как корпоративные решения, так и «домашние» разработки на базе различных публичных систем управления контентом (CMS). Мы всегда проводим глубокий анализ подобных решений на тестовых стендах и зачастую находим уязвимости нулевого дня. Собственно, из опыта таких проектов и родилась идея собрать исследовательскую команду и провести глубокий анализ популярных CMS-систем и различных плагинов для них. В этом посте мы поделимся результатами нашего исследования, а также продемонстрируем примеры уязвимого кода наиболее интересных, на наш взгляд, уязвимостей и примеры их эксплуатации. Конечно все эти уязвимости уже исправлены и описываются здесь с разрешения владельцев систем.

Не всё то в безопасности, что с Bug Bounty

WebSCO — альтернативная консоль для System Center Orchestrator

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

Наверное всем не нравится консоль для запуска ранбуков у Microsoft System Center Orchestrator. Она неудобная и тормозная. Давно вынашивал идею сделать что-то более удобное, избавиться от Silverlight и... наконец-то подвернулась возможность её реализовать.

Читать далее

Модульная архитектура Symfony приложения

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

Как известно, с ростом размера кода приложения его становится все сложнее и сложнее поддерживать. Рассмотрим подход, как с наименьшими усилиями структурировать код Symfony приложения так, чтобы снизить затраты на внесение в него изменений и упростить переиспользование или замену его частей. По каким принципам разбивать функционал на модули, как обобщать, как называть, разберем на примере. У нас будет цельное приложение, но если понадобится, выделить нужный компонент мы сможем с минимальными усилиями.

Читать далее