Обновить
2.9

Symfony *

Свободный фреймворк, написанный на PHP5

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

Валидация в приложении на PHP (часть 1 — валидация доменного слоя)

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

Как по мне достаточно важная, хотя и холиварная тема. Думаю каждый из нас задавал себе вопросы: "можно не дублировать проверки?", "а не усложняю ли я?", "да как же это сделать нормально?!".

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

Текст рассчитан не на новичков, потому нормально, если по ходу чтения какие-то понятия будут вам неизвестны, я постарался коротко раскрыть их здесь, а также указал ссылки на посты в моём телеграм канале Beer::PHP ​, которые могут чуть подробнее раскрыть то или иное понятие.

Начнем мы сразу с доменного слоя нашего приложения, то есть с бизнес логики нашего приложения.

Читать далее

PHP Дайджест № 206 (15 – 29 июня 2021)

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

Подборка свежих новостей и материалов из мира PHP. В выпуске: вторая альфа PHP 8.1.0 и обзор того, что еще может войти в релиз; новый RFC с предложением добавить механизм защиты от инъекций. А также порция полезных инструментов, статьи, видео и подкасты.

Приятного чтения!

Как оставаться отказоустойчивым, переходя на микросервисы на PHP (и как правильно падать)

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

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

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

Читать далее

Главные причины, почему мы разрабатываем веб-приложения на Symfony

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

В компании Outsourcify мы работаем над проектами разного размера: от небольших сайтов, состоящих из нескольких страниц, до сложных бизнес-приложений. В зависимости от конкретного случая мы рекомендуем клиентам разные технические решения (например, мы пишем много одностраничных приложений на JavaScript и работаем с WordPress), но в самых сложных сценариях, когда разрабатываются крупные веб-приложения, занимающие группу разработчиков на несколько недель или месяцев, мы отдаем предпочтение фреймворку Symfony.

Читать далее

PHP Дайджест № 205 (1 – 15 июня 2021)

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


Подборка свежих новостей и материалов из мира PHP. В выпуске: первая альфа PHP 8.1.0, Composer 2.1, Symfony 5.3 и другие релизы. Обзор новых предложений для PHP 8.1: Partial Function Application, pipe оператор, readonly свойства. А также порция полезных инструментов, статьи, видео и подкасты.

Приятного чтения!

Развертывание приложения Symfony в AWS Lambda

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

Сначала давайте разберемся, что такое бессерверная архитектура и когда она нужна.

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

AWS Lambda обеспечивает высокую доступность, причем плата взимается только за фактически затрачиваемое время вычислений. Этот сервис может быть весьма полезен для таких задач, как запуск cron-заданий, отправка уведомлений в режиме реального времени, предоставление доступа к API, обработка каких-нибудь событий при выполнении различных операций и т. д. В сети можно найти массу примеров использования сервиса.

Читать далее

Зачем нужен static при объявлении анонимных функций?

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

Буквально на днях пришел вопрос от одного из подписчиков касательно одного из постов моего telegram канала. Его смутил вот такой кусок кода:

usort($firstArray, static function($first, $second) { return $first <=> $second;
});

Вопрос звучал так:

"Зачем делать callback’и в функции сортировки (usort), статическими?"

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

Читать далее

Symfony Messenger: объединение сообщений в пакеты

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

Иногда требуется сделать так, чтобы сообщения в Symfony Messenger отправлялись потребителю пакетами, а не поодиночке. Недавно нам потребовалось отправлять через Messenger обновленные строки текста из наших программ поставщику переводческих услуг.

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

Покажем, как мы это сделали.

Читать далее

PHP Дайджест № 204 (17 – 31 мая 2021)

Время на прочтение4 мин
Охват и читатели11K
Фото: Christian Münch.

В эти две недели core команда PHP активно обсуждала предложение по Partial function Application и в качестве альтернативы Никита Попов предложил более простой синтаксис для получения ссылки на любые функции. Также в уже принятые в PHP 8.1 енумы предлагается добавить статические свойства.

Symfony 6 будет требовать PHP 8.0, а вышедшая Doctrine 2.9 поддерживает указание метаданных в атрибутах вместо PHPDoc.

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

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

PHP Дайджест № 203 (1 – 17 мая 2021)

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

Аксессоры свойств, пересечения типов и финальные константы официально предложены для PHP 8.1, и еще два RFC уже приняты. Также в выпуске порция инструментов, видео, подкасты, статьи, новости сообщества.

Приятного чтения!

TransMaintain — инструмент для поддержания файлов переводов интерфейса Symfony проектов в консистентном состоянии

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

Сколько проектов не проходило через мои руки — всегда одно и то же — файлы переводов в ужасном состоянии. Лучше всего эту проблему выражают слова Агаты Кристи в начале статьи. Здесь не будут разбираться лингвистические нюансы и качество переводов. Предположим у нас имеются отменные переводы. Под катом разбираются те проблемы, которые можно проконтролировать техническими средствами и инструменты предназначенные для этого. Материал рассчитан на людей имеющих опыт работы с Symfony и в целом с консолью Linux. Также предполагается, что вы умеете подключать сторонние бандыл в проект. Поэтому часть вопросов не разбирается с позиции “и так всё понятно”.

Читать далее

PHP Дайджест № 202 (1 – 30 апреля 2021)

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

Новый тип never будет в PHP 8.1, на обсуждении частичные функции, а также другие предложения и новости из PHP Internals. PHP доступен на Google Cloud Functions, о взломе git.php.net, Laravel Octane, PhpStorm 2021.1 и другие релизы, порция инструментов, видео, подкасты, статьи.

Приятного чтения!


Читать дальше →

Говорим, как структурировать код

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

Привет! В эту субботу PHP-чат Нижнего Новгорода проведет свой четвертый офлайн-митап с интерактивной трансляцией. Доклады подготовят Валентин Удальцов из Москвы и Денис Юрьев из Новосибирска. Записаться на митап можно здесь, поставить колокольчик под трансляцией — здесь. Те, кто будут смотреть онлайн, смогут задать вопросы текстом или голосом прямо из браузера.

А под катом небольшое интервью с докладчиками про то, что не вошло в их выступления.

Читать далее

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

PhpStorm 2021.1: превью PHP- и HTML-файлов, 20+ новых инспекций и парное программирование с Code With Me

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


Рады представить вам первый мажорный релиз PhpStorm в этом году! Под катом подробный разбор всех изменений и новых возможностей.

3 года программирования вслепую. Часть 2

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

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

Читать дальше →

PHP Дайджест № 201 (15 – 29 марта 2021)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: все про файберы и асинхронный PHP, а также новые лямбды, пересечения типов и другие предложения для PHP 8.1. Ближайшие мероприятия, порция полезных инструментов, статьи, подкасты, видео и PHP Дайджест Стрим.

Приятного чтения!


Автоматическая проверка кода за 5 минут

Время на прочтение6 мин
Охват и читатели8.8K
Данная инструкция показывает как автоматизировать проверку на code style в вашем php проекте.

Давайте посмотрим как будет выглядеть настройка в новом проекте.
Читать дальше →

PHP Дайджест № 200 (22 февраля – 15 марта 2021)

Время на прочтение6 мин
Охват и читатели10K
Фото: Grégoire Gaonach

Свежая подборка со ссылками на новости и материалы. В выпуске: Объекты в инициализаторах, неймспейсы для расширений, и другие RFC предложения для PHP 8.1. Обновлен PSR-11, предложен PSR ClockInterface. Порция полезных инструментов, видео, подкасты, статьи, и PHP Дайджест Live в 20:00 МСК.

Приятного чтения!


«Я буду долго гнать велосипед!» История создания «своего» фреймворка

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

Где-то около 8 лет назад мне потребовалось определиться с PHP фреймворком для реализации одного проекта. Из фреймворков я знал только понаслышке zend, и ModX Revo с Bitrix. Последние-то и фреймворком трудно было назвать - это были полноценные CMS, которых на тот момент было огромное множество, и они были на пике популярности. В то время не искали разработчиков Laravel или Symfony, тогда нужны были администраторы/модераторы/разработчики Bitrix, Drupal и т.д.

И я принял тогда решение писать свой фреймворк с "0". Задача стояла простая - нужна была работа с БД и RESTful API интерфейс.

Итак, начинаем собирать двухколесный

PHP Дайджест № 199 (8 – 22 февраля 2021)

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

В PHP 8.1 будет enum, и еще два принятых, два отклоненных и три новых RFC предложения для PHP 8.1. WordPress используется на 40% сайтов. Почему нужно убрать strict_types, почему не стоит использовать empty(), а также инструменты, видео, статьи, подкасты, и PHP Дайджест Live в 20:00 МСК.

Приятного чтения!