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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#вакансии
👨‍💻 Backend-разработчик (PHP)

Локация: Удалённо в РФ
Компания: CODEX
ЗП: от 150 000 до 250 000 р. на руки
Занятость: Полная

Грейд: Middle/ Senior

🚩Основные задачи
🔵 Разработка высоконагруженных сервисов
🔵 Участие в принятии технических решений и планировании процесса разработки;
🔵 Взаимодействие с фронтэнд и мобильными разработчиками для обсуждения интерфейса бекэнда.

Требования
🔵 php 8.3+
🔵 symfony 6+
🔵 mysql 8
🔵 docker/k8s
🔵 git/github/jira
🔵 azure
🔵 rabbitmq/amqp

🚩 Условия:
🟡 Конкурентная заработная плата и возможность карьерного роста;
🟡 Гибкий график работы и комфортные условия труда;
🟡 Возможность участия в интересных проектах, амбициозных проектах и обучение новым технологиям;
🟡 Возможности для профессионального и личного роста;
🟡 Работа в крутой команде профессионалов;
🟡 Дружелюбная атмосфера и поддержка коллег.

💬 Резюме отправлять: @nikita_recr

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

Автозагрузка в РНР позволяет автоматически загружать классы по мере их необходимости, без использования include или require. Основной механизм - это функция spl_ autoload_register() , которая регистрирует функцию для автозагрузки. Кроме того, стандарт PSR-4, поддерживаемый Composer, организует автозагрузку классов, следуя определённой структуре каталогов и именования.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Топ-6 стратегий для снижения задержек в системах

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

🟠 Caching
🟠 CDN
🟠 Load Balancers
🟠 Asynchronous Task Processing
🟠 Database Indexing
🟠 Pre-caching

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой метод в PHP используется для проверки, начинается ли строка с заданной подстроки?
Anonymous Quiz
58%
str_starts_with
12%
starts_with
31%
str_begins
0%
begins_with
#ЛитКод
Задача: 646. Maximum Length of Pair Chain

Вам дан массив из n пар, где pairs[i] = [lefti, righti] и lefti < righti. Пара p2 = [c, d] следует за парой p1 = [a, b], если b < c. Таким образом можно построить цепочку пар. Верните самую длинную цепочку, которую можно составить. Вам не нужно использовать все заданные интервалы. Вы можете выбирать пары в любом порядке.

Пример:
Input: nums = [1,2,2,4]
Output: [2,3]


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

1⃣Отсортируйте пары по второму элементу каждой пары (righti).

2⃣Используйте динамическое программирование или жадный алгоритм, чтобы построить цепочку максимальной длины.

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

😎 Решение:
function findLongestChain($pairs) {
usort($pairs, function($a, $b) {
return $a[1] - $b[1];
});
$currentEnd = -PHP_INT_MAX;
$count = 0;
foreach ($pairs as $pair) {
if ($currentEnd < $pair[0]) {
$currentEnd = $pair[1];
$count++;
}
}
return $count;
}


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

Для реализации аутентификации в РНР обычно используется проверка имени пользователя и
пароля. Пароли должны храниться в базе данных в зашифрованном виде (например, с
использованием bcrypt ). При успешной аутентификации создаётся сессия для отслеживания
состояния пользователя. Важно использовать HTTPS для защиты данных, а также предусмотреть
дополнительные методы безопасности, такие как двухфакторная аутентификация.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN 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