PHP Backend | YeaHub
224 subscribers
131 photos
7 videos
233 links
Теория, подготовка к интервью и курсы для PHP разработчиков

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

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

Для связи: @ruslan_kuyanets
Download Telegram
🤔 Какой из методов в PHP используется для шифрования данных с использованием библиотеки OpenSSL?
Anonymous Quiz
54%
openssl_encrypt
21%
encrypt
7%
secure_encrypt
18%
data_encrypt
#новости
🤓 JetBrains выпустили отчет о состоянии PHP в 2024 году

В этом году в опросе приняли участие 2 660 PHP-разработчиков со всего мира. По уровню опыта преобладают мидлы. 86% уже используют PHP 8, но его распространение идёт медленнее, чем в своё время у PHP 7.

Среди фреймворков Laravel безоговорочно лидирует, а его популярность продолжает расти. В плане инструментов PhpStorm остаётся главным выбором разработчиков, однако VS Code набирает обороты, особенно среди начинающих.
Полный отчет

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
📞 Как НЕ НАДО собеседовать middle разработчиков

Автор является действующим PHP middle разработчиком в одной средней компании. Занимается разработкой highload микросервисов в B2B сфере. Суммарно обрабатывается около 50к запросов в секунду, хранятся миллиарды записей и находится на поддержке около тысячи интернет‑магазинов.
Он имеет опыт в техническом собеседовании, в том числе и других middle php разработчиков. За свою карьеру провёл пару десятков таких собеседований, по результатам которых было нанято около 5 разработчиков и 2 аутсорс компании.

Автор делится опытом собеседования на позицию middle php разработчика во «ВКонтакте»
Читай на Хабре

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как бы вы описали паттерн проектирования Singleton?

Паттерн Singleton гарантирует, что класс будет иметь только один экземпляр и предоставляет
глобальную точку доступа к этому экземпляру. Это полезно для классов, которые управляют
общими ресурсами, такими как подключение к базе данных или конфигурации приложения.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🥰 MetaStorm — плагин, расширяющий PHPStorm

Этот плагин позволяет расширить поведение PhpStorm и добавить поддержку ваших собственных фреймворков с помощью нескольких строк в файле конфигурации. Он разблокирует ссылки и автодополнение в обычных местах, таких как method($object,), render() и т. д.
Официальный сайт

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#вакансии
👨‍💻 PHP Laravel-разработчик в 3ATECH

Компания, разрабатывающая и поддерживающая финтех продукты для глобальных рынков, приглашает PHP-разработчика.

🚩Условия

🔵 Middle
🔵 От 2000 $
🔵 Удалённая работа

📩 Изучить вакансию
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как реализовать внедрение зависимостей (Dependency Injection) в PHP?

Внедрение зависимостей (DI) в PHP осуществляется путём передачи зависимостей (например,
объектов) в класс через его конструктор или методы. Это позволяет легко тестировать классы и
управлять их зависимостями, избегая жёсткой привязки. Современные фреймворки, такие как
Laravel и Symfony, используют контейнеры зависимостей для автоматического управления
внедрением.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 phpCacheAdmin v2

Это веб-админка на PHP для Redis, Memcached, APCu, OPCache и Realpath.

Проект предлагает минималистичный и быстрый доступ к данным, очистку кеша и мониторинг работы сервисов.

🟠 Простая установка без базы данных
🟠 Поддержка Docker
🟠 Гибкая конфигурация через config.php или ENV
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
👍 CodeViz

Это расширение для VS Code, которое помогает визуализировать кодовую базу, создавая интерактивные карты от общей архитектуры до детальных вызовов функций.

К тому же, можно задавать вопросы на естественном языке и получать наглядные диаграммы, связанные напрямую с кодом

Поддерживается множество языков программирования, базовые функции бесплатны, а продвинутые доступны по подписке
Тык сюда

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#советы
🤓 Быстрый совет

Нужно легко подсчитать уникальные значения столбца в модели Eloquent? Вот удобный способ сделать это.

Обратите внимания, что этот метод нужно разместить в базовой модели, от которой будут наследоваться другие модели.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Какова цель использования интерфейсов в PHP?

Интерфейсы в РНР используются для создания контракта, который требует от классов реализации
определённых методов, без определения того, как именно эти методы должны быть реализованы.
Это помогает соблюдать принцип абстракции, улучшает организацию кода и упрощает
взаимодействие между различными частями приложения. Интерфейсы также способствуют лучшей
поддерживаемости и расширяемости кода.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 648. Replace Words

В английском языке есть понятие "корень", за которым может следовать какое-то другое слово, чтобы образовать другое более длинное слово - назовем это слово производным. Например, если за корнем "help" следует слово "ful", мы можем образовать производное "helpful". Дайте словарь, состоящий из множества корней, и предложение, состоящее из слов, разделенных пробелами, замените все производные в предложении на образующий их корень. Если производное может быть заменено более чем одним корнем, замените его корнем, имеющим наименьшую длину. Верните предложение после замены.

Пример:
Input: dictionary = ["cat","bat","rat"], sentence = "the cattle was rattled by the battery"
Output: "the cat was rat by the bat"


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

1⃣Преобразуйте словарь корней в набор для быстрого поиска.

2⃣Пройдите по каждому слову в предложении и найдите самый короткий корень, который является префиксом этого слова.

3⃣Замените слово найденным корнем и соберите обновленное предложение.

😎 Решение:
function replaceWords($roots, $sentence) {
$rootSet = array_flip($roots);

$replace = function($word) use ($rootSet) {
for ($i = 1; $i <= strlen($word); $i++) {
if (isset($rootSet[substr($word, 0, $i)])) {
return substr($word, 0, $i);
}
}
return $word;
};

$words = explode(" ", $sentence);
$replacedWords = array_map($replace, $words);

return implode(" ", $replacedWords);
}


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое трейты в РНР?

Трейты в РНР - это механизм для повторного использования кода в разных классах без
необходимости использовать множественное наследование. Они позволяют включать набор
методов в класс, обеспечивая горизонтальное повторное использование кода.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
👨‍💻 Интерактивная игрушка SQL Murder Mystery

Это квест, где нужно раскрыть убийство в городе SQL City с помощью SQL-запросов. Начинаешь с обрывков улик и шаг за шагом собираешь доказательства, чтобы вычислить преступника.

Если вы новичок в SQL, не беда — для вас подготовлен специальный пошаговый гид. А для опытных сыщиков сразу доступны данные для расследования.

Короче, если хотите совместить приятное с полезным и прокачать свои SQL-скиллы в увлекательной форме Попробовать

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 PHP 8.4 поставляется с удобным классом для работы с числами с плавающей запятой, который предлагает:

🟠максимальную точность
🟠объектно-ориентированный подход
🟠неизменяемые объекты
🟠удобные цепочные операции

Этот класс является частью расширения BCMath, которое обычно включено по умолчанию

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 TwigStan — статический анализатор для Twig'а

Это статический анализатор для шаблонов Twig, основанный на PHPStan. Он предназначен для выявления ошибок в шаблонах Twig на этапе разработки, что способствует повышению качества и надежности кода. Инструмент компилирует шаблоны Twig в PHP-код, оптимизирует его для лучшего анализа и сообщает об ошибках, указывая исходный шаблон и номер строки, где возникла проблема.
Гитхаб

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как РНР обрабатывает отчёты об ошибках?

PHP обрабатывает ошибки с помощью функции error_reporting() , которая задаёт уровень отчётности, и директивы display_errors , контролирующей вывод ошибок. Для логирования ошибок используется log_errors . Для кастомной обработки ошибок можно использовать функции set_error_handler() и set_exception_handler() . В производственной среде рекомендуется отключать вывод ошибок и включать логирование.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#вакансии
👨‍💻 Junior php-разработчик

Удаленно (Москва)

Motivity 
— это HR-tech сервис с готовой методологией.

Требования
🟠 Ты хорошо понимаешь ООП;
🟠 У тебя есть понимание и практика применения SOLID;
🟠 Хорошее знание PHP 8.1+;
🟠 Хорошее знание Symfony 5.4+ (Forms, Validator, Security, DI, EventDispatcher, Messenger, Console, Serrialization, Cache, Doctrine, Twig).
Подробнее о вакансии

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
😊 Быстрый совет по Laravel: Ограничение скорости выполнения задач

Когда-нибудь приходилось ограничивать частоту выполнения задач?

Будь то защита API от перегрузки или ограничение количества задач для пользователей бесплатного тарифа, Laravel позволяет легко задавать лимиты и использовать их прямо из коробки

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

Статья описывает, как команда Яндекс Еды оптимизировала свой монолитный PHP-сервис, снизив нагрузку на MySQL

Основные проблемы включали высокую загрузку CPU и памяти, сложность управления изменениями в структуре базы данных и срабатывание механизма Flow Control в Galera Cluster, что приводило к задержкам и сбоям в обслуживании запросов.

Для решения этих проблем команда распределила ответственность за таблицы между командами, анализировала медленные запросы с помощью утилиты pt-query-digest и внедрила различные оптимизации, включая использование кэширования и денормализацию данных

В результате удалось значительно снизить нагрузку на базу данных и улучшить производительность системы
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM