Laravel
• spatie/laravel-permission – Роли и права доступа для Laravel. Туториал по использованию.
• laracademy/interactive-make – Интерактивный генератор кода.
• etrepat/baum – Nested Set для Eloquent ORM. Альтернатива: lazychaser/laravel-nestedset.
• Туториал по Laravel и Elasticsearch
• Туториал по laravel/tinker
• Фасады в реальном времени – Демонстрация интересной фичи из Laravel 5.4.
• Подкаст PHP Roundtable #062: Все о Laravel – Среди гостей Taylor Otwell и другие.
• Можно ли использовать Laravel для больших Enterprise-решений?
Zend
• Авторизация с помощью Middleware
• RBAC с помощью zend-permissions-rbac
• Управление доступом с помощью zend-permissions-acl
• Неделя Zend Framework - 2017-04-27
• Неделя Zend Framework - 2017-05-11
Материалы для обучения
• Руковдство по развертыванию PHP приложений в облачных сервисах
• Почему использование функции mail() может быть опасным
• PHP и неизменяемость - часть 3
• О тестировании загрузок файлов
• Зло ли трейты?
• Александр Макаров: Абстракция vs простота
• «Runn Me!» — очередной фреймворк* на PHP. Часть 1, Часть 2
• Делаем GraphQL API на PHP и MySQL
• Узнать и полюбить Xdebug
• Построение гибких PHP приложений
• Нахождение похожих имен средствами MySQL+PHP
• Тестирование параллельных процессов
• Уязвимости нулевого дня в Wordpress и Vanilla Forums позволяют удаленно взламывать сайты
Занимательное
• Статистика использования версий PHP – 2017.1 – Традиционная компиляция статистики за полгода на основе информации, которую Composer отправляет при подключении к packagist.org. Суммарная доля PHP 7 составляет уже 53.76%.
• spatie/laravel-permission – Роли и права доступа для Laravel. Туториал по использованию.
• laracademy/interactive-make – Интерактивный генератор кода.
• etrepat/baum – Nested Set для Eloquent ORM. Альтернатива: lazychaser/laravel-nestedset.
• Туториал по Laravel и Elasticsearch
• Туториал по laravel/tinker
• Фасады в реальном времени – Демонстрация интересной фичи из Laravel 5.4.
• Подкаст PHP Roundtable #062: Все о Laravel – Среди гостей Taylor Otwell и другие.
• Можно ли использовать Laravel для больших Enterprise-решений?
Zend
• Авторизация с помощью Middleware
• RBAC с помощью zend-permissions-rbac
• Управление доступом с помощью zend-permissions-acl
• Неделя Zend Framework - 2017-04-27
• Неделя Zend Framework - 2017-05-11
Материалы для обучения
• Руковдство по развертыванию PHP приложений в облачных сервисах
• Почему использование функции mail() может быть опасным
• PHP и неизменяемость - часть 3
• О тестировании загрузок файлов
• Зло ли трейты?
• Александр Макаров: Абстракция vs простота
• «Runn Me!» — очередной фреймворк* на PHP. Часть 1, Часть 2
• Делаем GraphQL API на PHP и MySQL
• Узнать и полюбить Xdebug
• Построение гибких PHP приложений
• Нахождение похожих имен средствами MySQL+PHP
• Тестирование параллельных процессов
• Уязвимости нулевого дня в Wordpress и Vanilla Forums позволяют удаленно взламывать сайты
Занимательное
• Статистика использования версий PHP – 2017.1 – Традиционная компиляция статистики за полгода на основе информации, которую Composer отправляет при подключении к packagist.org. Суммарная доля PHP 7 составляет уже 53.76%.
Камрады, привет!
Долгое время этот канал был в тишине, потому что постить только лишь анонсы дайджестов мне казалось совсем скучным. Годных каналов на тему PHP крайне мало. Да и кроме того, получая новость из какого-то другого источника, у меня часто возникала мысль "это уже было в <s>Симпсонах</s> дайджесте", а значит иная форма подачи актуального материала не помешает.
Поэтому здесь буду размещать интересные ссылки и комментарии. Скоро первая порция!
Долгое время этот канал был в тишине, потому что постить только лишь анонсы дайджестов мне казалось совсем скучным. Годных каналов на тему PHP крайне мало. Да и кроме того, получая новость из какого-то другого источника, у меня часто возникала мысль "это уже было в <s>Симпсонах</s> дайджесте", а значит иная форма подачи актуального материала не помешает.
Поэтому здесь буду размещать интересные ссылки и комментарии. Скоро первая порция!
[RFC] Preloading - принят!
Голосование по RFC о предзагрузке файлов завершилось. 48 членов core-team единогласно поддержали это предложение.
А значит в следующем году в 7.4 нас ждет новая возможность!
Инклуды? Кому это нужно!
В
Этот файл, в свою очередь, будет запущен и может подключить любые другие файлы просто делая
Все функции и классы, объявленные в предзагруженных файлах, будут всегда доступны для всех последующих запросов, как если бы это были встроенные элементы вроде
Таким образом можно предварительно загрузить целиком фреймворк. Или скажем реализовать свой набор "встроенных" функций на PHP.
Платой за предзагрузку будет невозможность изменить предзагруженные классы. Для этого нужно будет рестартануть сервер.
В свежем PHP Roundtable Никита Попов и Сара Голман рассказывают об этом и других RFC, местами весьма интересно.
Голосование по RFC о предзагрузке файлов завершилось. 48 членов core-team единогласно поддержали это предложение.
А значит в следующем году в 7.4 нас ждет новая возможность!
Инклуды? Кому это нужно!
В
php.ini
будет добавлена директива opcache.preload
в значении которой можно указать путь к файлу предзагрузки.Этот файл, в свою очередь, будет запущен и может подключить любые другие файлы просто делая
include/require
или вызывая opcache_compile_file(). Все функции и классы, объявленные в предзагруженных файлах, будут всегда доступны для всех последующих запросов, как если бы это были встроенные элементы вроде
strlen()
или Exception
.Таким образом можно предварительно загрузить целиком фреймворк. Или скажем реализовать свой набор "встроенных" функций на PHP.
Платой за предзагрузку будет невозможность изменить предзагруженные классы. Для этого нужно будет рестартануть сервер.
В свежем PHP Roundtable Никита Попов и Сара Голман рассказывают об этом и других RFC, местами весьма интересно.
PHP на Android
https://www.peachpie.io/2018/11/php-on-android.html
Всегда питал интерес ко всякого рода нестандартным использованиям PHP. Ну и особенно к альтернативным виртуальным машинам.
В рамках проекта PeachPie развивается PHP для .NET: PHP компилируется в CIL, ассемблер виртуальной машины .NET. При этом поддерживает .NET Core, а значит запускать можно не только на Win, но и на других платформах.
Собственно в статье речь идет о реализации андроид-приложения на Xamarin, инструменте для разработки мобильных/десктоп приложений на .NET. Как React Native, только .NET.
Забавно конечно, но применимо ли в реальной жизни? Судя по сайту, основная цель PeachPie – это скорее мягкое портирование PHP приложений на .NET.
Вот интересной была бы поддержка PHP в GraalVM.
https://www.peachpie.io/2018/11/php-on-android.html
Всегда питал интерес ко всякого рода нестандартным использованиям PHP. Ну и особенно к альтернативным виртуальным машинам.
В рамках проекта PeachPie развивается PHP для .NET: PHP компилируется в CIL, ассемблер виртуальной машины .NET. При этом поддерживает .NET Core, а значит запускать можно не только на Win, но и на других платформах.
Собственно в статье речь идет о реализации андроид-приложения на Xamarin, инструменте для разработки мобильных/десктоп приложений на .NET. Как React Native, только .NET.
Забавно конечно, но применимо ли в реальной жизни? Судя по сайту, основная цель PeachPie – это скорее мягкое портирование PHP приложений на .NET.
Вот интересной была бы поддержка PHP в GraalVM.
Цикл foreach с условием if
https://twitter.com/FredBouchery/status/1062754707318415361
Даже не задумывался о том, что можно записать без скобок и в одну строку. Не list comprehension, конечно, но забавно.
https://twitter.com/FredBouchery/status/1062754707318415361
Даже не задумывался о том, что можно записать без скобок и в одну строку. Не list comprehension, конечно, но забавно.
Twitter
Frédéric Bouchery
New #PHP syntax since ... PHP 3.0 https://t.co/DdrJvGcnC0 ping @vcomposieux ;)
Symfony покидает PHP-FIG
Очередная драма в PHP.
Лидер Symfony Фабьен удалил себя и фреймворк из списка участников группы PHP-FIG.
И прокомментировал свое решение в Твиттере.
Фабьен говорит, что PSR-0 и PSR-4 (автозагрузка), a также PSR-1 и PSR-2 (стили кодирования) были хороши. PSR-11 (контейнер) вообще отличный, по его мнению. А вот PSR-7 (интерфейсы HTTP-сообщений) – не ок, потому что не базировался на уже существующих решениях (в частности, symfony/http-foundation), а создал свой фреймворк с нуля. Ну и теперь, PSR-14 (event dispatcher), похоже, идет тем же путем, пишет Фабьен.
Иными словами, Фабьен считает, что создавать интерфейсы и стандарты совсем с нуля нехорошо. И его можно понять.
С другой стороны, PSR-7 оказался жизнеспособен и позволил создать универсальные инструменты, которые можно использовать с разными фреймворками, в том числе благодаря адаптеру.
Но среди стандартов PHP-FIG был и не совсем удачный PSR-6 (интерфейс кэширования).
В списке разрабатываемых стандартов интерес представляет PSR-5 PHPDoc и надо заметить, что там тоже не все гладко.
Кстати, два года назад группу PHP-FIG уже покинули представители Laravel, Propel, Doctrine, Guzzle, Stash и Aura, в основном из-за того, что особо не принимали участия в обсуждениях.
Ну что тут сказать, удачи Фабьену и удачи PHP-FIG. Возможно, от разнообразия и конкуренции идей сообщество тоже получит определенную выгоду.
Очередная драма в PHP.
Лидер Symfony Фабьен удалил себя и фреймворк из списка участников группы PHP-FIG.
И прокомментировал свое решение в Твиттере.
Фабьен говорит, что PSR-0 и PSR-4 (автозагрузка), a также PSR-1 и PSR-2 (стили кодирования) были хороши. PSR-11 (контейнер) вообще отличный, по его мнению. А вот PSR-7 (интерфейсы HTTP-сообщений) – не ок, потому что не базировался на уже существующих решениях (в частности, symfony/http-foundation), а создал свой фреймворк с нуля. Ну и теперь, PSR-14 (event dispatcher), похоже, идет тем же путем, пишет Фабьен.
Иными словами, Фабьен считает, что создавать интерфейсы и стандарты совсем с нуля нехорошо. И его можно понять.
С другой стороны, PSR-7 оказался жизнеспособен и позволил создать универсальные инструменты, которые можно использовать с разными фреймворками, в том числе благодаря адаптеру.
Но среди стандартов PHP-FIG был и не совсем удачный PSR-6 (интерфейс кэширования).
В списке разрабатываемых стандартов интерес представляет PSR-5 PHPDoc и надо заметить, что там тоже не все гладко.
Кстати, два года назад группу PHP-FIG уже покинули представители Laravel, Propel, Doctrine, Guzzle, Stash и Aura, в основном из-за того, что особо не принимали участия в обсуждениях.
Ну что тут сказать, удачи Фабьену и удачи PHP-FIG. Возможно, от разнообразия и конкуренции идей сообщество тоже получит определенную выгоду.
Доступен PhpStorm 2018.3
Свежий релиз IDE с массой новых возможностей и улучшений под капотом!
Из интересного:
• Поддержка DQL
• Новые рефакторинги
• PHP CS Fixer – теперь можно автоматически исправлять ошибки кодстайла
• PHP_CodeSniffer – добавлена поддержка кастомных стандартов из фреймворков
• Деплоймент на несколько хостов одновременно
• Работа с пулреквестами GitHub прямо в IDE
• Новое окно Search Everywhere (Shift-Shift)
• Куча улучшений для БД
И очень много чего еще!
Подробнее можно посмотреть на сайте https://www.jetbrains.com/phpstorm/whatsnew/
Дисклеймер:
Я работаю в JetBrains в команде PhpStorm, поэтому не мог не поделиться тем, над чем работал последние 4 месяца.
Если у вас будут замечания, идеи, предложения – пишите @prnsk, буду рад пообщаться.
Свежий релиз IDE с массой новых возможностей и улучшений под капотом!
Из интересного:
• Поддержка DQL
• Новые рефакторинги
• PHP CS Fixer – теперь можно автоматически исправлять ошибки кодстайла
• PHP_CodeSniffer – добавлена поддержка кастомных стандартов из фреймворков
• Деплоймент на несколько хостов одновременно
• Работа с пулреквестами GitHub прямо в IDE
• Новое окно Search Everywhere (Shift-Shift)
• Куча улучшений для БД
И очень много чего еще!
Подробнее можно посмотреть на сайте https://www.jetbrains.com/phpstorm/whatsnew/
Дисклеймер:
Я работаю в JetBrains в команде PhpStorm, поэтому не мог не поделиться тем, над чем работал последние 4 месяца.
Если у вас будут замечания, идеи, предложения – пишите @prnsk, буду рад пообщаться.
JetBrains
What’s New in PhpStorm 2025.1
Explore the new PhpStorm version enhancements including better Xdebug support, nested .env variables, and improved WordPress setup.
Пятиминутка PHP
https://5minphp.ru/episode41/
Очень люблю подкасты. Среди тех, что слушаю регулярно:
• Радио-Т https://radio-t.com
• SDCast https://sdcast.ksdaemon.ru/
• Пятиминутка PHP https://5minphp.ru
• PHP Roundtable https://www.phproundtable.com/
• Frontend Weekend http://frontendweekend.ml/
• DevZen https://devzen.ru/
• Podlodka https://soundcloud.com/podlodka
А также очень нравятся еще:
• Треп Себранта http://asebrant.libsyn.com/
• Будет Сделано! https://willbedone.ru/
В качестве эксперимента записал короткую аудиоверсию PHP-Дайджеста для Пятиминутки PHP. Как вам такой формат?
https://5minphp.ru/episode41/
Очень люблю подкасты. Среди тех, что слушаю регулярно:
• Радио-Т https://radio-t.com
• SDCast https://sdcast.ksdaemon.ru/
• Пятиминутка PHP https://5minphp.ru
• PHP Roundtable https://www.phproundtable.com/
• Frontend Weekend http://frontendweekend.ml/
• DevZen https://devzen.ru/
• Podlodka https://soundcloud.com/podlodka
А также очень нравятся еще:
• Треп Себранта http://asebrant.libsyn.com/
• Будет Сделано! https://willbedone.ru/
В качестве эксперимента записал короткую аудиоверсию PHP-Дайджеста для Пятиминутки PHP. Как вам такой формат?
Пятиминутка PHP
Выпуск №41 — PHP-Дайджест № 144 (12 – 26 ноября 2018)
В этом выпуске автор знаменитых PHP-Дайджестов Роман Пронский рассказывает самое важное и интересное, произошедшее в мире PHP с 12 по 26 ноября 2018. Послушайте и обязательно оставьте отзыв на сайт…
Скандал в NPM: обзор зависимостей Symfony, Laravel, и API Platform
https://dunglas.fr/2018/11/about-the-dependencies-of-symfony/
У автора популярной js-библиотеки event-stream не было времени на ее поддержку и он передал права мейнтейнить первому попросившему не особо заморачиваясь проверкой личности. Попросивший оказался злоумышленником и встроил в библиотеку с 2 млн скачиваний ежедневно вредоносный код, который воровал данные биткоин-кошелька. После такого разработчики Node.js даже предлагали убрать NPM из дефолтной поставки.
По ссылке небольшой обзор мейнтейнеров зависимостей двух популярных PHP-фреймворков.
Вопрос безопасности зависимостей независимо от языка, конечно, остается открытым.
https://dunglas.fr/2018/11/about-the-dependencies-of-symfony/
У автора популярной js-библиотеки event-stream не было времени на ее поддержку и он передал права мейнтейнить первому попросившему не особо заморачиваясь проверкой личности. Попросивший оказался злоумышленником и встроил в библиотеку с 2 млн скачиваний ежедневно вредоносный код, который воровал данные биткоин-кошелька. После такого разработчики Node.js даже предлагали убрать NPM из дефолтной поставки.
По ссылке небольшой обзор мейнтейнеров зависимостей двух популярных PHP-фреймворков.
Вопрос безопасности зависимостей независимо от языка, конечно, остается открытым.
Kévin Dunglas - Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, Mercure.rocks, Vulcain.rocks and of some Symfony components.
NPM dependency hell: comparison with Symfony, Laravel and API Platform - Kévin Dunglas
You may have noticed the recent fuss about the compromise of event-stream, a popular NPM package: event-stream is a transitive dependency of many popular JavaScript projects including Vue, Angular, Gatsby and VSCode (some of them are using a version that…