TGViewer
Channel Public Channel
Пятиминутка PHP

Пятиминутка PHP

@tg_5minphp

Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Темы про СУБД, Linux, DevOps

Автор: @petrmyazin
Subscribers
2.79K
Photos
360
Videos
28
Links
860

Showing posts older than #1366 · Back to latest

Older Posts 20 shown
Post #1365 2.63K
Инсайды с PHP Russia: автор админ-панели MoonShine прокомментировал возможность использования инструмента статической типизации Typhoon в коде своей админ-панели:
не фанат
  • 😁 59
  • 👍 6
  • 🤪 4
  • 🤡 2
Post #1364 3.24K
Одна из интриг PHP Russia, которую я ждал: будет ли сегодня выпущен релиз Yii3?

Увы. Не сегодня.
  • 🤣 60
  • 🤡 7
  • 🥱 5
  • 😢 4
  • 👎 1
  • 😁 1
Post #1363 3.04K
Веб-сервер Angie: на PHP-приложении echo “Hello World” показывает результат в 2 раза производительнее, чем nginx!

Если у вас есть высоконагруженный Hello World в production - возьмите на заметку 😉
  • 😁 89
  • 🔥 18
  • 🤔 9
  • 🤡 2
  • 👎 1
Post #1362 2.44K
Сегодня и завтра участвую в конференции PHP Russia. Много знакомых лиц, отличная атмосфера!
  • 🔥 29
  • 👍 19
  • ❤ 1
Post #1361 2.99K
Кратко про пик Балмера
  • 😁 66
Post #1360 3.97K
Посмотрел Laravel Lynch 2 - критика фреймворка, сравнение с Symfony (по некоторым пунктам), общее обсуждение вариантов развития программиста в PHP-экосистеме.

В целом осталось впечатление, что всё тлен: и Laravel, и Symfony, и Spiral + Temporal (который нужен 0,01% проектов).

Что делать? Обдумав все услышанное, отметил для себя, что не хейтили только Yii3! 😉

https://www.youtube.com/live/uwih1jLMkyg?si=FPLabeKHO1t-Q3Zh
YouTube Laravel Lynch 2 Линчуем Laravel. Опять. Ссылки из стрима: Книга «Архитектура сложных веб-приложений. С примерами на Laravel» от Аделя: https://github.com/adelf/acwa_book_ru Buggregator: https://buggregator.dev/
  • 👍 24
  • 😁 21
  • 🥴 4
  • ❤ 3
  • 🔥 3
  • 🤮 1
Post #1359 3.54K
Windsurf — это новый клон VSCode с AI фичами.

Казалось бы, ничего нового, тысячи их. Впрочем, другие аналогичные клоны VSCode (Cursor и т.п.) я толком не пробовал, поэтому сравнивать с ними не буду.

На YouTube много обзоров, как Windsurf создаёт проект с нуля за считанные минуты. Но эти демо всегда казались мне синтетическими. Я не часто начинаю новые проекты, и, когда это происходит, обычно используется некий корпоративный шаблон со своими заморочками.

Итак, сегодня засел за Windsurf на реальной задаче из рабочего проекта: некий калькулятор корпоративных расходов в PHP приложении с фронтендом на Alpine.js. Я был приятно удивлён, насколько хорошо Windsurf подхватил текущие файлы проекта и вошел в контекст!

😍Главные впечатления:

- Очень удобный интерфейс для просмотра и применения изменений. Я пользуюсь GitHub Copilot плагином в PhpStorm и могу сказать, что Copilot inline chat (функция появилась относительно недавно) просто отвратителен. С точки зрения UX Windsurf на два шага впереди.

- Исходную задачу хорошо разбивает на шаги, которые потом последовательно скармливаются LLM, процесс визуализирован. Под капотом, возможно, заготовлена куча продуманных prompts. Если бы я делал аналогичную декомпозицию вручную через ChatGPT, то я бы запарился.

Основной недостаток для меня в том, что это клон VSCode, а я в основном использую PhpStorm. Естественно, всё кажется неудобным: другие цвета, другие горячие клавиши, отсутствие инспектора БД и автоформатирования. Я знаю, что всё можно настроить и расширить плагинами. Однако, я поступил иначе: использовал Windsurf для генерации существенных блоков кода через запросы к AI, а затем переключался обратно на PhpStorm для ручного редактирования.

Вывод: Windsurf для меня не IDE. Это скорее продвинутое окно ChatGPT с прямым доступом к чтению и записи файлов проекта — очень удобное и полезное окно, оказалось!

https://codeium.com/windsurf
Devin Devin Desktop | Devin Manage fleets of local and cloud agents from one surface. Plan, delegate, review, and ship without leaving your editor.
  • 👍 24
  • 🔥 8
  • 🤷‍♂ 4
Post #1358 3.14K
Добавлены новые функции mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst(), bcceil(), bcdivmod(), bcfloor() и bcround(), pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid(), http_get_last_response_headers(), http_clear_last_response_headers(), fpow()

Операции exit и die теперь можно вызывать в форме полноценных функций, которые допускается передавать в качестве аргумента в другие функции. Ранее возможности функций exit() и die() были сильно ограничены, так как они представляли собой обвязки над ключевыми словами exit и die.

Добавлены изменения, усложняющие эксплуатацию уязвимостей, вызванных выходом за границы буфера, а также усиливающие рандомизацию имён файлов, создаваемых через функцию tempnam().

Объявлено устаревшим поведение, при котором для параметров функций с присвоенным по умолчанию значением null автоматически разрешалось присвоение значений null. Для того, чтобы подобные параметры могли принимать значения null теперь требуется явное указание префикса "?". Например, вместо "function save(Book $book = null) {}" следует указывать "function save(?Book $book = null) {}".

Объявлены устаревшими константы E_STRICT, MYSQLI_REFRESH_*, функции mysqli_ping(), mysqli_kill(), mysqli_refresh(), методы mysqli::ping(), mysqli::kill(), mysqli::refresh(), возможность использования "_" в качестве имени класса, некоторые свойства DOMDocument и DOMEntity. Запрещено переопределение констант класса GMP, для которого теперь выставлено ключевое слово "final".


Источник: https://www.opennet.ru/opennews/art.shtml?num=62269
  • 🔥 21
  • 👍 12
Post #1357 2.38K
PHP 8.4.1 Released!

Ключевые изменения в PHP 8.4:

Предложена новая реализация JIT-компилятора, построенная на базе IR Framework. Ключевое отличие в том, что старый JIT напрямую генерировал машинные инструкции на основе байткода и с использованием разных бэкендов для архитектур x86_64 и AArch64, а новый JIT использует единый для всех архитектур бэкенд и генерирует промежуточное представление (IR), которое затем дополнительно оптимизируется и преобразуется в машинные инструкции для нужной целевой платформы.

Добавлена поддержка прикрепления обработчиков свойств (property hook), позволяющих добавить дополнительную логику, выполняемую при изменении или доступе к свойствам объекта, реализуемую без перехвата операций чтения и записи при помощи общих функций __get и __set, и без создания дополнительных методов-обвязок. Применение обработчиков свойств даёт возможность существенно сократить объём кода и упростить переопределение поведения работы со свойствами, благодаря привязке собственного обработчика к каждому свойству.

class User
{
public string $name {
set {
if (strlen($value) === 0) {
throw new ValueError("Name must be non-empty");
}
$this->name = $value;
}
}

public function __construct(string $name) {
$this->name = $name;
}
}


Разрешено указание ссылок на методы в конструкции "new" без отделяющих скобок, т.е. вместо "$name = (new MyClass())->method()" теперь можно указывать "$name = new MyClass()->method()".

Добавлена возможность асимметричного управления видимостью свойств объектов (public, private, protected), отдельно для операций записи (set) и чтения (get). Например:

class PhpVersion
{
public private(set) string $version = '8.4';
}

$phpVersion = new PhpVersion();
var_dump($phpVersion->version); // string(3) "8.4"
$phpVersion->version = 'PHP 8.3'; // error


Предоставлена штатная поддержка "ленивых" объектов (lazy), инициализация которых производится в момент первого использования.

Вместо общего параметра "opcache.jit_buffer_size" для управления JIT-компилятором и настройки размера буфера JIT предложены параметры "opcache.jit" и "opcache.jit_buffer_size". Для отключения JIT теперь можно указывать "opcache.jit=disable" вместо "opcache.jit_buffer_size=0". Внесены изменения, снижающие потребление памяти и повышающие производительность JIT в некоторых ситуациях.

Добавлен атрибут "#[\Deprecated]", предназначенный для пометки устаревших функций, классов и методов.

#[\Deprecated("use newFunction() instead", since: "1.1")]
function oldFunction() {
// …
}


Реализован класс \Dom\HTMLDocument, поддерживающий корректный разбор разметки HTML5.

Добавлена функция request_parse_body() для разбора HTTP-запросов с типом контента multipart/form-data (RFC1867).

Добавлены функции array_find(), array_find_key(), array_any() и array_all(). Функции array_find() и array_find_key() возвращают первый элемент или ключ в массиве, для которых сработала проверка, заданная через указанную пользователем callback-функцию. В свою очередь функции array_any() и array_all() возвращают любой совпавший элемент и все совпавшие элементы. Например, для вывода первого элемента, размер поля title в котором больше 5 символов, можно указать:

$firstMatch = array_find(
$posts,
function (Post $post) {
return strlen($post->title) > 5;
}
);


Добавлены методы DateTime::getMicrosecond() и DateTimeImmutable::setMicrosecond($microsecond) для получения и установки времени с микросекундной точностью, а также метод DateTime::createFromTimestamp().

В PDO (PHP Data Objects), абстрактный интерфейс для работы с базами данных, добавлена возможность создания парсеров SQL и субклассов, специфичных для определённых драйверов СУБД. Добавлены новые субклассы Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc и Pdo\Sqlite.
  • 🔥 13
  • 👍 11
Post #1356 2.36K

Forwarded from Пых (Валентин Удальцов)

▶️ Пыхап!

Буквально через несколько минут начнётся первый в истории Пыхап! Залетайте в трансляцию на канале PHP Point!

https://youtu.be/Pa4pti6r-rc

В программе у нас 3 доклада:

🤯 (Не) используйте функциональное программирование в PHP
Андрей Клименко поломает вам голову основами ФП и примерами на Scala, из которых станет понятно, что из функционального мира уже доступно в PHP, а что ещё предстоит законтрибьютить.
⬇️Слайды

🐇 Вы не знаете RabbitMQ
Вадим Занфир расскажет, почему все современные фреймворки теряют сообщения и как на самом деле надо работать с "кроликом".

🤑 Как считать деньги и не терять их
В аду есть специальный котёл для тех, кто использует float для хранения денег. Сергей Жук подскажет, как в него не угодить.

Спонсор первого Пыхапа — Happy Job 💚! Обращайтесь в Happy Job за исследованиями вовлечённости и оценкой 360, ребята делают лучшую платформу для развития сотрудников.
YouTube Пыхап / 8 ноября 2024 Пыхап — митап про PHP для PHP-разработчиков, их техлидов, тимлидов, архитекторов, техдиректоров и всех, кому небезразличен наш бесконечно умирающий язык. 0:00 Вступление 6:07 Приветствуем Андрея Клименко 8:32 (Не) используйте функциональное программирование…
  • 🔥 7
  • ❤ 3
  • 👍 1
  • 👎 1
Post #1355 3.05K

Forwarded from Пых (Валентин Удальцов)

▶️ PHP-линч Laravel с Кириллом Мокевниным, Данилом Щуцким и Алексеем Гагариным

Пару недель назад мы с Кириллом обсуждали PHP. Выяснилось, что он накануне имел дело с Laravel и, цитирую, "увидел очень много косяков". Фартан Алексей не мог пройти мимо такого инфоповода и предложил крутой состав для стрима:

▸ Кирилл Мокевнин подсветит проблемы Laravel,
▸ Данил Щуцкий встанет на защиту Тейлора,
▸ Алексей Гагарин расскажет, что в Spiral всё сделано в 100 раз лучше.

Встречаемся в этот четверг в 19:00 по Москве! Жмите в колокол, чтобы не пропустить.

https://youtu.be/KpSfWe7XS3A
  • 🔥 14
  • 😁 5
  • 🤡 2
Post #1354 3.8K
PHP-линч на Halloween, который мы заслужили!
  • ❤ 5
Post #1353 4.21K
Почему в кремниевой долине много IT-гигантов, IT-стартапов и всего такого? В одном из чатов узнал реальную причину, попробуй запрограммируй:
  • 🦄 15
  • 👍 6
  • 🤯 2
  • 👾 1
  • 😡 1
Post #1352 8.78K
Из свежего интервью с Тейлором (создателем Laravel):
Я лично просматриваю и проверяю каждый Pull Request к Laravel, и именно я тот человек, который в итоге нажимает кнопку Merge.

Думаю, это помогло сохранить целостность и единый стиль фреймворка.

Даже если присланный код работает, и работает правильно, но реализован не совсем так, как я бы сделал сам, то обычно я его подправляю. В итоге код Laravel читается так, будто всё написано одним человеком, а не тысячью разных.


https://youtu.be/LoRc5A8QCmw?si=yDwFMWyZe7Hin9iF&t=1680 (ссылка с таймкодом)
YouTube Laravel Creator talks PHP, Lambos, and VC Today we talk with Taylor Otwell, the creator of Laravel. We start at Laravel's humble beginnings and move all the way to the exciting new Series A raise with Accel and all that it is enabling Laravel to do today! Audio only versions of this podcast are…
  • 😁 36
  • 👍 15
  • 💊 8
  • 🤡 5
  • 🤔 2
Post #1350 5.32K
Ищешь полезные знания по архитектуре PHP-приложений?

Подключайся к онлайн-конференции Podlodka PHP Crew, которая пройдет с 30 сентября по 4 октября!

Получишь практические кейсы и советы от экспертов с опытом реальных внедрений в крупных проектах.

💡Ключевые спикеры сезона:

🔥 Кирилл Мокевнин, сооснователь Hexlet, научит строить код на базе явного состояния и флагового программирования, от простых регистраций до сложной синхронизации данных.

💡 Валентин Удальцов, opensource-разработчик, объяснит, когда стоит внедрять CQRS и как избежать ненужных сложностей.

💳 Дмитрий Кириллов, CTO 1С-Старт, разберет ошибки в банковских интеграциях и покажет, как проектировать качественные API на PHP.

📊 Алексей Солодкий из BelkaCar покажет, как использовать Prometheus для кастомных метрик и организовать мониторинг PHP-приложений.

Не упусти шанс улучшить свои навыки! Подробности и билеты на сайте: https://podlodka.io/phpcrew

А промокод сообщества php_crew_5_jwg1i1 даёт скидку еще в 500 руб🥳
  • 👍 13
  • ❤ 2
Post #1348 5.63K
ХВАТИТ смеяться над языками
программирования

Java - популярный
JavaScript - удобный
Python - прекрасный
PHP
Ruby - интересный

пятничный мем
  • 😁 79
  • 😎 7
  • 👌 6
  • 🦄 3
  • ❤ 1
  • 👎 1
  • 😢 1
Post #1347 4.93K
Laravel Cloud - новый бизнес-проект Тейлора. На сколько я вижу, из предыдущих проектов по монетизации Laravel самым успешным был Forge.

Затем была попытка в managed/serverless Vapor. Тейлор учёл продуктовые ошибки Vapor и вот он третий подход к теме: Laravel Cloud!

https://cloud.laravel.com

Ten years ago, Forge changed the game. Five years later,Vapor pushed the boundaries with serverless deployments. Now, we’re aiming higher than we’ve ever aimed before. We’ve spent more than a decade listening to what developers want, and it’s simple: they just want to ship.
Laravel Laravel Cloud — The managed cloud for Laravel | Laravel - The clean stack for Artisans and agents The best place to deploy, run, and scale Laravel applications. Push your code and walk away. We'll handle everything else.
  • 💩 13
  • 👍 7
  • 🫡 5
  • 🤡 1
  • 🖕 1
Post #1346 4.97K
  • 😁 101
  • 👀 5
  • 🤔 4
  • 👍 2
  • 😎 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →