PHP задачи с собеседований
رفتن به کانال در Telegram
Задачи, тесты и теоретические вопросы по PHP. Прислать задачу/вопрос в дар: @cyberJohnny Сотрудничество: @cyberJohnny
نمایش بیشتر2 906
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
-930 روز
آرشیو پست ها
Транзакция читает строку дважды в рамках одной транзакции и получает разные результаты, хотя сама строку не меняла. Какой это феномен и на каком уровне изоляции он устраняется?
Что происходит при выполнении git commit --amend с точки зрения объектной модели Git?
🔄Вы используете шаблоны, запросы и конфигурации каждый день. Но понимаете ли вы, как они устроены внутри?
📅На открытом уроке за 60 минут разберём, как работает любой язык — и соберём свой DSL на PHP. Покажем полный конвейер: от исходного текста до результата. Вы увидите, как писать лексер, строить синтаксическое дерево и реализовывать интерпретатор.
Всё — на чистом PHP, без магии и скрытых механизмов. Это даёт не просто новый навык, а понимание, как работают инструменты, которыми вы уже пользуетесь: шаблонизаторы, запросы, правила. И как создавать собственные решения под задачи бизнеса — без хардкода и сложных обходных путей.
💡Открытый урок проходит в преддверии старта курса «PHP-разработчик. Продвинутый уровень» 29 апреля в 20:00 МСК. Регистрация: https://clck.ru/3TCP4E
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
❓ Что такое Lazy Collections в Laravel?
Обычная Collection загружает всё в память сразу. При работе с большими объёмами данных — это проблема.
// ❌ Загрузит ВСЕ записи в память
$users = User::all()->filter(...)->map(...);
// ✅ Lazy Collection — обрабатывает по одной записи через генератор
User::cursor()->filter(function (User $user) {
return $user->is_active;
})->each(function (User $user) {
ProcessUser::dispatch($user);
});
cursor() использует PDO fetchRow под капотом — в памяти одновременно одна запись.
Lazy Collection из файла:
// Обработка огромного CSV без OutOfMemoryError
$collection = LazyCollection::make(function () {
$handle = fopen('huge_file.csv', 'r');
while ($row = fgetcsv($handle)) {
yield $row;
}
});
$collection->skip(1)->chunk(100)->each(function ($rows) {
ImportBatch::dispatch($rows->toArray());
});
Когда использовать
— 10k+ записей в обработке → cursor() + LazyCollection
— Файлы, стримы, внешние API с пагинацией → LazyCollection с генератором
Важно: методы типа count() и last() материализуют коллекцию. Их лучше избегать в lazy-контексте.
Что произойдёт, если два воркера вызовут deductBalance(1, 100) одновременно при балансе пользователя 150?
🏃♀️ Мы собрали бесплатный мега-гайд по ии-агентам 👇
В первой части постов навалили жесткой базы, чтобы вправить мозги на место. Во второй дали конкретные инструменты, фреймворки и пошаговые инструкции, что нужно кодить прямо сейчас.
Часть 1. Введение, юзкейсы и реальность
Разбираемся с терминами, снимаем розовые очки и смотрим, где ИИ реально приносит бабки, а где только жжет нервы:
1. «Так что вообще считается AI-агентом?» (https://t.me/abc_for_it/2354)
2. «Где тут бот, а где уже AI-агент?» (https://t.me/abc_for_it/2355)
3. «Не надо пихать AI-агента в каждую задачу» (https://t.me/abc_for_it/2360)
4. «Что уже можно спокойно делать через AI-агентов?» (https://t.me/abc_for_it/2361)
5. «А что через AI-агентов пока лучше не трогать?» (https://t.me/abc_for_it/2362)
Часть 2. Изнанка, ошибки и архитектура
Как всё это устроено под капотом, чтобы не слить бюджет и не наломать дров на старте:
6. «Можно ли просто сесть вечером и собрать себе AI-агента?» (https://t.me/abc_for_it/2363)
7. «С чего вообще начать, если хочется попробовать AI-агентов» (https://t.me/abc_for_it/2364)
8. «Почему AI-агент может внезапно начать творить дичь» (https://t.me/abc_for_it/2365)
9. «Где AI-агенты реально экономят время, а где только добавляют возни» (https://t.me/abc_for_it/2366)
10. «Почему они жрут столько денег?» (https://t.me/abc_for_it/2367)
Часть 3. Хардкорная практика (Что делать руками)
Хватит теории. Открываем ноут, запускаем Cursor и делаем нормальные, отказоустойчивые системы:
11. «Почему одного промпта мало?» (https://t.me/abc_for_it/2368)
12. «Почему AI-агенту мало просто “дать доступ к данным”» (https://t.me/abc_for_it/2378)
13. «Если не следить за AI-агентом, он быстро начинает жить своей жизнью» (https://t.me/abc_for_it/2379)
14. «Собрать демку легко. Но как же сделать нормально» (https://t.me/abc_for_it/2382)
15. «Как сделать, чтобы это не развалилось через неделю?» (https://t.me/abc_for_it/2383)
👍 Сохраняйте пост в избранное, чтобы не потерять.
🤫 А завтра стартует наш курс по ии-агентам (https://clc.to/MhAekA)
Какой основной компонент используется для хранения данных в Elasticsearch?
Symfony Workflow: конечный автомат для реализации бизнес-логики. Бесплатный урок курса «Symfony Framework»
Во многих приложениях бизнес-логика держится на статусах: заказ создан, оплачен, отправлен, доставлен. Пока таких состояний мало, всё кажется простым. Но как только процесс растёт, цепочки
if/else начинают расползаться по проекту, логика дублируется, а добавление нового статуса превращается в риск для всей системы.
📅 На открытом уроке 22 апреля:
— Разберём, как использовать Symfony Workflow для формализации бизнес-процессов через конечный автомат.
— Покажем, чем конечный автомат отличается от рабочего процесса, когда применять каждый подход, как описывать состояния и переходы в YAML и как Symfony умеет автоматически визуализировать процесс.
— На практическом примере рассмотрим сущность заказа со статусами new → paid → shipped → delivered, методы can() и apply(), а также построение схемы состояний через workflow:dump.
Урок не для тех, кто считает, что строковое поле status и набор if/else — это нормальная архитектура «на вырост», и не для тех, кто не работает со сложной бизнес-логикой в приложении.👉 Записаться: https://clck.ru/3T94WW Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Какова временная сложность сортировки слиянием (Merge Sort) в худшем случае?
🤔 Какая главная проблема этого кода и как её правильно решить?
🧭 Разбираем современный PHP вместе с Podlodka PHP Crew
PHP-стек может устаревать незаметно: решения вроде бы работают, но скорость разработки снижается, стоимость поддержки растёт, а количество возможностей сокращается.
💡 Эксперты Podlodka PHP Crew собрали онлайн-конференцию «Современный стек PHP-разработки», чтобы разобраться, как всё устроено сегодня.
🗓С 20 по 24 апреля участники:
• изучат, как сегодня запускают PHP-приложения (worker mode, новые рантаймы, FrankenPHP),
• посмотрят, как изменилась инфраструктура и что пора выкинуть из Docker-стека,
• обсудят, как реально применять AI-агентов в разработке (не только писать код, но и расследовать баги и планировать изменения),
• разберут практические кейсы (например, в онлайн-режиме будут запускать мультиплеерную игру на PHP с Temporal и RoadRunner),
• и в целом поймут, какие инструменты и подходы действительно стоит внедрять в 2026.
Формат — пять дней живых Zoom-сессий по утрам и вечерам, закрытое комьюнити в Telegram и общение со спикерами.
Если хотите обновить свой стек и лучше понимать, куда движется разработка на PHP — обязательно присоединяйтесь👇
🎟Подробности и билеты
По промокоду php_crew_8_UdtKIs получите сикду🎁
💬 Обратная связь
Какие темы освещать чаще?
🔥 — PHP Core
👍🏼 — Laravel / Symfony
❤️ — Паттерны и дизайн
😁 — Предложу в комменты
Локализация текстов в Symfony: от статических переводов к динамическим данным из базы. Бесплатный урок курса «Symfony Framework»
Перевести интерфейс через файлы — это только начало. Настоящие сложности начинаются тогда, когда переводить нужно не статичные строки, а содержимое из базы данных, которое живёт в административной панели, меняется редакторами и должно оставаться управляемым с точки зрения архитектуры.
📅 На открытом уроке 15 апреля в 20:00:
— Разберём реальный сценарий локализации в Symfony — от стандартного подхода со статическими переводами до более сложной работы с динамическими текстами из базы данных.
— Покажем возможности компонента
symfony/translation, разберём подходы к хранению переводов, варианты моделей данных и практическую реализацию получения локализованного содержимого через Doctrine.
Урок не для тех, кто хочет решить многоязычность «одной таблицей на всё», не думает о поддержке архитектуры и считает, что локализация заканчивается на переводе кнопок и заголовков.👉 Записаться: https://clck.ru/3T2KwM Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
