Я выздоровел и продолжаю наводить активность.
Сегодня у нас дайджест интересных материалов и новостей из мира PHP.
1. Небольшая и крутая статья, которая точно не будет лишней (а ещё её можно скидывать ответом на комментарии в твоём PR) - Как писать читаемый PHP-код -
https://freek.dev/1593-writer-readable-php-avoid-indentation-by-returning-earlyИли почему
public function doSomething($someParameter, $someOtherParameter)
{
if ($someParameter !== 0) {
return;
}
if ($someOtherParameter !== 0) {
return;
}
// do the actual work
}
Гораздо лучше, чем
if ($someParameter !== 0 || $someOtherParameter !== 0)
2.
https://github.com/shivammathur/setup-php - надстройка над github actions, специально для PHP. Последнее время много и часто говорят об этом инструменте от github, так что в конце недели у нас на канале выйдет материал по настройке и работе с github actions.
3. Поговаривают, что codeigniter дропнулся с номером 4.0, после 5-ти лет разработки (жалко, что ребята обновили фреймворк, но забыли обновить сайт с web 1.0). Кто писал - что скажете? Стоит рассмотреть? Какие есть плюсы, какие минусы? С кем из передовой троицы (Symfony, Laravel, Yii) его можно сравнить?
4. Занятный, на первый взгляд, инструмент для построения консольных приложений на нативном PHP -
https://github.com/minicli/minicliУдобные контроллеры, поддержка большой работы с аргументами и огромный вывод информации. Как минималистичное решение для небольшого микросервиса, который не требует зависимостей, - вполне может подойти.
5. Laravel обновился до 7-ой версии. Из вкусного, на что стоит обратить внимание:
5.1
https://laravel.com/docs/7.x/airlock - минималистичное решение для аутентификации клиентов посредством токенов. Я, как тот, кто любит разделять backend и клиентов, обязательно рассмотрю, какие плюсы и минусы есть у этой библиотеки и чем работа с ней отличается от аутентификаторов в Symfony.
5.2 Для Eloquent'а появилась возможность писать кастомные get/set-методы, инкапсулирующие логику работы с какой-либо структурой данных. Например, можно написать get/set для Json (где будет json_encode/json_decode), а потом работать с json-типом как с базовым.
5.3 Обновился HTTP-клиент! Ребята сделали обёртку поверх Guzzle, за что им огромное спасибо. Вместо не особо красивых интерпретаций вроде
$this->guzzleClient->request('POST',
'.../url/...',
[
'headers' => $content['headers'],
'json' => [
"paramsNames" => $content['content'],
]
]
);
Можно будет писать красивые:
$response = Http::withHeaders([
'X-First' => 'foo',
'X-Second' => 'bar'
])->post('http://test.com/users', [
'name' => 'Taylor',
]);
Надо будет протестировать и с радостью заюзаю в своих проектах.
6. SymfonyCast (
https://symfonycasts.com/screencast/symfony) дропнул плейлист с уроками по Symfony 5. Теперь тебе есть что посмотреть вечером со своей девушкой.