Привет, фартаны!
Дурачимся, пилим OpenSource и рассказываем про пердовые технологии в php.
Авторы контента: @roxblnfk и @butschster
Post #46
1.4K
PH @php_fart
Showing posts older than #47 · Back to latest


PHP Fart Time Привет, фартаны! Мы вернулись к истокам и записали видосик. За последние полгода Buggregator Server круто прорефакторился 💪, поэтому напомнить о нём будет не лишним. https://youtu.be/qsDIHwS58Q4MOSHED-2023-8-8-0-11-49.gif15.9 MB
buggregator/trap, который поможет дампать protobuf объекты. Эта утилита умеет ловить любой трафик и даже почту, а ещё у неё есть все шансы стать шлюзом к Buggregator Cloud.trap fart?


sudo не удалится. Не благодарите.

function toArray(...$items): array { return $items; }
$a = ['foo', 'bar'];
toArray(...$a);func_get_arg(), как делали ещё наши предки? Кроме того, мы можем в конце списка параметров сунуть массив и даже распаковка не понадобится при вызове функции. function foo(Foo $a, array $myVariadic = []) {}.function foo(Foo $a, Bar ...$variadic) {}Bar попадут в массив $variadic. Ну это и так все знали.[3 => 'a', 2 => 'b', 1 => 'c'] приведёт к ['a', 'b', 'c'] в вариадике.bar(int $a = 1, int $b = 2, int ...$c). Что попадёт в $c?bar(a: 1, c: 3) - `["c" => 3]`bar(c: [1, 2, 3]) - `Fatal Error`bar(foo: 3) - `["foo" => 3]`bar(1, 2, a: 3) - `Fatal Error`bar(c: 3, a: 1, b: 2) - `["c" => 3]`bar(foo-bar: 3) - `Syntax Error`bar(1, 2, 3, 4, foo: 5) - `[3, 4, "foo" => 5]`bar(b: 2, 3, 4, foo: 5) - `Fatal Error`yiisoft/injector в конструктор можно было бы передавать переменное число ContainerInterface, а не один и только один (@samdark, я смотрю на тебя). Или вот пример, как заставить передать минимум один аргумент нужного типа: function setEncoders(Encoder $encoder, Encoder ...$encoders) {}.Column компонента cycle/orm можно передать любые именованные аргументы сверх тех, что предопределены заранее (спасибо, variadic). Например, определяем #[Column(type: 'bigint', unsigned: true). Здесь unsigned попадёт в variadic и, если у вас MySQL, столбец будет unsigned.doctrine/annotations, однако там решили ограничиться просто фиксом "чтоб не падало". Поэтому (и не только) не пользуйтесь аннотациями, если есть возможность пользоваться атрибутами.

