Telegram Web
PHP под капотом: как работает генерация случайных чисел

Вы когда-нибудь задумывались, как компьютер, эта идеальная детерминированная машина, выполняющая команды с математической точностью, умудряется генерировать «случайные» числа? Ведь в его цифровом мире нет места настоящему хаосу — только чёткие алгоритмы и предсказуемые состояния.

Сегодня мы заглянем под капот PHP и разберёмся, как устроена эта иллюзия случайности!

🔗 Хабр
👍41
Метод «skip» у планировщика

Иногда вы можете захотеть пропустить выполнение команды, основываясь на определенном условии. Laravel включает метод «skip» для выполнения этого 🚀

Библиотека пхпшника #буст
👍81
Forwarded from hahacker_news
📚🔄 OTUS – лауреат премии «Цифровые вершины»: как подписка на обучение меняет 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
12🥱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 в сотни раз быстрее


👉 Читать статью
👍134
🔧 CLI-лайфхак для PHP-разработчиков: Быстрое выполнение одноразовых команд с помощью опции -r 🚀

Полезная команда, которая позволяет выполнять небольшие фрагменты PHP-кода прямо из командной строки без создания отдельных файлов. Это особенно удобно для быстрого тестирования идей или выполнения одноразовых задач 🖥️

Как это сделать?

1. Откройте терминал на вашем компьютере.

2 Введите следующую команду, заменив код внутри одинарных кавычек на нужный вам PHP-код:
php -r 'echo «Привет, мир!\n»;'


Почему это удобно?

🔸 Быстрота: нет необходимости создавать отдельный файл для выполнения небольшого фрагмента кода.

🔸 Удобство: идеальный способ для тестирования небольших функций или выражений.

🔸 Гибкость: позволяет комбинировать PHP с другими командными инструментами для автоматизации задач.

Обратите внимание:

Экранирование кавычек: при использовании одинарных кавычек внутри PHP-кода их необходимо экранировать обратным слэшем (\'), чтобы избежать конфликтов с внешними кавычками.
php -r 'echo \'Это строка с одинарными кавычками.\' . «\n»;'


Библиотека пхпшника #буст
👍12😁5👾4🥱2👏1
📣 Программисты, нужен ваш совет

Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!

Какой ноут спасает вас в кодинге и почему?

Расскажите все:

🔹 Что за зверь (модель, начинка)
🔹 Где жмет и где радует в ежедневной работе
🔹 На какие фишки смотреть при выборе
🔹 Как вам с ним живется

Топовые советы попадут в нашу статью. Сделаем годный гайд, который реально поможет коллегам.

💬 Делитесь в комментах
🤔1
🔥 Ускоряем тесты с ParaTest

Если вы часто сталкиваетесь с медленными тестами и хоите ускорить процесс разработки, стоит попробовать ParaTest. Этот инструмент позволяет запускать тесты параллельно, что значительно сокращает время выполнения, особенно на больших проектах.

Почему стоит использовать ParaTest:
🔸 Параллельное выполнение: тесты запускаются в несколько процессов одновременно, что ускоряет их выполнение.

🔸 Преимущества для CI: особенно полезно для непрерывной интеграции — тесты запускаются быстрее, что ускоряет релизы.

🔸 Простая установка: ParaTest можно интегрировать почти как замену PHPUnit без серьезных изменений в коде.

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

Как решить:
🔹 Используй DatabaseTransactions вместо RefreshDatabase для предотвращения конфликтов в базе данных при параллельном запуске.

🔹 В случае с SQLite можно оставить стандартные настройки, так как каждая база будет независимой.

Результат:
После настройки ParaTest ты можешь увидеть ускорение в 2-10 раз, особенно на крупных проектах. Это заметно сокращает время, которое тратится на тестирование, и помогает быстрее доставлять код в продакшн.

💡 Совет: если проект большой, начинай с разделения тестов на группы и постепенно переводя их на параллельное выполнение, чтобы получать результат сразу.

🔗 Читать Статью

Библиотека пхпшника
👏1😁1
🖥 Метрики эффективности сотрудника

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

Такие люди помогают менее опытным коллегам разобраться в сложных вопросах, улучшают архитектуру и процессы незаметными правками, предотвращают ошибки ещё до того, как они стали задачами, создают культуру качества, которую не видно в отчётах.

Иногда стоит пересмотреть, как мы оцениваем эффективность. Потому что не все цифры отражают суть.

🔗 Подробности в статье

🐸 Библиотека джависта
Please open Telegram to view this post
VIEW IN TELEGRAM
💯112🥱2👍1
Media is too big
VIEW IN TELEGRAM
🖥 Эволюция популярных операционных систем: 1981–2025

Разбор ключевых трендов ОС на персональных компьютерах и мобильных устройствах за последние 44 года! Как Windows уступил лидерство мобильным платформам, а Linux закрепил позиции в качестве базиса для множества систем — смотрите в видео.

➡️ Что внутри

🪟 Windows — отображены главные версии, от первых релизов до последних обновлений.

🍏 Macintosh (Classic Mac OS, OS X, macOS) — сгруппированы по поколениям без деления на подверсии.

🖥 Linux — отдельная категория с учётом популярных дистрибутивов: Ubuntu, Debian, Fedora и других.

🖥 Мобильные ОС — отражён переход с ПК на смартфоны и планшеты.

🔹 Откуда данные

1981–2000: анализ продаж ПК и опросы пользователей.

2000–2025: отчёты интернет-провайдеров и данные веб-трафика.

🔗 Оригинал с ютуба
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍1
Почему вы должны указывать тип данных в массивах в PHP

Статья обсуждает важность и преимущества использования типов массивов в PHP для повышения ясности кода, улучшения автодополнения в IDE и улучшения статического анализа.

👉 Читать

Библиотека пхпшника
👍101
Нужны ли 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?— Нужны ли они вообще как встроенная часть языка?— Может, достаточно классов и самодисциплины?

Библиотека пхпшника #междусобойчик
👍7
Instructor

Библиотека для структурированной экстракции данных на PHP, основанная на LLM. Создан для простоты, прозрачности и контроля.

Пример показывает, как инструктор извлекает структурированную информацию из предоставленного текста (или последовательности сообщений в чате).

🔗 Github

#инструменты
👍151
Метод findOrFail также принимает список идентификаторов. Если какой-либо из этих идентификаторов не найден, то он «ошибочен».

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

Библиотека пхпшника #буст
👾6👍21😢1
Что выведет код?

❤️ — Fatal error

👍 — 2

🔥 — 1
👍9318👾1
🕸 Как работает протокол HTTP/2: основные принципы и преимущества в сравнении с HTTP/1.1

​HTTP/2 — это как переход с однополосной дороги HTTP/1.1 на скоростное шоссе: быстрее, эффективнее и без пробок.

Узнайте, как новые технологии ускоряют загрузку веб-страниц и улучшают работу приложений.

➡️ Читать статью

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3
⬆️ Привязка типизированных вариаций

Знаете ли вы, что можно привязать типизированные переменные к контейнеру? Laravel поставляется с 3 методами, позволяющими вам это сделать: «when()», «needs()» и «give()» вы можете продолжать использовать DI без опасений 🚀

Библиотека пхпшника #буст
👾21
2025/07/12 22:45:46
Back to Top
HTML Embed Code: