PHP Дайджест — Сентябрь 2024
@php_be1
https://blog.jetbrains.com/phpstorm/2024/09/php-annotated-september-2024/
@php_be1
https://blog.jetbrains.com/phpstorm/2024/09/php-annotated-september-2024/
The JetBrains Blog
PHP Annotated – September 2024 | The PhpStorm Blog
Welcome to the September edition of PHP Annotated! After a brief summer break, we’re back with all things PHP. This recap is carefully handcrafted and brings you the most interesting developments in t
Асинхронный PHP с использованием ReactPHP
Асинхронное программирование позволяет решить традиционные проблемы синхронного программирования, позволяя выполнять задачи в фоновом режиме, не блокируя выполнение основной программы. Это означает, что программа может продолжать решать другие задачи, в то время как трудоемкие задачи выполняются в фоновом режиме.
https://medium.com/simform-engineering/asynchronous-php-using-reactphp-929185bef98c
👉 [|@php_be1]
https://medium.com/simform-engineering/asynchronous-php-using-reactphp-929185bef98c
Асинхронное программирование позволяет решить традиционные проблемы синхронного программирования, позволяя выполнять задачи в фоновом режиме, не блокируя выполнение основной программы. Это означает, что программа может продолжать решать другие задачи, в то время как трудоемкие задачи выполняются в фоновом режиме.
https://medium.com/simform-engineering/asynchronous-php-using-reactphp-929185bef98c
👉 [|@php_be1]
https://medium.com/simform-engineering/asynchronous-php-using-reactphp-929185bef98c
Простейший способ сказать "спасибо" разработчикам - использовать пакет symfony thanks.
Он автоматически проставит "звёзды" от Вашего имени в GitHub на тех проектах, которые используются в Вашем приложении.
Для того чтобы сделать это, установите пакет в глобальную область используя консольную команду:
composer global require symfony/thanks
После этого Вам достаточно будет в консоли перейти в папку с любым проектом и выполнить команду composer thanks.
@php_be1
Он автоматически проставит "звёзды" от Вашего имени в GitHub на тех проектах, которые используются в Вашем приложении.
Для того чтобы сделать это, установите пакет в глобальную область используя консольную команду:
composer global require symfony/thanks
После этого Вам достаточно будет в консоли перейти в папку с любым проектом и выполнить команду composer thanks.
@php_be1
PHP для начинающих - полный курс (2023)
00:00:00 - How to Choose a Programming Language
00:01:21 - Tools of the Trade
00:09:58 - Your First PHP Tag
00:18:07 - Variables
00:25:26 - Conditionals and Booleans
00:36:33 - Arrays
00:45:11 - Associative Arrays
00:52:30 - Functions and Filters
01:04:52 - Lambda Functions
01:17:00 - Separate Logic From the Template
01:25:35 - Technical Check-in #1 (With Quiz)
01:30:30 - Page Links
01:41:30 - PHP Partials
01:50:41 - Superglobals and Current Page Stylings
02:03:39 - Make a PHP Router
02:21:41 - Create a MySQL Database
02:27:51 - PDO First Stepss
02:42:15 - Extract a PHP Database Class
02:52:50 - Environments and Configuration Flexibility
03:05:50 - SQL Injection Vulnerabilities Explained
03:16:46 - Database Tables and Indexes
03:24:38 - Render the Notes and Note Pages
03:39:06 - Introduction to Authorization
03:53:27 - Programming is Rewriting
04:05:44 - Intro to Forms and Request Methods
04:23:52 - Always Escape Untrusted Input
04:32:13 - Intro to Form Validations
04:45:04 - Extract a Simple Validator Class
04:56:47 - Resourceful Naming Conventions
05:03:23 - PHP Autoloading and Extractions
05:23:00 - Namespacing: What, Why, How?
05:34:10 - Handle Multiple Request Methods From a Controller Action?
05:46:22 - Build a Better Router
06:07:07 - One Request, One Controller
06:14:14 - Make Your First Service Containers
06:33:37 - Updating With PATCH Requests
06:54:51 - PHP Sessions 101
07:08:47 - Register a New User
07:27:47 - Introduction to Middleware
07:49:52 - Manage Passwords Like This For The Remainder of Your Career
07:54:42 - Log In and Log Outs
08:20:27 - Extract a Form Validation Object
08:34:03 - Extract an Authenticator Class
08:47:24 - The PRG Pattern (and Session Flashing)
09:08:42 - Flash Old Form Data to the Session
09:14:39 - Automatically Redirect Back Upon Failed Validations
09:40:46 - Composer and Free Autoloading
09:53:59 - Install Two Composer Packages: Collections and PestPHP
10:09:36 - Testing Approaches, Terms, and Considerations
10:27:41 - The Next Step in Your Php Journey
https://www.youtube.com/watch?v=dVttuOjew3E
👉 [|@php_be1]
https://youtu.be/dVttuOjew3E
00:00:00 - How to Choose a Programming Language
00:01:21 - Tools of the Trade
00:09:58 - Your First PHP Tag
00:18:07 - Variables
00:25:26 - Conditionals and Booleans
00:36:33 - Arrays
00:45:11 - Associative Arrays
00:52:30 - Functions and Filters
01:04:52 - Lambda Functions
01:17:00 - Separate Logic From the Template
01:25:35 - Technical Check-in #1 (With Quiz)
01:30:30 - Page Links
01:41:30 - PHP Partials
01:50:41 - Superglobals and Current Page Stylings
02:03:39 - Make a PHP Router
02:21:41 - Create a MySQL Database
02:27:51 - PDO First Stepss
02:42:15 - Extract a PHP Database Class
02:52:50 - Environments and Configuration Flexibility
03:05:50 - SQL Injection Vulnerabilities Explained
03:16:46 - Database Tables and Indexes
03:24:38 - Render the Notes and Note Pages
03:39:06 - Introduction to Authorization
03:53:27 - Programming is Rewriting
04:05:44 - Intro to Forms and Request Methods
04:23:52 - Always Escape Untrusted Input
04:32:13 - Intro to Form Validations
04:45:04 - Extract a Simple Validator Class
04:56:47 - Resourceful Naming Conventions
05:03:23 - PHP Autoloading and Extractions
05:23:00 - Namespacing: What, Why, How?
05:34:10 - Handle Multiple Request Methods From a Controller Action?
05:46:22 - Build a Better Router
06:07:07 - One Request, One Controller
06:14:14 - Make Your First Service Containers
06:33:37 - Updating With PATCH Requests
06:54:51 - PHP Sessions 101
07:08:47 - Register a New User
07:27:47 - Introduction to Middleware
07:49:52 - Manage Passwords Like This For The Remainder of Your Career
07:54:42 - Log In and Log Outs
08:20:27 - Extract a Form Validation Object
08:34:03 - Extract an Authenticator Class
08:47:24 - The PRG Pattern (and Session Flashing)
09:08:42 - Flash Old Form Data to the Session
09:14:39 - Automatically Redirect Back Upon Failed Validations
09:40:46 - Composer and Free Autoloading
09:53:59 - Install Two Composer Packages: Collections and PestPHP
10:09:36 - Testing Approaches, Terms, and Considerations
10:27:41 - The Next Step in Your Php Journey
https://www.youtube.com/watch?v=dVttuOjew3E
👉 [|@php_be1]
https://youtu.be/dVttuOjew3E
YouTube
PHP For Beginners - Complete Course (2023) [Check Comment for HD version Link]
Watch Re-Uploaded HD version of this course here: https://youtu.be/fw5ObX8P6as
We all start somewhere. For programming, this series is the first step. I've designed it specifically for newcomers to, not just PHP, but programming in general. Here, you'll…
We all start somewhere. For programming, this series is the first step. I've designed it specifically for newcomers to, not just PHP, but programming in general. Here, you'll…
Как работает магия нового хелпера defer()
Который выполняет код уже после отправки ответа в браузер. И делает это не с помощью очередей. А как? Узнаем вместе — полезли под капот!
@php_be1
https://www.amitmerchant.com/the-magic-behind-laravels-new-defer-helper/
Который выполняет код уже после отправки ответа в браузер. И делает это не с помощью очередей. А как? Узнаем вместе — полезли под капот!
@php_be1
https://www.amitmerchant.com/the-magic-behind-laravels-new-defer-helper/
Amit Merchant - A blog on PHP, JavaScript, and more
The magic behind Laravel’s new defer() helper
Laravel has recently been shipped with a new helper called defer() which can be used to defer the execution of a callback until after a successful response has been sent.
Laravel разработчики, упростите загрузку файлов с этим инструментом! 💎
Используйте Storage::download(), чтобы принудительно запустить скачивание файла в браузере. Отлично подходит для защищенных файлов или генерации динамических загрузок.
Совет: Настройте имя файла и заголовки для большего контроля.
👉 [|@php_be1]
Используйте Storage::download(), чтобы принудительно запустить скачивание файла в браузере. Отлично подходит для защищенных файлов или генерации динамических загрузок.
Совет: Настройте имя файла и заголовки для большего контроля.
👉 [|@php_be1]
Проверь насколько хорошо ты знаешь PHP
Ответишь — пройдешь на продвинутый курс "PHP Developer. Professional" от OTUS по специальной цене + получишь чек-лист "Solid и типичные ошибки на собеседованиях" .
Приятный бонус
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Приятный бонус
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)
https://habr.com/ru/articles/844768/
@php_be1
https://habr.com/ru/articles/844768/?utm_source=telegram_career&utm_medium=social&utm_campaign=21796325
https://habr.com/ru/articles/844768/
@php_be1
https://habr.com/ru/articles/844768/?utm_source=telegram_career&utm_medium=social&utm_campaign=21796325
Хабр
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)
Простыми словами о внутреннем устройстве PHP Введение Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза: Мне когнитивно и...
Магия нового помощника defer() в Laravel
Недавно в Laravel был добавлен новый помощник под названием defer(), который можно использовать для отложения выполнения обратного вызова до тех пор, пока успешный ответ не будет отправлен.
Таким образом, вы можете перенести трудоемкую работу (например, вызов внешнего API) в обратный вызов и вернуть ответ пользователю как можно быстрее.
Вот как это выглядит.
Route::get('/defer', function () {
defer(function () {
// do time-consuming work here
sleep(10);
});
return "Hello world";
});
https://www.amitmerchant.com/the-magic-behind-laravels-new-defer-helper/
👉 [|@php_be1]
https://www.amitmerchant.com/the-magic-behind-laravels-new-defer-helper/
Недавно в Laravel был добавлен новый помощник под названием defer(), который можно использовать для отложения выполнения обратного вызова до тех пор, пока успешный ответ не будет отправлен.
Таким образом, вы можете перенести трудоемкую работу (например, вызов внешнего API) в обратный вызов и вернуть ответ пользователю как можно быстрее.
Вот как это выглядит.
Route::get('/defer', function () {
defer(function () {
// do time-consuming work here
sleep(10);
});
return "Hello world";
});
https://www.amitmerchant.com/the-magic-behind-laravels-new-defer-helper/
👉 [|@php_be1]
https://www.amitmerchant.com/the-magic-behind-laravels-new-defer-helper/
Amit Merchant - A blog on PHP, JavaScript, and more
The magic behind Laravel’s new defer() helper
Laravel has recently been shipped with a new helper called defer() which can be used to defer the execution of a callback until after a successful response has been sent.
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)
Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза:
- Мне когнитивно и морально легче, когда уменьшается «магия» того, с чем работаешь. Может тебе тоже
- Возможно чуть-чуть реже статьи на хабре будут тебя отпугивать
Объясню на 4 примерах — каждый лишь немного сложнее предыдущего.
https://habr.com/ru/articles/844768/
👉 [|@php_be1]
https://habr.com/ru/articles/844768/
Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза:
- Мне когнитивно и морально легче, когда уменьшается «магия» того, с чем работаешь. Может тебе тоже
- Возможно чуть-чуть реже статьи на хабре будут тебя отпугивать
Объясню на 4 примерах — каждый лишь немного сложнее предыдущего.
https://habr.com/ru/articles/844768/
👉 [|@php_be1]
https://habr.com/ru/articles/844768/
Yii Proxy
Пакет способен создавать общий прокси для класса, т.е. позволяет перехватывать все вызовы методов класса. Он используется в пакете yii-debug для сбора информации о вызовах методов сервиса.
https://github.com/yiisoft/proxy
👉 [|@php_be1]
Пакет способен создавать общий прокси для класса, т.е. позволяет перехватывать все вызовы методов класса. Он используется в пакете yii-debug для сбора информации о вызовах методов сервиса.
https://github.com/yiisoft/proxy
👉 [|@php_be1]
Релиз админки Laravel Voyager 1.8
Совместимость с Laravel 11
https://github.com/thedevdojo/voyager/releases/tag/v1.8.0
@php_be1
Совместимость с Laravel 11
https://github.com/thedevdojo/voyager/releases/tag/v1.8.0
@php_be1
Участие бесплатное
Вебинар состоится в рамках онлайн-курса «Framework Laravel» в OTUS.
В ходе занятия мы рассмотрим:
Продолжить изучение фреймворка вы сможете на курсе, который можно приобрести в рассрочку.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Benjamin Crozat пишет новый DebugBar для Laravel
@php_be1
@php_be1
Проверь насколько хорошо ты знаешь PHP, ты начинающий junior или крепкий Middle?
Ответишь — сможешь пройти на продвинутый курс "PHP Developer. Professional" от OTUS по специальной цене + получишь чек-лист "Solid и типичные ошибки на собеседованиях" .
Приятный бонус
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Mighty
Валидация является общей задачей любого веб-приложения. Данные, передаваемые в приложение через формы - или любой другой тип ввода, - всегда должны быть проверены на соответствие определенному набору правил. Mighty может решить эту задачу простым и выразительным способом.
Mighty - это быстрая, мощная, надежная и простая в использовании библиотека валидации, с которой просто приятно работать, она позволяет легко проверять любые данные. Благодаря мощному языку Mighty Validation Expression Language (mVEL) она не похожа ни на что, что вы видели раньше. Благодаря его подходу к валидации и более чем 250 встроенным правилам нет практически ничего, что нельзя было бы проверить с его помощью, причем очень выразительно и компактно. Проще говоря, Mighty - это валидация на стероидах! Это действительно последняя библиотека валидации, которая вам когда-либо понадобится.
Mighty предлагает несколько различных подходов к проверке данных. Чаще всего она используется для проверки входящих данных через HTTP-запросы, но этим, конечно, не ограничивается; Mighty также предоставляет атрибуты в виде ограничений, что позволяет легко проверять модели и/или любые объекты.
Mighty включает в себя широкий набор удобных правил проверки, которые можно применять как отдельные правила, так и комбинировать их между собой с помощью операторов для построения более сложных проверок.
Установка
composer require marwanalsoltany/mighty
https://github.com/MarwanAlsoltany/mighty
👉 [|@php_be1]
https://github.com/MarwanAlsoltany/mighty
Валидация является общей задачей любого веб-приложения. Данные, передаваемые в приложение через формы - или любой другой тип ввода, - всегда должны быть проверены на соответствие определенному набору правил. Mighty может решить эту задачу простым и выразительным способом.
Mighty - это быстрая, мощная, надежная и простая в использовании библиотека валидации, с которой просто приятно работать, она позволяет легко проверять любые данные. Благодаря мощному языку Mighty Validation Expression Language (mVEL) она не похожа ни на что, что вы видели раньше. Благодаря его подходу к валидации и более чем 250 встроенным правилам нет практически ничего, что нельзя было бы проверить с его помощью, причем очень выразительно и компактно. Проще говоря, Mighty - это валидация на стероидах! Это действительно последняя библиотека валидации, которая вам когда-либо понадобится.
Mighty предлагает несколько различных подходов к проверке данных. Чаще всего она используется для проверки входящих данных через HTTP-запросы, но этим, конечно, не ограничивается; Mighty также предоставляет атрибуты в виде ограничений, что позволяет легко проверять модели и/или любые объекты.
Mighty включает в себя широкий набор удобных правил проверки, которые можно применять как отдельные правила, так и комбинировать их между собой с помощью операторов для построения более сложных проверок.
Установка
composer require marwanalsoltany/mighty
https://github.com/MarwanAlsoltany/mighty
👉 [|@php_be1]
https://github.com/MarwanAlsoltany/mighty
Релиз PHP 8.3.12, 8.2.24 и 8.1.30
Исправления багов, в том числе четырех уязвимостей.
https://www.php.net/ChangeLog-8.php#8.3.12
@php_be1
Исправления багов, в том числе четырех уязвимостей.
https://www.php.net/ChangeLog-8.php#8.3.12
@php_be1
🚀 Прокачайте свои навыки по API на Laravel с новым курсом от CutCode!
Привет, разработчики!
Завтра на CutCode станет доступен новый курс "Изучение продвинутых методик Laravel. Часть 2. API".
🔥 Что будет на курсе:
1. Глубокое погружение в мир RESTful API: Подробный разбор теории понятным языком и практика на реальных проектах.
2. Современные подходы: Разберем Specification First, API First и Code First. Их особенности и отличия.
3. Автоматизация и кодогенерация: Научимся генерировать документацию и структуру API.
4. Безопасность прежде всего: Разберем JWT, Sanctum и другие методы аутентификации.
5. Тестирование API: Взглянем на подход TDD - как грамотно создавать API через тесты.
6. Профессиональная отладка: Изучим современные инструменты для эффективного дебагинга.
👨🏫 Кому подойдет курс:
- Разработчикам, стремящимся создавать масштабируемые и гибкие решения
- Тем, кто хочет повысить свою ценность на рынке труда
📅 Не пропустите прямой эфир!
Хотите узнать больше? Присоединяйтесь к прямому эфиру 1 октября в 20:00 (мск) на YouTube-канале CutCode. Там расскажут подробности о курсе и ответы на все ваши вопросы!
🔗 Ссылка на трансляцию:
💡 Специальное предложение: После эфира стартуют продажи курса со скидкой в течение 2 дней.
Поднимите ваши навыки разработки API на новый уровень!
#Laravel #API #CutCode
@php_be1
https://www.youtube.com/live/05JpWyW4b7s
Привет, разработчики!
Завтра на CutCode станет доступен новый курс "Изучение продвинутых методик Laravel. Часть 2. API".
🔥 Что будет на курсе:
1. Глубокое погружение в мир RESTful API: Подробный разбор теории понятным языком и практика на реальных проектах.
2. Современные подходы: Разберем Specification First, API First и Code First. Их особенности и отличия.
3. Автоматизация и кодогенерация: Научимся генерировать документацию и структуру API.
4. Безопасность прежде всего: Разберем JWT, Sanctum и другие методы аутентификации.
5. Тестирование API: Взглянем на подход TDD - как грамотно создавать API через тесты.
6. Профессиональная отладка: Изучим современные инструменты для эффективного дебагинга.
👨🏫 Кому подойдет курс:
- Разработчикам, стремящимся создавать масштабируемые и гибкие решения
- Тем, кто хочет повысить свою ценность на рынке труда
📅 Не пропустите прямой эфир!
Хотите узнать больше? Присоединяйтесь к прямому эфиру 1 октября в 20:00 (мск) на YouTube-канале CutCode. Там расскажут подробности о курсе и ответы на все ваши вопросы!
🔗 Ссылка на трансляцию:
💡 Специальное предложение: После эфира стартуют продажи курса со скидкой в течение 2 дней.
Поднимите ваши навыки разработки API на новый уровень!
#Laravel #API #CutCode
@php_be1
https://www.youtube.com/live/05JpWyW4b7s
YouTube
Презентация нового курса по API
Привет, поклонники Laravel!
1 октября в 20:00 (мск) состоится прямой эфир. Тема: презентация нового курса по API.
Что будет на курсе:
1. Глубокое погружение в мир RESTful API: Подробный разбор теории понятным языком и практика на реальных проектах.
2.…
1 октября в 20:00 (мск) состоится прямой эфир. Тема: презентация нового курса по API.
Что будет на курсе:
1. Глубокое погружение в мир RESTful API: Подробный разбор теории понятным языком и практика на реальных проектах.
2.…