PHP под капотом: как работает генерация случайных чисел
Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.
Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!
🔗 Хабр
Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.
Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!
🔗 Хабр
👍4❤1
Метод «skip» у планировщика
Иногда вы можете захотеть пропустить выполнение команды, основываясь на определенном условии. Laravel включает метод «
Библиотека пхпшника #буст
Иногда вы можете захотеть пропустить выполнение команды, основываясь на определенном условии. Laravel включает метод «
skip
» для выполнения этого 🚀Библиотека пхпшника #буст
👍8❤1
Forwarded from hahacker_news
📚🔄 OTUS – лауреат премии «Цифровые вершины»: как подписка на обучение меняет IT-образование
Платформа OTUS представила инновационный подход к IT-обучению, запустив сервис подписки, предоставляющий доступ к 151 курсу по ключевым направлениям индустрии. Этот формат позволяет специалистам гибко выбирать образовательные треки и проходить до трех курсов одновременно без дополнительных затрат, что значительно снижает расходы на обучение.
В 2025 году OTUS была удостоена премии «Цифровые вершины» в номинации «Лучшее IT-решение для образования», что подтверждает эффективность и востребованность их модели обучения. Благодаря подписке, IT-специалисты могут непрерывно обновлять свои знания и навыки, оставаясь конкурентоспособными в стремительно развивающейся сфере.
🔗 Подробности в статье
Платформа OTUS представила инновационный подход к IT-обучению, запустив сервис подписки, предоставляющий доступ к 151 курсу по ключевым направлениям индустрии. Этот формат позволяет специалистам гибко выбирать образовательные треки и проходить до трех курсов одновременно без дополнительных затрат, что значительно снижает расходы на обучение.
В 2025 году OTUS была удостоена премии «Цифровые вершины» в номинации «Лучшее IT-решение для образования», что подтверждает эффективность и востребованность их модели обучения. Благодаря подписке, IT-специалисты могут непрерывно обновлять свои знания и навыки, оставаясь конкурентоспособными в стремительно развивающейся сфере.
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱7🌚5
Пхпшники!
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый пхпшник.
➡️ Поддержать канал: https://www.tgoop.com/boost/phpproglib
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый пхпшник.
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤2🥱2🌚2
🚀 Hypervel — новый фреймворк PHP с нативной поддержкой корутин
Если вам нравится Laravel, но не хватает производительности в I/O-нагруженных проектах — знакомьтесь с Hypervel. Это высокопроизводительный PHP-фреймворк, вдохновлённый Laravel, но построенный на Swoole и с полной поддержкой корутин прямо из коробки.
🤔 Зачем Hypervel, если есть Laravel Octane?
Octane — это круто, он ускоряет Laravel за счёт долгоживущего процесса. Но вот беда: Octane не умеет в неблокирующий I/O.
Допустим, у вас чат-бот на Laravel, и каждый запрос к ИИ занимает 3–5 секунд. Даже с 10 worker-ами ты не обработаешь 100 параллельных запросов — они просто встанут в очередь. Почему? Потому что все воркеры блокируются на время I/O-операций.
Laravel по своей архитектуре не рассчитан на корутины. И в ближайшем будущем это не изменится.
⚡️ Что умеет Hypervel?
✅ Почти полная совместимость с Laravel API
✅ Корутины — из коробки
✅ QPS в 10+ раз выше Octane (в I/O-нагрузке — в 100+ раз)
✅ Поддержка object/connection pool (DB, Redis, HTTP и др.)
✅ Корутинная обработка очередей и cron-задач
✅ Кеши, очереди, блокировки — совместимы с Laravel
✅ Подходит для микросервисов, API-шлюзов, высоконагруженных систем
🧵 Корутины — главная фишка
Корутина — это как функция, которая может «поставиться на паузу», пока идёт I/O (запрос к БД, файл, сеть), и не блокировать весь процесс. Hypervel использует Swoole, где всё работает на корутинах: HTTP, DB, Redis, файлы и даже стандартные функции PHP.
💡 Один процесс в Hypervel может обрабатывать сотни задач параллельно — без запуска 100+ воркеров.
📊 Бенчмарки
Hello World (без I/O): Hypervel в 10 раз быстрее Octane
Симуляция I/O (sleep 1 сек): Hypervel в сотни раз быстрее
👉 Читать статью
Если вам нравится Laravel, но не хватает производительности в I/O-нагруженных проектах — знакомьтесь с Hypervel. Это высокопроизводительный PHP-фреймворк, вдохновлённый Laravel, но построенный на Swoole и с полной поддержкой корутин прямо из коробки.
🤔 Зачем Hypervel, если есть Laravel Octane?
Octane — это круто, он ускоряет Laravel за счёт долгоживущего процесса. Но вот беда: Octane не умеет в неблокирующий I/O.
Допустим, у вас чат-бот на Laravel, и каждый запрос к ИИ занимает 3–5 секунд. Даже с 10 worker-ами ты не обработаешь 100 параллельных запросов — они просто встанут в очередь. Почему? Потому что все воркеры блокируются на время I/O-операций.
Laravel по своей архитектуре не рассчитан на корутины. И в ближайшем будущем это не изменится.
⚡️ Что умеет Hypervel?
✅ Почти полная совместимость с Laravel API
✅ Корутины — из коробки
✅ QPS в 10+ раз выше Octane (в I/O-нагрузке — в 100+ раз)
✅ Поддержка object/connection pool (DB, Redis, HTTP и др.)
✅ Корутинная обработка очередей и cron-задач
✅ Кеши, очереди, блокировки — совместимы с Laravel
✅ Подходит для микросервисов, API-шлюзов, высоконагруженных систем
🧵 Корутины — главная фишка
Корутина — это как функция, которая может «поставиться на паузу», пока идёт I/O (запрос к БД, файл, сеть), и не блокировать весь процесс. Hypervel использует Swoole, где всё работает на корутинах: HTTP, DB, Redis, файлы и даже стандартные функции PHP.
💡 Один процесс в Hypervel может обрабатывать сотни задач параллельно — без запуска 100+ воркеров.
📊 Бенчмарки
Hello World (без I/O): Hypervel в 10 раз быстрее Octane
Симуляция I/O (sleep 1 сек): Hypervel в сотни раз быстрее
👉 Читать статью
👍13❤4
🔧 CLI-лайфхак для PHP-разработчиков: Быстрое выполнение одноразовых команд с помощью опции -r 🚀
Полезная команда, которая позволяет выполнять небольшие фрагменты PHP-кода прямо из командной строки без создания отдельных файлов. Это особенно удобно для быстрого тестирования идей или выполнения одноразовых задач 🖥️
Как это сделать?
1. Откройте терминал на вашем компьютере.
2 Введите следующую команду, заменив код внутри одинарных кавычек на нужный вам PHP-код:
Почему это удобно?
🔸 Быстрота: нет необходимости создавать отдельный файл для выполнения небольшого фрагмента кода.
🔸 Удобство: идеальный способ для тестирования небольших функций или выражений.
🔸 Гибкость: позволяет комбинировать PHP с другими командными инструментами для автоматизации задач.
Обратите внимание:
Экранирование кавычек: при использовании одинарных кавычек внутри PHP-кода их необходимо экранировать обратным слэшем (\'), чтобы избежать конфликтов с внешними кавычками.
Библиотека пхпшника #буст
Полезная команда, которая позволяет выполнять небольшие фрагменты PHP-кода прямо из командной строки без создания отдельных файлов. Это особенно удобно для быстрого тестирования идей или выполнения одноразовых задач 🖥️
Как это сделать?
1. Откройте терминал на вашем компьютере.
2 Введите следующую команду, заменив код внутри одинарных кавычек на нужный вам PHP-код:
php -r 'echo «Привет, мир!\n»;'
Почему это удобно?
🔸 Быстрота: нет необходимости создавать отдельный файл для выполнения небольшого фрагмента кода.
🔸 Удобство: идеальный способ для тестирования небольших функций или выражений.
🔸 Гибкость: позволяет комбинировать PHP с другими командными инструментами для автоматизации задач.
Обратите внимание:
Экранирование кавычек: при использовании одинарных кавычек внутри PHP-кода их необходимо экранировать обратным слэшем (\'), чтобы избежать конфликтов с внешними кавычками.
php -r 'echo \'Это строка с одинарными кавычками.\' . «\n»;'
Библиотека пхпшника #буст
👍12😁5👾4🥱2👏1
📣 Программисты, нужен ваш совет
Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!
Какой ноут спасает вас в кодинге и почему?
Расскажите все:
🔹 Что за зверь (модель, начинка)
🔹 Где жмет и где радует в ежедневной работе
🔹 На какие фишки смотреть при выборе
🔹 Как вам с ним живется
Топовые советы попадут в нашу статью. Сделаем годный гайд, который реально поможет коллегам.
💬 Делитесь в комментах
Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!
Какой ноут спасает вас в кодинге и почему?
Расскажите все:
🔹 Что за зверь (модель, начинка)
🔹 Где жмет и где радует в ежедневной работе
🔹 На какие фишки смотреть при выборе
🔹 Как вам с ним живется
Топовые советы попадут в нашу статью. Сделаем годный гайд, который реально поможет коллегам.
💬 Делитесь в комментах
🤔1
🔥 Ускоряем тесты с ParaTest
Если вы часто сталкиваетесь с медленными тестами и хоите ускорить процесс разработки, стоит попробовать ParaTest. Этот инструмент позволяет запускать тесты параллельно, что значительно сокращает время выполнения, особенно на больших проектах.
Почему стоит использовать ParaTest:
🔸 Параллельное выполнение: тесты запускаются в несколько процессов одновременно, что ускоряет их выполнение.
🔸 Преимущества для CI: особенно полезно для непрерывной интеграции — тесты запускаются быстрее, что ускоряет релизы.
🔸 Простая установка: ParaTest можно интегрировать почти как замену PHPUnit без серьезных изменений в коде.
Какие проблемы могут возникнуть:
При параллельном запуске могут возникнуть ошибки, связанные с одновременным доступом к базе данных (например, при попытке создать одинаковые таблицы). Для этого нужно изменить конфигурацию тестов, чтобы каждый тест использовал транзакции или запускал миграции до начала тестов.
Как решить:
🔹 Используй
🔹 В случае с SQLite можно оставить стандартные настройки, так как каждая база будет независимой.
Результат:
После настройки ParaTest ты можешь увидеть ускорение в 2-10 раз, особенно на крупных проектах. Это заметно сокращает время, которое тратится на тестирование, и помогает быстрее доставлять код в продакшн.
💡 Совет: если проект большой, начинай с разделения тестов на группы и постепенно переводя их на параллельное выполнение, чтобы получать результат сразу.
🔗 Читать Статью
Библиотека пхпшника
Если вы часто сталкиваетесь с медленными тестами и хоите ускорить процесс разработки, стоит попробовать ParaTest. Этот инструмент позволяет запускать тесты параллельно, что значительно сокращает время выполнения, особенно на больших проектах.
Почему стоит использовать ParaTest:
🔸 Параллельное выполнение: тесты запускаются в несколько процессов одновременно, что ускоряет их выполнение.
🔸 Преимущества для CI: особенно полезно для непрерывной интеграции — тесты запускаются быстрее, что ускоряет релизы.
🔸 Простая установка: ParaTest можно интегрировать почти как замену PHPUnit без серьезных изменений в коде.
Какие проблемы могут возникнуть:
При параллельном запуске могут возникнуть ошибки, связанные с одновременным доступом к базе данных (например, при попытке создать одинаковые таблицы). Для этого нужно изменить конфигурацию тестов, чтобы каждый тест использовал транзакции или запускал миграции до начала тестов.
Как решить:
🔹 Используй
DatabaseTransactions
вместо RefreshDatabase
для предотвращения конфликтов в базе данных при параллельном запуске.🔹 В случае с SQLite можно оставить стандартные настройки, так как каждая база будет независимой.
Результат:
После настройки ParaTest ты можешь увидеть ускорение в 2-10 раз, особенно на крупных проектах. Это заметно сокращает время, которое тратится на тестирование, и помогает быстрее доставлять код в продакшн.
💡 Совет: если проект большой, начинай с разделения тестов на группы и постепенно переводя их на параллельное выполнение, чтобы получать результат сразу.
🔗 Читать Статью
Библиотека пхпшника
👏1😁1
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
В каждой команде бывают специалисты, чья ценность не укладывается в привычные метрики продуктивности. Они редко в топе по количеству закрытых задач, но именно их вклад критически важен для общего результата.
Такие люди помогают менее опытным коллегам разобраться в сложных вопросах, улучшают архитектуру и процессы незаметными правками, предотвращают ошибки ещё до того, как они стали задачами, создают культуру качества, которую не видно в отчётах.
Иногда стоит пересмотреть, как мы оцениваем эффективность. Потому что не все цифры отражают суть.
Please open Telegram to view this post
VIEW IN TELEGRAM
💯11❤2🥱2👍1
Media is too big
VIEW IN TELEGRAM
Разбор ключевых трендов ОС на персональных компьютерах и мобильных устройствах за последние 44 года! Как Windows уступил лидерство мобильным платформам, а Linux закрепил позиции в качестве базиса для множества систем — смотрите в видео.
1981–2000: анализ продаж ПК и опросы пользователей.
2000–2025: отчёты интернет-провайдеров и данные веб-трафика.
🔗 Оригинал с ютуба
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
Почему вы должны указывать тип данных в массивах в PHP
Статья обсуждает важность и преимущества использования типов массивов в PHP для повышения ясности кода, улучшения автодополнения в IDE и улучшения статического анализа.
👉 Читать
Библиотека пхпшника
Статья обсуждает важность и преимущества использования типов массивов в PHP для повышения ясности кода, улучшения автодополнения в IDE и улучшения статического анализа.
👉 Читать
Библиотека пхпшника
👍10❤1
❓ Нужны ли PHP value objects как first-class citizen?
PHP в последние годы очень сильно поменялся. Типизация стала строже, появились enum'ы, readonly-свойства, promoted параметры в конструкторах… Но полноценной поддержки value objects (VO) — по-прежнему нет.
Хочешь передать Email, Amount или Money как обособленную сущность? Пиши класс руками. Хочешь избежать дублирования — делай свой фреймворк, или подтягивай Symfony/Doctrine компоненты. Где компактный и удобный синтаксис? Где встроенные механизмы сравнения, сериализации, валидации?
В других языках (Scala, Kotlin, Rust) это уже часть культуры. А у нас всё ещё debate.
💬 Вопрос к вам, PHP-разработчики:
— Почему, по-вашему, в PHP до сих пор нет нативной поддержки value objects?— Нужны ли они вообще как встроенная часть языка?— Может, достаточно классов и самодисциплины?
Библиотека пхпшника #междусобойчик
PHP в последние годы очень сильно поменялся. Типизация стала строже, появились enum'ы, readonly-свойства, promoted параметры в конструкторах… Но полноценной поддержки value objects (VO) — по-прежнему нет.
Хочешь передать Email, Amount или Money как обособленную сущность? Пиши класс руками. Хочешь избежать дублирования — делай свой фреймворк, или подтягивай Symfony/Doctrine компоненты. Где компактный и удобный синтаксис? Где встроенные механизмы сравнения, сериализации, валидации?
В других языках (Scala, Kotlin, Rust) это уже часть культуры. А у нас всё ещё debate.
💬 Вопрос к вам, PHP-разработчики:
— Почему, по-вашему, в PHP до сих пор нет нативной поддержки value objects?— Нужны ли они вообще как встроенная часть языка?— Может, достаточно классов и самодисциплины?
Библиотека пхпшника #междусобойчик
👍7
Instructor
Библиотека для структурированной экстракции данных на PHP, основанная на LLM. Создан для простоты, прозрачности и контроля.
Пример показывает, как инструктор извлекает структурированную информацию из предоставленного текста (или последовательности сообщений в чате).
🔗 Github
#инструменты
Библиотека для структурированной экстракции данных на PHP, основанная на LLM. Создан для простоты, прозрачности и контроля.
Пример показывает, как инструктор извлекает структурированную информацию из предоставленного текста (или последовательности сообщений в чате).
🔗 Github
#инструменты
👍15❤1
Метод
Это полезно, если вам нужно получить конкретный набор моделей и вы не хотите проверять, соответствует ли полученное количество ожидаемому количеству.
Библиотека пхпшника #буст
findOrFail
также принимает список идентификаторов. Если какой-либо из этих идентификаторов не найден, то он «ошибочен».Это полезно, если вам нужно получить конкретный набор моделей и вы не хотите проверять, соответствует ли полученное количество ожидаемому количеству.
Библиотека пхпшника #буст
👾6👍2❤1😢1
Forwarded from Библиотека задач по PHP | тесты, код, задания
Что выведет код?
❤️ — Fatal error
👍 — 2
🔥 — 1
❤️ — Fatal error
👍 — 2
🔥 — 1
👍93❤18👾1
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
🕸 Как работает протокол HTTP/2: основные принципы и преимущества в сравнении с HTTP/1.1
HTTP/2 — это как переход с однополосной дороги HTTP/1.1 на скоростное шоссе: быстрее, эффективнее и без пробок.
Узнайте, как новые технологии ускоряют загрузку веб-страниц и улучшают работу приложений.
➡️ Читать статью
🐸 Библиотека шарписта
HTTP/2 — это как переход с однополосной дороги HTTP/1.1 на скоростное шоссе: быстрее, эффективнее и без пробок.
Узнайте, как новые технологии ускоряют загрузку веб-страниц и улучшают работу приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3
⬆️ Привязка типизированных вариаций
Знаете ли вы, что можно привязать типизированные переменные к контейнеру? Laravel поставляется с 3 методами, позволяющими вам это сделать: «
Библиотека пхпшника #буст
Знаете ли вы, что можно привязать типизированные переменные к контейнеру? Laravel поставляется с 3 методами, позволяющими вам это сделать: «
when()
», «needs()
» и «give()
» вы можете продолжать использовать DI без опасений 🚀Библиотека пхпшника #буст
👾2❤1