#ЛитКод
Задача: 646. Maximum Length of Pair Chain
Вам дан массив из n пар, где pairs[i] = [lefti, righti] и lefti < righti. Пара p2 = [c, d] следует за парой p1 = [a, b], если b < c. Таким образом можно построить цепочку пар. Верните самую длинную цепочку, которую можно составить. Вам не нужно использовать все заданные интервалы. Вы можете выбирать пары в любом порядке.
Пример:
👨💻 Алгоритм:
1⃣ Отсортируйте пары по второму элементу каждой пары (righti).
2⃣ Используйте динамическое программирование или жадный алгоритм, чтобы построить цепочку максимальной длины.
3⃣ Переберите отсортированные пары и выберите пары, которые могут следовать одна за другой, увеличивая длину цепочки.
😎 Решение:
👉 Новости 👉 Платформа
Задача: 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]
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
#Собес
🤔 Как реализовать аутентификацию в РНР?
Для реализации аутентификации в РНР обычно используется проверка имени пользователя и
пароля. Пароли должны храниться в базе данных в зашифрованном виде (например, с
использованием
состояния пользователя. Важно использовать HTTPS для защиты данных, а также предусмотреть
дополнительные методы безопасности, такие как двухфакторная аутентификация.
👉 Новости 👉 Платформа
Для реализации аутентификации в РНР обычно используется проверка имени пользователя и
пароля. Пароли должны храниться в базе данных в зашифрованном виде (например, с
использованием
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 набирает обороты, особенно среди начинающих.
Полный отчет
👉 Новости 👉 Платформа
В этом году в опросе приняли участие 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 разработчика во «ВКонтакте»
Читай на Хабре
👉 Новости 👉 Платформа
Автор является действующим PHP middle разработчиком в одной средней компании. Занимается разработкой highload микросервисов в B2B сфере. Суммарно обрабатывается около 50к запросов в секунду, хранятся миллиарды записей и находится на поддержке около тысячи интернет‑магазинов.
Он имеет опыт в техническом собеседовании, в том числе и других middle php разработчиков. За свою карьеру провёл пару десятков таких собеседований, по результатам которых было нанято около 5 разработчиков и 2 аутсорс компании.
Автор делится опытом собеседования на позицию middle php разработчика во «ВКонтакте»
Читай на Хабре
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как бы вы описали паттерн проектирования Singleton?
Паттерн Singleton гарантирует, что класс будет иметь только один экземпляр и предоставляет
глобальную точку доступа к этому экземпляру. Это полезно для классов, которые управляют
общими ресурсами, такими как подключение к базе данных или конфигурации приложения.
👉 Новости 👉 Платформа
Паттерн Singleton гарантирует, что класс будет иметь только один экземпляр и предоставляет
глобальную точку доступа к этому экземпляру. Это полезно для классов, которые управляют
общими ресурсами, такими как подключение к базе данных или конфигурации приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
🤔 Какое будущее ждёт PHP?
В этом выпуске мы вместе с Валентином Удальцовым обсуждаем PHP (тот самый язык программирования, про который говорят, что он умирает, а на нём 80% сайтов до сих пор написано).
📱 Смотреть видео
👉 Новости 👉 Платформа
В этом выпуске мы вместе с Валентином Удальцовым обсуждаем PHP (тот самый язык программирования, про который говорят, что он умирает, а на нём 80% сайтов до сих пор написано).
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Какое будущее ждет PHP? / Валентин Удальцов / Организованное программирование / #14
В этом выпуске мы вместе с Валентином Удальцовым, автором канала Пых в Telegram, обсуждаем PHP (тот самый язык программирования, про который говорят, что он умирает, а на нём 80% сайтов до сих пор написано). Поговорим про весь путь его развития — от старых…
#полезное
🥰 MetaStorm — плагин, расширяющий PHPStorm
Этот плагин позволяет расширить поведение PhpStorm и добавить поддержку ваших собственных фреймворков с помощью нескольких строк в файле конфигурации. Он разблокирует ссылки и автодополнение в обычных местах, таких как
Официальный сайт
👉 Новости 👉 Платформа
Этот плагин позволяет расширить поведение PhpStorm и добавить поддержку ваших собственных фреймворков с помощью нескольких строк в файле конфигурации. Он разблокирует ссылки и автодополнение в обычных местах, таких как
method($object,)
, render()
и т. д.Официальный сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
#вакансии
👨💻 PHP Laravel-разработчик в 3ATECH
Компания, разрабатывающая и поддерживающая финтех продукты для глобальных рынков, приглашает PHP-разработчика.
🚩 Условия
🔵 Middle
🔵 От 2000 $
🔵 Удалённая работа
📩 Изучить вакансию
Компания, разрабатывающая и поддерживающая финтех продукты для глобальных рынков, приглашает PHP-разработчика.
📩 Изучить вакансию
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как реализовать внедрение зависимостей (Dependency Injection) в PHP?
Внедрение зависимостей (DI) в PHP осуществляется путём передачи зависимостей (например,
объектов) в класс через его конструктор или методы. Это позволяет легко тестировать классы и
управлять их зависимостями, избегая жёсткой привязки. Современные фреймворки, такие как
Laravel и Symfony, используют контейнеры зависимостей для автоматического управления
внедрением.
👉 Новости 👉 Платформа
Внедрение зависимостей (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
Гитхаб
👉 Новости 👉 Платформа
Это веб-админка на PHP для Redis, Memcached, APCu, OPCache и Realpath.
Проект предлагает минималистичный и быстрый доступ к данным, очистку кеша и мониторинг работы сервисов.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#полезное
👍 CodeViz
Это расширение для VS Code, которое помогает визуализировать кодовую базу, создавая интерактивные карты от общей архитектуры до детальных вызовов функций.
К тому же, можно задавать вопросы на естественном языке и получать наглядные диаграммы, связанные напрямую с кодом
Поддерживается множество языков программирования, базовые функции бесплатны, а продвинутые доступны по подписке
Тык сюда
👉 Новости 👉 Платформа
Это расширение для VS Code, которое помогает визуализировать кодовую базу, создавая интерактивные карты от общей архитектуры до детальных вызовов функций.
К тому же, можно задавать вопросы на естественном языке и получать наглядные диаграммы, связанные напрямую с кодом
Поддерживается множество языков программирования, базовые функции бесплатны, а продвинутые доступны по подписке
Тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
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". Дайте словарь, состоящий из множества корней, и предложение, состоящее из слов, разделенных пробелами, замените все производные в предложении на образующий их корень. Если производное может быть заменено более чем одним корнем, замените его корнем, имеющим наименьшую длину. Верните предложение после замены.
Пример:
👨💻 Алгоритм:
1⃣ Преобразуйте словарь корней в набор для быстрого поиска.
2⃣ Пройдите по каждому слову в предложении и найдите самый короткий корень, который является префиксом этого слова.
3⃣ Замените слово найденным корнем и соберите обновленное предложение.
😎 Решение:
👉 Новости 👉 Платформа
Задача: 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"
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-скиллы в увлекательной форме Попробовать
👉 Новости 👉 Платформа
Это квест, где нужно раскрыть убийство в городе SQL City с помощью SQL-запросов. Начинаешь с обрывков улик и шаг за шагом собираешь доказательства, чтобы вычислить преступника.
Если вы новичок в SQL, не беда — для вас подготовлен специальный пошаговый гид. А для опытных сыщиков сразу доступны данные для расследования.
Короче, если хотите совместить приятное с полезным и прокачать свои SQL-скиллы в увлекательной форме Попробовать
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👍 PHP 8.4 поставляется с удобным классом для работы с числами с плавающей запятой, который предлагает:
🟠 максимальную точность
🟠 объектно-ориентированный подход
🟠 неизменяемые объекты
🟠 удобные цепочные операции
Этот класс является частью расширения BCMath, которое обычно включено по умолчанию
👉 Новости 👉 Платформа
Этот класс является частью расширения BCMath, которое обычно включено по умолчанию
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 TwigStan — статический анализатор для Twig'а
Это статический анализатор для шаблонов Twig, основанный на PHPStan. Он предназначен для выявления ошибок в шаблонах Twig на этапе разработки, что способствует повышению качества и надежности кода. Инструмент компилирует шаблоны Twig в PHP-код, оптимизирует его для лучшего анализа и сообщает об ошибках, указывая исходный шаблон и номер строки, где возникла проблема.
Гитхаб
👉 Новости 👉 Платформа
Это статический анализатор для шаблонов Twig, основанный на PHPStan. Он предназначен для выявления ошибок в шаблонах Twig на этапе разработки, что способствует повышению качества и надежности кода. Инструмент компилирует шаблоны Twig в PHP-код, оптимизирует его для лучшего анализа и сообщает об ошибках, указывая исходный шаблон и номер строки, где возникла проблема.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Как РНР обрабатывает отчёты об ошибках?
PHP обрабатывает ошибки с помощью функции
👉 Новости 👉 Платформа
PHP обрабатывает ошибки с помощью функции
error_reporting()
, которая задаёт уровень отчётности, и директивы display_errors
, контролирующей вывод ошибок. Для логирования ошибок используется log_errors
. Для кастомной обработки ошибок можно использовать функции set_error_handler()
и set_exception_handler()
. В производственной среде рекомендуется отключать вывод ошибок и включать логирование.Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
#вакансии
👨💻 Junior php-разработчик
Удаленно (Москва)
Motivity — это HR-tech сервис с готовой методологией.
Требования
🟠 Ты хорошо понимаешь ООП;
🟠 У тебя есть понимание и практика применения SOLID;
🟠 Хорошее знание PHP 8.1+;
🟠 Хорошее знание Symfony 5.4+ (Forms, Validator, Security, DI, EventDispatcher, Messenger, Console, Serrialization, Cache, Doctrine, Twig).
Подробнее о вакансии
👉 Новости 👉 Платформа
Удаленно (Москва)
Motivity — это HR-tech сервис с готовой методологией.
Требования
Подробнее о вакансии
Please open Telegram to view this post
VIEW IN TELEGRAM
Habr
Вакансия «Junior php-разработчик (symfony)», удаленно, работа в компании «Motivity» — Хабр Карьера
Вакансия «Junior php-разработчик (symfony)», удаленно, работа в компании «Motivity». Полная занятость. Можно удаленно.