PHP дайджест #4: PHP 7 Virtual Machine, PHP вмирає, майбутнє Doctrine

Після тривалої перерви зустрічайте новий випуск PHP дайджесту.

Статті

Nikita Popov детально розповідає про Virtual Machine в PHP 7.

Чому PHP гівно — саркастична статья для всіх хейтерів PHP.

Why Rubber Duck Debugging is the best way to debug your code.

Думки Tomas Votruba про те, чому Doctrine вмирає.

Fabien Potencier (автор Symfony) розповідає про Symfony 4. В його останній статті він розглядає найкращі підходи в майбутньому мажорному релізі фреймворка.

Туторіали

Introducing you to Xdebug, the powerful debugging tool for PHP applications.

Туторіал про те, як використовувати Laravel Authorization Gates.

Symfony 4: A quick Demo від Fabien Potencier

Danny van Kooten має цікавий пост про те, як перетворювати проекти на Laravel в Go. Коротко описано про зміни, трансформацію коду, різницю в продуктивності і рядків коду.

На блозі Amazon Web Services з’явився новий пост, який показує, як використовувати logging бібліотеку Monolog і відправляти logs на Amazon CloudWatch швидко і легко.

Релізи

PHP 7.1.4

Laravel 5.4.20

Symfony 2.8.20

Symfony 3.2.8

Цікаві бібліотеки

PHP Magic Number Detector.

Створи PHP development environment на Docker за декілька кліків.

Цікава і дуже проста тулзовина для автоматичного деплоя проектів на PHP.

Різне

35 programming habits that make your code smell.

Github тред про майбутнє Doctrine Project.

The $61,392 Book Launch That Let Me Quit My Job.

Can’t crack that programming problem? Go to sleep (or take a walk).

Про паролі:

Debugging a legacy app:

When we merge the intern’s code on the main branch:

Зранку після ночі кодінгу:

Коли колега поломав мій код:

Кого почитати в Твіттері

Alexander Makarov, засновник Yii

Michael Bodnarchuk, засновник Codeception

Mohamed Said, активний Core Contributor of Laravel Project

Taylor Otwell, автор Laravel

Graham Campbell, Core Contributor of Laravel Project, автор StyleCI, Cachet


Дякую, з вами був Рома Севастьянов.


← Попередній випуск: PHP дайджест #3
Наступний випуск: PHP дайджест #5

Підписуйтеся на Telegram-канал редакції DOU, щоб не пропустити найважливіші статті.

👍НравитсяПонравилось0
В избранноеВ избранном0
Подписаться на автора
LinkedIn



Підписуйтесь: Soundcloud | Google Podcast | YouTube


39 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Не зрозумів до чого в заголовці дайджесту «PHP вмирає», Doctrine != PHP

Тому що в минулому місяці була дуже популярна саркастична статья про те, що РНР вмирає.
Doctrine ORM використовується в багатьох РНР проектах і зараз йде жвава дискусія про його майбутне.

Классное название компании, в которой работает автор этого дайджеста :)

пиздатое название, я бы сказал

Danny van Kooten має цікавий пост про те, як перетворювати проекти на Laravel в Go. Коротко описано про зміни, трансформацію коду, різницю в продуктивності і рядків коду.
Ссылка битая. Должна быть dannyvankooten.com/laravel-to-golang

Дайте знать как менеджер пакетов запилят

Инетресная ссылочка

Unfortunately, the Laravel application (or PHP-FPM socket) kept falling over once I increased the number of concurrent «users» past 100.
Настроил по дефолту с юникс сокетом инфа 146%
Alexander Makarov, засновник Yii
Засновник Yii — Qiang Xue, а Макаров приєднався через 2 роки. Хоча його внесок достатньо великий, щоб вважати його одним з батьків Yii, та все ж засновник не він.

Кстати, Qiang Xue перешел с PHP на Go — github.com/qiangxue :)

> Цікава і дуже проста тулзовина для автоматичного деплоя проектів на PHP.

Я бы не сказал, что это «простая» тулза. Перешел с capistrano на deployer около двух лет назад, работает отлично, может одновременно выкатывать изменения на несколько серверов.

Я мав на увазі, що легко засетапити і почати її використовувати :-)

Если вдруг кто зайдет из пхп хейтеров
$a['a']['b']['c'] = 1
Как такое провернуть в других скриптовых языках при условии, что переменная $a не инециализировалась ранее?

Все? На этом преимущества закончились?

Видимо это значит никак.

$model->$$getter();

Есть еще такое. $getter — это имя переменной в которой имеется название метода, который вызывается на объекте $model. Думаю, такого точно никто, кроме php, не может.

такое вполне себе можно и в других языках к примеру в JS это было бы так
object[getter]()
Кстати надо бы проверить как это отработает с версии 7.0 поменялся алгоритм по которому подобные вызовы обрабатываются.

Лердоф много слизал из перла
потому работать в перле будет так же, даже на один символ меньше нужно :)
$model->$getter();

Если вдруг кто зайдет из пхп хейтеров
, то они скорей прицепятся к вашей грамматике.

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

вот для меня это больше минус, сильно неявная операция

Неявное предполагает альтернативы поведения которых вероятно можно и не ожидать интересно какие тут возможны варианты ?

у пыха полно недостатков,
но чем конкретно этот пример — неявная операция?

одна только неявность, о самой $a.

правильней было бы, чтобы до любой работы с переменной было где-то объявление
var $a; или пришла в параметрах, или в инклуде.
и то, просто вопрос более муторной отладки опечаток в названии переменных или морока с рефакторингом.

а вот то что у массива создатся нужные подмассивы — то вполне себе явно.

ну и о неявности — давайте не будем пинать javascript, там неявного добра тоже хватает :D

Дело в том что не ясно что $а это массив (что вы собственно и описали), и для меня было бы ожидаемо словить исключение, но это мои проблемы а не языка.

Дело в том что не ясно что $а это массив
дело в том, что в языках с динамической типизацией — с переменной ничего не ясно.

а так в php нет отбъявления переменной перед использованием — то как используешь, так и будет.

и для меня было бы ожидаемо словить исключение
но.

помнится вы уже не зная php брались рассуждать что там должно быть :)

специально, проверил себя:
$a = 123;
echo $a;
$a[’q’][’a’] = 567;
echo print_r($a, true);

E_WARNING : type 2 — Cannot use a scalar value as an array — at line 4

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

но пых да, похейтить не зная его — милое дело на форумах :)

Вы ошибаетесь, пхп я знаю, просто не все мне в нем нравится.

А варнинга уже достаточно — посыпаю голову пеплом.

Я еще не встречал ЯП в котором мне нравится все.
А у вас есть такой?

Clojure, и python очень даже не плох, но там тоже есть свои минусы. А так конечно идеального не может существовать, ибо задачи разные, а унивесально идеальный инструмент это фантастика.

Все яп в 20ке TIOBE неплохи.
Мне и пхп хорош. И джава, и С.
Я,ведь спрашиаал не об этом :)

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

Но вернемся к пхп.
Главными его недостатками являются предвзятое к нему и иллюзия простоты.
Поэтому любой считает что его знает. Не зная при этом элементарного в нем. А он так задуман что и не будет этим напрягать.
Плохой язык. Хороший язык тот который напрягает. Напряг — вызывает уважение, да.

Я не говорил что ПХП плох :)

Просто некоторые техники которые в нем возможны я обхожу 10 дорогой ибо считаю их плохими. Но так с каждым языком.

в перле работает по сути так же

Ну перл иной раз легко с PHP спутать его в расчет не берем.

Подписаться на комментарии