Хороший плейлист с видео по эффективной работе в PhpStorm https://youtube.com/playlist?list=PL-FhWbGlJPfbyDzZguRUwYkHx7Cn-Ch6u&si=5dHhHtNz2WK5a-Pl
🔥22👍5❤1👎1
Forwarded from Пых (Валентин Удальцов)
28 и 29 ноября в Москве пройдёт конференция Highload, в рамках которой 16 докладов будут выделены под PHP Russia.
Наилучший способ туда попасть — выступить! Плюшки спикера: куратор из ПК для подготовки крутого доклада (например, я), транспорт до Москвы и комфортное проживание, бейдж с полным доступом ко всем залам и зонам Highload. А ещё спикер навсегда вписывает себя и свои идеи в историю PHP. Короче, грех не податься!
Дай угадаю. Если ты раньше не выступал, то сейчас думаешь: "Ой, ну мне не о чем рассказывать, у нас всё стандартно." Поверь, так не бывает! У каждой компании есть ноу-хау, иначе она была бы неприбыльной и ты работал бы в другой. А раз "every company is a software company", то ноу-хау должно быть и в софте. Твоя задача — найти его и заполнить форму. Ещё можно предложить доклад про это самое "стандартно" и как его правильно готовить. Дальше мы уже решим, что впишется в программу, а что нет.
Итак, темы этого года:
• FFI, практическое применение
• AI/ML + PHP
• Производительность
• Devops под PHP
• Лучшие практики
• Новые крутые либы
• Альтернативные рантаймы
• Новые фреймворки
• Опыт больших сложных проектов на PHP
Ждём твой доклад по адресу https://cfp.phprussia.ru/ до 2-ого сентября.
Please open Telegram to view this post
VIEW IN TELEGRAM
cfp.phprussia.ru
PHP Russia 2025
Подайте доклад на конференцию PHP Russia
👍11🔥9🤡3
Новая нейросеть Claude 3.5 Sonet сносно пишет стихи. Попросил про PHP в стиле Маяковского:
PHP! Язык-громада, веб-гигант. Для сайтов он — первейший вариант.
Прост в освоении, быстр в работе, Для новичков и профи он в почете.
Серверный скрипт — его стихия, Динамику внесет без чьей-либо указки.
Базы данных, формы, сессии — Все по плечу без лишней агрессии.
PHP! Бесплатный, открытый, Для веб-разработки он — защита и щит.
PHP! Язык-громада, веб-гигант. Для сайтов он — первейший вариант.
Прост в освоении, быстр в работе, Для новичков и профи он в почете.
Серверный скрипт — его стихия, Динамику внесет без чьей-либо указки.
Базы данных, формы, сессии — Все по плечу без лишней агрессии.
PHP! Бесплатный, открытый, Для веб-разработки он — защита и щит.
🔥39💩21😁15👍12
This media is not supported in your browser
VIEW IN TELEGRAM
Знаменитый стример с обзорами на языки программирования с уклоном в Rust: «PHP-сообщество лучшее в мире!»
🏆43😁11🔥8❤4👍2💩2
Только что узнал: оператор := - это моржовый оператор 🤷♂️
Источник: https://habr.com/ru/articles/828566/
Источник: https://habr.com/ru/articles/828566/
Хабр
Моржовый оператор := в Python
Python постоянно развивается: с каждой новой версией появляются различные оптимизации, активно внедряются новые инструменты. Так, в Python 3.8 появился моржовый оператор ( := ), который стал причиной...
😁22🐳4✍1🤯1🌚1🗿1
Forwarded from CodeCamp
This media is not supported in your browser
VIEW IN TELEGRAM
Ты программист, Гарри. Великий программист.
😁44👎9🤣4💩3🤔2🔥1
Forwarded from Пых (Валентин Удальцов)
Теперь, когда первая сотня абитуриентов прислала анкеты, предлагаю всем подумать над внеконкурсным заданием. Решите 5-ую задачу с теми же вводными в обратную сторону. То есть у вас должен получиться класс, который, наоборот, позволит использовать
Psr\Middleware как Symfony\Subscriber. Идеи можно обсуждать в комментариях к этому посту. Позже всё разберём на стриме.Gist с полной формулировкой этого варианта задачи: https://gist.github.com/vudaltsov/dc4f372692d2eabbc8c3d29cd4de0ccd
Навеяно, кстати, весьма драматическими событиями. В 2018-ом году сообщество Symfony активно обсуждало невыполнение PHP-FIG своей "framework interoperability" миссии, так как компоненты HttpFoundation и HttpKernel нельзя малой кровью адаптировать под PSR-7. Апогеем стал pull-request Фабьена "Remove Symfony" в PHP-FIG. Тогда же у Symfony появился
Please open Telegram to view this post
VIEW IN TELEGRAM
Gist
symfony_to_psr.php
GitHub Gist: instantly share code, notes, and snippets.
👍7❤1
Laravel Cloud - новый бизнес-проект Тейлора. На сколько я вижу, из предыдущих проектов по монетизации Laravel самым успешным был Forge.
Затем была попытка в managed/serverless Vapor. Тейлор учёл продуктовые ошибки Vapor и вот он третий подход к теме: Laravel Cloud!
https://cloud.laravel.com
Затем была попытка в 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 Cloud
Laravel Cloud Hosting - Deploy & Scale Laravel Apps
Deploy and scale Laravel apps without managing servers. Laravel Cloud is fast, secure Laravel hosting with autoscaling. Start free on the Starter plan.
💩13👍7🫡5🤡1🖕1
ХВАТИТ смеяться над языками
программирования
Java - популярный
JavaScript - удобный
Python - прекрасный
PHP
Ruby - интересный
пятничный мем
программирования
Java - популярный
JavaScript - удобный
Python - прекрасный
PHP
Ruby - интересный
пятничный мем
😁79😎7👌6🦄3❤1👎1😢1
Ищешь полезные знания по архитектуре 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 руб🥳
Подключайся к онлайн-конференции 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
Из свежего интервью с Тейлором (создателем Laravel):
https://youtu.be/LoRc5A8QCmw?si=yDwFMWyZe7Hin9iF&t=1680 (ссылка с таймкодом)
Я лично просматриваю и проверяю каждый 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…
Audio only versions of this podcast are…
😁36👍15💊8🤡5🤔2
Forwarded from Пых (Валентин Удальцов)
Пару недель назад мы с Кириллом обсуждали PHP. Выяснилось, что он накануне имел дело с Laravel и, цитирую, "увидел очень много косяков". Фартан Алексей не мог пройти мимо такого инфоповода и предложил крутой состав для стрима:
▸ Кирилл Мокевнин подсветит проблемы Laravel,
▸ Данил Щуцкий встанет на защиту Тейлора,
▸ Алексей Гагарин расскажет, что в Spiral всё сделано в 100 раз лучше.
Встречаемся в этот четверг в
19:00 по Москве! Жмите в колокол, чтобы не пропустить.https://youtu.be/KpSfWe7XS3A
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14😁5🤡2
Forwarded from Пых (Валентин Удальцов)
Буквально через несколько минут начнётся первый в истории Пыхап! Залетайте в трансляцию на канале PHP Point!
https://youtu.be/Pa4pti6r-rc
В программе у нас 3 доклада:
Андрей Клименко поломает вам голову основами ФП и примерами на Scala, из которых станет понятно, что из функционального мира уже доступно в PHP, а что ещё предстоит законтрибьютить.
Вадим Занфир расскажет, почему все современные фреймворки теряют сообщения и как на самом деле надо работать с "кроликом".
В аду есть специальный котёл для тех, кто использует float для хранения денег. Сергей Жук подскажет, как в него не угодить.
Спонсор первого Пыхапа — Happy Job 💚! Обращайтесь в Happy Job за исследованиями вовлечённости и оценкой 360, ребята делают лучшую платформу для развития сотрудников.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Пыхап / 8 ноября 2024
Пыхап — митап про PHP для PHP-разработчиков, их техлидов, тимлидов, архитекторов, техдиректоров и всех, кому небезразличен наш бесконечно умирающий язык.
0:00 Вступление
6:07 Приветствуем Андрея Клименко
8:32 (Не) используйте функциональное программирование…
0:00 Вступление
6:07 Приветствуем Андрея Клименко
8:32 (Не) используйте функциональное программирование…
🔥7❤3👍1👎1
PHP 8.4.1 Released!
Ключевые изменения в PHP 8.4:
Предложена новая реализация JIT-компилятора, построенная на базе IR Framework. Ключевое отличие в том, что старый JIT напрямую генерировал машинные инструкции на основе байткода и с использованием разных бэкендов для архитектур x86_64 и AArch64, а новый JIT использует единый для всех архитектур бэкенд и генерирует промежуточное представление (IR), которое затем дополнительно оптимизируется и преобразуется в машинные инструкции для нужной целевой платформы.
Добавлена поддержка прикрепления обработчиков свойств (property hook), позволяющих добавить дополнительную логику, выполняемую при изменении или доступе к свойствам объекта, реализуемую без перехвата операций чтения и записи при помощи общих функций __get и __set, и без создания дополнительных методов-обвязок. Применение обработчиков свойств даёт возможность существенно сократить объём кода и упростить переопределение поведения работы со свойствами, благодаря привязке собственного обработчика к каждому свойству.
Разрешено указание ссылок на методы в конструкции "new" без отделяющих скобок, т.е. вместо "$name = (new MyClass())->method()" теперь можно указывать "$name = new MyClass()->method()".
Добавлена возможность асимметричного управления видимостью свойств объектов (public, private, protected), отдельно для операций записи (set) и чтения (get). Например:
Предоставлена штатная поддержка "ленивых" объектов (lazy), инициализация которых производится в момент первого использования.
Вместо общего параметра "opcache.jit_buffer_size" для управления JIT-компилятором и настройки размера буфера JIT предложены параметры "opcache.jit" и "opcache.jit_buffer_size". Для отключения JIT теперь можно указывать "opcache.jit=disable" вместо "opcache.jit_buffer_size=0". Внесены изменения, снижающие потребление памяти и повышающие производительность JIT в некоторых ситуациях.
Добавлен атрибут "#[\Deprecated]", предназначенный для пометки устаревших функций, классов и методов.
Реализован класс \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 символов, можно указать:
Добавлены методы DateTime::getMicrosecond() и DateTimeImmutable::setMicrosecond($microsecond) для получения и установки времени с микросекундной точностью, а также метод DateTime::createFromTimestamp().
В PDO (PHP Data Objects), абстрактный интерфейс для работы с базами данных, добавлена возможность создания парсеров SQL и субклассов, специфичных для определённых драйверов СУБД. Добавлены новые субклассы Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc и Pdo\Sqlite.
Ключевые изменения в 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