Как стать автором
Поиск
Написать публикацию
Обновить
4.6

Symfony *

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

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

PHP-Дайджест № 185 (20 июля – 3 августа 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Alpha 3, PhpStorm 2020.2, новый оператор ?->, снова обсуждение синтаксиса атрибутов и другие новости PHP Internals, обзор системы типов в PHP, порция полезных инструментов, видео, стримы и многое другое.

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


PhpStorm 2020.2: объединенные типы PHP 8, новый движок потока управления, пул-реквесты GitHub, OpenAPI

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


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

Под катом подробный разбор всех заметных изменений и новых возможностей. Осторожно — много картинок.

PHP-Дайджест № 184 (6 – 20 июля 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: Что будет с поддержкой PHP на Windows, PHP 8 Alpha 2, ReactPHP — официально продакшн-реди, 2 новых RFC предложения и 6 на голосовании, порция полезных инструментов, статьи, видео и подкасты.

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


Управление секретами в Symfony

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

Перевод статьи подготовлен в преддверии старта курса «Symfony Framework».





Не надоело ли вам хранить файл с секретами вашего приложения в менеджере паролей и копировать его в свою среду CI/CD каждый раз, когда вы изменяете его для развертывания приложения в соответствии с требованиями безопасности?

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

REST API в Symfony (без FosRestBundle) с использованием JWT аутентификации. Часть 1

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

Перевод статьи подготовлен в преддверии старта курса «Symfony Framework».





В первой части статьи мы рассмотрим самый простой способ реализации REST API в проекте Symfony без использования FosRestBundle. Во второй части, которую я опубликую следом, мы рассмотрим JWT аутентификацию. Прежде чем мы начнем, сперва мы должны понять, что на самом деле означает REST.

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

PHP-Дайджест № 183 (22 июня – 5 июля 2020)

Время на прочтение5 мин
Количество просмотров13K
Фото James Titcumb

Свежая подборка со ссылками на новости и материалы. В выпуске все про PHP 8: первая альфа, новое выражение match, баг в синтаксисе @@ для атрибутов, реальные бенчмарки JIT, 4 новых предложения. И, как всегда, инструменты, статьи, видео и подкасты.

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

10 советов по тестированию в Symfony

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

Я принял участие в проекте с двухлетней кодовой базой и Symfony 3.4 в качестве веб-фреймворка. Это был не самый новый и блестящий проект, но у него было большое достоинство: тесты покрывали самые важные действия приложения.

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

Этого достигли с помощью многочисленных функциональных тестов Symfony и некоторых модульных тестов, которые заполнили некоторые пустоты. Общее покрытие было около 50-52 %, но покрытие критически важной функциональности было гораздо выше. Это придавало достаточно уверенности, чтобы добавлять новые функции без ручного тестирования.
Читать дальше →

[Symfony 5] Раздельная авторизация для админов и пользователей с двумя разными сущностями и формами входа

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

Цель


Создать в Symfony 5 раздельную авторизацию:

  • Администратор — будет иметь сущность Admin, url для входа /admin/login
  • Пользователь — будет иметь сущность User, url для входа /login
  • Данные для входа не должны пересекаться, мы не можем авторизоваться как User на странице /admin/login
  • Должны быть созданы две разные Entities
  • Должны быть созданы два разных контроллера для входа и два разных Security
  • Возможность настройки переадресации после авторизации отдельно друг от друга
  • Возможность использовать разные авторизационные данные (например, для User мы хотим, чтобы пользователи вводили email/password, а для Admin обеспечить доп. защиту, добавив какой-нибудь Uuid

Зачем нужен этот гайд?


У меня стояла задача разделить форму входа с сущностью User на две разные — для пользователя (entity User) и для администратора (entity Admin) для нормального функционала админ панели (в данном случае EasyAdmin).

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

Как быть, когда все советуют растащить проект на микросервисы. А ты не готов

Время на прочтение6 мин
Количество просмотров13K
Монолит часто обсуждают в негативном ключе. Но сразу перейти на микросервисы получится не у всех — и вот уже не первая команда и компания делятся опытом построения «переходного звена»: модульной архитектуры. Давайте в деталях посмотрим, как делаются такие проекты.


Простое управление ACL в Symfony

Время на прочтение6 мин
Количество просмотров5K
Перевод статьи подготовлен в преддверии старта курса «Symfony Framework».




Не секрет, что ACL (access control lists) могут быть достаточно сложны в использовании. Поскольку Symfony рекомендует избирателей (voters) в качестве альтернативы ACL, я недавно решил, что напишу свой собственный простой в использовании Symfony 5 бандл для управления списками контроля доступа (ACL) в моих приложениях.

programarivm/easy-acl-bundle изначально был написан для использования в JWT-аутентифицированном API для одностраничных приложений (single page applications — SPA), но он также может быть полезен в ряде других сценариев, когда не требуется Security компонент — что в большинстве случаев, по моему скромному мнению, особенно подходит для сеансов обработки многостраничных приложений (multi-page applications — MPA).
Читать дальше →

PHP-Дайджест № 182 (1 – 22 июня 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: 3 принятых и 6 новых RFC-предложений из PHP Internals, включая голосование за новый синтаксис для атрибутов — @@ и почему #[] был бы лучше, переименования black/whitelist в PHP-мире, как отлаживают PHP-разработчики, аналог ngrok на PHP, видео, подкасты и многое другое.

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


Миллион за месяц: как запустить стартап в Европе своими силами

Время на прочтение10 мин
Количество просмотров17K
Всем привет!

Два месяца назад я и мой знакомый (для краткости, назовем его Илья) запустили свой стартап.
Пффф… Скажите вы. Каждый день кто-то что-то запускает. Кто-то запускает в одиночку. Некоторые кучкуются в команды. У кого-то есть деньги на разработку\маркетинг, кто-то предлагает долю, пост-оплату, опционы. Все крутятся как могут и ищут партнеров также.


У нас не было денег, был лишь опыт и 2 недели до первых продаж.

Под катом я расскажу о том, с чем мы столкнулись и как заработали миллион в кризис
Читать дальше →

PHP 25 лет: краткая история языка и скидка 50% на PhpStorm

Время на прочтение2 мин
Количество просмотров11K
Привет, Хабр! Сегодня особенный день — ровно 25 лет назад Расмус Лердорф представил миру PHP. В день рождения языка мы хотим поблагодарить вас за годы его поддержки.

Все мы ждем релиза PHP 8, который запланирован на этот декабрь. А пока предлагаем вспомнить достижения PHP-сообщества за прошедшие 25 лет: мы собрали в большой таймлайн все самые важные события из истории языка.

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

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

PHP-Дайджест № 181 (18 мая – 1 июня 2020)

Время на прочтение5 мин
Количество просмотров12K
Фото Erika Heidi

Свежая подборка со ссылками на новости и материалы. В выпуске: 3 новых и 4 принятых RFC предложения для PHP 8, включая объявление свойств в конструкторе, о блокировке PHP-ML из-за плагиата, почему разработчики ненавидят PHP, порция полезных инструментов, видео и многое другое.

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


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

PHP-Дайджест № 180 (4 – 18 мая 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: 2 принятых, 2 отклоненных и 6 новых RFC предложений из PHP Internals, обзор PHP 8, порция полезных инструментов, онлайн мероприятия, видео, подкасты и многое другое.

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

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

Как переиспользовать код с бандлами Symfony 5? Часть 7. Релизный цикл, установка и обновление

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

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


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


В этой статье:


  • README.md
  • Установка: через composer, рецепты Flex, консольные команды
  • Релизный цикл, выпуск новых версий
  • Семантическое версионирование
  • Фиксация изменений в CHANGELOG.md
Читать дальше →

Проклятая старая CRM

Время на прочтение5 мин
Количество просмотров4.3K
Весь прошлый год наши ребята допиливали CRM 2.0 с BPMS Camunda и всего десятью процессами вместо сотен статусов, а затем старались раскатать ее на пользователей и сервисы, ничего не уронив. Надеюсь, окончательно выпилив первую црм-ку (старейшую часть всего Skyeng) из нашей экосистемы, они поделятся граблями и находками здесь.



А пока, заинтересовавшись темой, я нашел похожий случай — и решил расспросить Дмитрия Косова из Финама про их опыт отказа от наследия ранних 2010-х.

Все доклады бесплатной онлайн-части PHP Russia c иностранными докладчиками можно будет смотреть в переводе

Время на прочтение1 мин
Количество просмотров2.2K
В конце апреля организаторы пошли на очень крутой шаг, сделав лайв 13 мая с англоязычными докладами открытым. Но английским хорошо владеют не все, а акцент, темп речи докладчика, параллельное чтение слайдов могут создать сложности в восприятии на слух.



Поэтому Skyeng нашли пару ребят, которые уже синхронно переводили на русский ИТ-конференции (один даже начинал как разработчик), а команда Онтико быстро придумала технически рабочий вариант с двумя языковыми потоками на выбор в онлайн-трансляции. Осталось не облажаться)

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

Как переиспользовать код с бандлами Symfony 5? Часть 6. Тестирование

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

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


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

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

PHP-Дайджест № 179 (21 апреля – 4 мая 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: 4 принятых RFC предложения для PHP 8, включая атрибуты (аннотации / декораторы), порция полезных инструментов, онлайн-конференции и митапы, видео, подкасты и многое другое.

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


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