PHP Backend | YeaHub – Telegram
PHP Backend | YeaHub
396 subscribers
235 photos
10 videos
430 links
Теория, подготовка к интервью и курсы для PHP разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#полезное
🛞 CRUD на PHP с использованием файберов и пула соединений с PostgreSQL

В новой статье на Хабре автор делится опытом создания прототипа CRUD-приложения, использующего файберы и пул соединений с PostgreSQL. Результаты впечатляют: один процесс PHP CLI обрабатывает 10 параллельных запросов за 2 секунды, благодаря асинхронной обработке и неблокирующему вводу-выводу.

🔍 Ключевые моменты:

Файберы позволяют обрабатывать несколько запросов в одном процессе, улучшая производительность.

Неблокирующий драйвер PostgreSQL обеспечивает асинхронное взаимодействие с базой данных.

Сравнение с сервером на базе PHP-FPM показало значительное преимущество в
производительности при использовании файлов.

Для кого это будет полезно:
🟠 Разработчикам, стремящимся повысить производительность своих приложений.

🟠 Тем, кто интересуется асинхронным программированием в PHP.

🟠 Специалистам, работающим с PostgreSQL и желающим оптимизировать взаимодействие с базой данных.
Хабр

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🥺 Релиз Laravel Nightwatch
Веб-сервис для мониторинга Laravel-приложений. Есть бесплатный план.
https://blog.laravel.com/announcing-laravel-nightwatch

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #mongoDB
🤔 Что такое BSON в MongoDB?

BSON (Binary JSON) - это бинарный формат сериализации, используемый MongoDB для хранения документов. Он расширяет JSON, добавляя поддержку дополнительных типов данных, таких как Date, ObjectId, и бинарные данные, а также оптимизирует производительность операций

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😘 Как проект на Laravel набрал 1000+ звёзд на GitHub

История Laravel Workflow от идеи до популярности
Разработчик Райан МакДэниел поделился историей своего open-source проекта Laravel Workflow. Он начал его как внутренний тул для визуализации бизнес-процессов, а спустя несколько месяцев — получил более 1000 звёзд на GitHub.

В статье:
🟠 Как появилась идея проекта
🟠 Почему MVP важен даже для open-source
🟠 Как он получил первый фидбек и начал собирать аудиторию
🟠 Что сработало: Twitter, документация и честный storytelling
🟠 Какие уроки он вынес для себя как разработчик и автор OSS

Если вы тоже мечтаете запустить что-то своё — обязательно прочтите. Много практики и честных инсайтов.
Читаем

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#Собес #mongoDB
🤔 Что такое MongoDB и чем она отличается от традиционных реляционных баз данных?

MongoDB - это NoSQL-база данных, ориентированная на документы. Она отличается гибкостью, так как не требует заранее заданной схемы, и возможностью горизонтального масштабирования. В отличие от реляционных баз, данные хранятся в формате BSON (расширение JSON), что делает MongoDB более подходящей для работы с неструктурированными данными.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#полезное
🥄 Thumbhash PHP — читаемые идентификаторы

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

Thumbhash — это компактное представление плейсхолдера для изображения. Создавайте его в соответствии с вашими данными в то время как реальное изображение грузится для более плавной загрузки.
Гитхаб

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😬 Это не задокументировано, но в Laravel можно подписаться на событие MessageSending и предотвратить отправку письма, если выполняется определённое условие.

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

Можно изменить email «на лету» и убрать из него адреса, попавшие в блоклист. Если после этого не остаётся ни одного адреса для отправки, достаточно вернуть false — письмо будет тихо отброшено и не уйдёт

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😐 Фича дня: WeakMap в PHP
Иногда нужно привязать данные к объекту, но не мешать сборщику мусора его удалять.
Обычные массивы — не вариант. Но есть WeakMap.

Что это даёт?
– Кэш на уровне объектов
– Без утечек памяти
– Удобно для библиотек и DI-контейнеров

Где применимо:
– Lazy-loading
– Трассировка состояния
– Симпатичная альтернатива SplObjectStorage

Работает с PHP 8.0+

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Какова роль профайлера в MongoDB?

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

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👋 «Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)»

В жизни любого разработчика наступает момент, когда он роняет прод.

Сегодня мы услышим историю от разработчика из популярной edtech-компании о том, как это было у них, и как он оперативно исправлял ошибки, связанные с тонкостями PostgreSQL.
Хабр

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Какие модели данных существуют в MongoDB?

MongoDB поддерживает две основные модели данных: вложенные (embedded) и нормализованные (normalized). Вложенные модели объединяют данные в одном документе, а нормализованные используют ссылки между документами.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 Совет по Laravel: хватит писать кастомную логику повторных попыток для нестабильных API

Используйте Http::retry() — он автоматически повторяет неудачные запросы с экспоненциальной задержкой между попытками.
Ссылка на документацию

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
1
#статьи
😵‍💫 strlen() vs mb_strlen(): Почему 71% PHP-разработчиков ошибаются

В этой статье разберем, как PHP работает со строками и почему даже простой вызов strlen() может привести к неожиданным результатам.

На примере крайне простой задачи "что выведет echo strlen('привет!');" посмотрим, что и как влияет на подсчет длины строки, заглянем внутрь реализации strlen() и развенчаем миф о строках как массивах.
Хабр

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😱 Удобный шпаргалка с самыми полезными константами языка PHP

От DIR до UPLOAD_ERR_NO_FILE — всё аккуратно сгруппировано и готово к версии 8.4

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #mongoDB
🤔 Какие языки программирования поддерживает MongoDB?

MongoDB официально поддерживает языки С, C++, C#, Java, Node.js, Perl, PHP, ython, Ruby, Scala, Go и Erlang. Также есть драйверы, созданные сообществом для других языков.

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨‍💻 Совет по Laravel

Делаешь несколько API-запросов? Не отправляй их по очереди!

Вместо этого используй Http::pool() — он позволяет запускать запросы параллельно и прокачать производительность, выполнив их все одновременно.
Ссылка на документацию

👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 717. 1-bit and 2-bit Characters

У нас есть два специальных символа: первый символ может быть представлен одним битом 0. Второй символ может быть представлен двумя битами (10 или 11). Если задан двоичный массив bits, который заканчивается 0, верните true, если последний символ должен быть однобитным.

Пример:
Input: bits = [1,0,0]
Output: true


👨‍💻 Алгоритм:

1⃣Инициализируйте индекс для итерации по массиву.

2⃣Пройдите по массиву, увеличивая индекс на 1, если текущий бит равен 0, и на 2, если текущий бит равен 1.

3⃣Проверьте, достиг ли индекс последнего элемента массива, и верните результат.

😎 Решение:
function isOneBitCharacter($bits) {
$i = 0;
while ($i < count($bits) - 1) {
$i += $bits[$i] + 1;
}
return $i == count($bits) - 1;
}


👉Новости 👉База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1