PHP-BE1
311 subscribers
338 photos
11 videos
19 files
620 links
Канал по PHP, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
HTTP Macros - это расширение функциональности Http фасада для удобства преобразования данных.

Из коробки предоставлено два базовых метода - toData и toDataCollection, преобразующих возвращаемые данные в конкретный класс или коллекцию классов.

Также можно легко создать и зарегистрировать (https://github.com/TheDragonCode/laravel-http-macros?tab=readme-ov-file#configuration) любой макрос.

https://github.com/TheDragonCode/laravel-http-macros
@php_be1
This media is not supported in your browser
VIEW IN TELEGRAM
Тейлор анонсировал Laravel Cloud

«Laravel Cloud — это полностью управляемая инфраструктурная платформа, созданная для разработчиков и команд, которые хотят сосредоточиться на реализации своих идей. Она специально оптимизирована для Laravel и PHP.»

https://cloud.laravel.com/
@php_be1
Laracon глазами Андрея Helldara'а (у него более позитивное видение):

- Авто-биндинг при использовании DI при помощи атрибутов;

- Улучшенная умная жадная загрузка — метод chaperone() при объявлении релейшена позволяет прокидывать в дочерние релейшены значение родителя для вызовов типа user->posts->each->user;

- Метод defer(), реализующий асинхронный вызов без блокировки основного;

- Новый метод Cache::flexible() добавляет автоматический прогрев кэша при частых запросах;

- Concurrency реализует параллельную обработку N+1 действий;

- Laravel Cloud. Цены:
- - Песочница: 1 цент в час
- - Postgres - 4 цента в час и 75 центов за гигабайт
По-нашему выходит около 40 тысяч рублей в год за сервер.
@php_be1
🛠 API-документация без головной боли: ТОП-11 инструментов

Ручное создание документации отнимает много времени и чревато ошибками. Представляем подборку инструментов, которые автоматизируют процесс и помогут вам сосредоточиться на разработке, а не на написании документации.


@php_be1
https://proglib.io/p/api-dokumentaciya-bez-golovnoy-boli-top-11-instrumentov-2024-08-21
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по Laravel 💡

Один из моих любимых недокументированных советов, который я регулярно использую. Используйте "wasRecentlyCreated", чтобы проверить, была ли модель создана или найдена в базе данных.

👉 [|@php_be1]
🎉 Розыгрыш обучающих курсов от CutCode!

📚 1 сентября - День знаний! Хватит откладывать свое обучение на потом, пришло время действовать! Самые жирные вакансии получают более квалифицированные разработчики. Сколько раз вы говорили себе "начну с понедельника" или "вот закончу этот проект и тогда..."? Пора превратить планы в реальность!

CutCode проводит большой розыгрыш, который может стать вашим билетом в мир профессионального Laravel:
🏆 Призы:
-Билеты на курсы: "Продвинутые методики Laravel", "Laravel Start" и "Laravel API"
-Скидка 30% на ВСЕ курсы CutCode
-6 месяцев бесплатного использования сервиса onFriday

🤔 Как участвовать?
1. Переходите к посту с розыгрышем
2. В комментариях к посту укажите желаемые призы, используя ключевые слова.

Спешите! Заявки принимаются только до 3 сентября включительно.
Розыгрыш состоится 4 сентября в 20:00 (мск) в прямом эфире на YouTube-канале CutCode.
Помните, День знаний - это не только про школьников и студентов. Это про каждого, кто готов развиваться, инвестировать в себя и свое будущее.
Действуйте сейчас, пока другие сомневаются! 🌟
#Laravel #CutCode
@php_be1
https://t.me/laravel_cutcode/566
Laravel's higher order collection proxies

Высокоуровневые прокси для коллекций — это функция Laravel, которая позволяет проксировать методы к объектам, находящимся в коллекции.

https://aaronfrancis.com/2024/laravels-higher-order-collection-proxies-451f4176
@php_be1
Совет по Laravel💡

Хотите быстро вывести SQL-запросы, выполненные во время вашего запроса?

И не хотите устанавливать Debugbar, Telescope и т.п.?

Используйте DB::listen() с toRawSql()!

👉 [|@php_be1]
Асинхронный PHP с использованием ReactPHP

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

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
Релиз Laravel 10.48.21
@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
Как работает магия нового хелпера defer()
Который выполняет код уже после отправки ответа в браузер. И делает это не с помощью очередей. А как? Узнаем вместе — полезли под капот!

@php_be1
https://www.amitmerchant.com/the-magic-behind-laravels-new-defer-helper/
Laravel разработчики, упростите загрузку файлов с этим инструментом! 💎

Используйте Storage::download(), чтобы принудительно запустить скачивание файла в браузере. Отлично подходит для защищенных файлов или генерации динамических загрузок.

Совет: Настройте имя файла и заголовки для большего контроля.

👉 [|@php_be1]
🐘 Тест по PHP

Проверь насколько хорошо ты знаешь PHP

Ответишь — пройдешь на продвинутый курс "PHP Developer. Professional" от OTUS по специальной цене + получишь чек-лист "Solid и типичные ошибки на собеседованиях" .

👉 ПРОЙТИ ТЕСТ: https://clck.ru/3DPRLQ

Приятный бонус Курс можно приобрести в рассрочку и без переплаты

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Пройди тест по Laravel ! 🔥

➡️ Проверь себя и свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Framework Laravel" от OTUS по специальной цене.

👩‍💻 Присоединяйся к новому потоку онлайн-курса «Framework Laravel» в OTUS. В программе курса — удобные и мощные наработки огромного Laravel-сообщества, а практика — решение бизнес-задач.

👨‍💻 За 3 месяца обучения твое портфолио пополнится мини-проектами и выпускной работой.

Приятный бонус Курс можно приобрести в рассрочку и без переплаты

👉 ПРОЙТИ ТЕСТ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Магия нового помощника 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/
Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)

Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза:

- Мне когнитивно и морально легче, когда уменьшается «магия» того, с чем работаешь. Может тебе тоже
- Возможно чуть-чуть реже статьи на хабре будут тебя отпугивать

Объясню на 4 примерах — каждый лишь немного сложнее предыдущего.

https://habr.com/ru/articles/844768/

👉 [|@php_be1]
https://habr.com/ru/articles/844768/