EasyТеория3 min

Обзор экзамена Laravel Senior Developer

Формат экзамена, вес тем, проходной балл, стратегия подготовки, управление временем, типы вопросов, распространённые ошибки

Сертификация Laravel подтверждает глубокие знания фреймворка и способность решать сложные задачи. Это руководство по подготовке и сдаче экзамена.

Формат экзамена

Основные параметры

Параметр Значение
Количество вопросов 45 вопросов
Время 60 минут
Проходной балл ~70% (примерно 32 из 45)
Формат Multiple choice (один или несколько правильных ответов)
Пересдача Доступна через 2 недели
Срок действия Обычно 1-2 года
Язык Английский
Формат сдачи Онлайн с прокторингом

Правила во время экзамена

  • Нельзя использовать IDE, документацию или поисковые системы
  • Камера и микрофон должны быть включены
  • Нельзя покидать рабочее место
  • Один монитор, чистый рабочий стол
  • Нет бумажных заметок (или ограничены)

Вес тем (Topics Weight)

Распределение по темам

Architecture (Service Container, Providers, Facades)    ████████████ 12%
Routing                                                  ████████ 8%
Middleware                                               ██████ 6%
Controllers                                              ██████ 6%
Requests / Validation                                    ████████ 8%
Views / Blade                                            ██████ 6%
URL Generation                                           ████ 4%
Sessions                                                 ████ 4%
Eloquent ORM                                             ████████████████ 16%
Database / Migrations / Seeds                            ████████ 8%
Collections                                              ██████ 6%
Events / Queues                                          ██████ 6%
Testing                                                  ██████ 6%
Security / Auth                                          ████ 4%

Ключевые наблюдения:

  1. Eloquent ORM -- 16% -- самая объёмная тема. Уделите ей максимум внимания
  2. Architecture -- 12% -- Service Container, Providers, Facades. Без этого не сдать
  3. Routing + Middleware + Controllers = 20% -- базовые концепции, но с подвохами
  4. Database + Collections = 14% -- знайте разницу между Eloquent и базовыми коллекциями
  5. Testing -- 6% -- немного, но вопросы обычно сложные

Типы вопросов

1. Прямой вопрос на знание API

Вопрос: Какой метод используется для soft delete записи в Eloquent?

a) $model->remove()
b) $model->softDelete()
c) $model->delete()  ✓
d) $model->trash()

Стратегия: Прямое знание API. Запоминайте точные имена методов.

2. Вопрос на понимание поведения

Вопрос: Что вернёт User::find(999) если пользователь с ID 999 не существует?

a) Пустой объект User
b) false
c) Исключение ModelNotFoundException
d) null  ✓

Стратегия: Понимание того, ЧТО возвращает каждый метод.

3. Вопрос с кодом

Вопрос: Какой результат выполнения кода?

$users = User::where('active', true)->get();
$names = $users->pluck('name');

Тип $names:

a) array
b) Illuminate\Database\Eloquent\Collection
c) Illuminate\Support\Collection  ✓
d) Generator

Стратегия: Трассировка кода в голове. Знание типов возврата.

4. Вопрос-ловушка

Вопрос: Какой из вариантов корректно определяет scope?

a) public static function scopeActive($query) { ... }
b) public function scopeActive(Builder $query): void { ... }  ✓
c) protected function active(Builder $query): void { ... }
d) public function Active(Builder $query): Builder { ... }

Стратегия: Знание точного синтаксиса. Scope должен быть public, начинаться с scope, принимать Builder.

5. Вопрос "что НЕ является"

Вопрос: Что НЕ является типом Eloquent relationship?

a) hasOne
b) belongsTo
c) hasReference  ✓
d) morphToMany

Стратегия: Знание ВСЕХ типов отношений наизусть.

Стратегия подготовки

Фаза 1: Основы (2-3 недели)

  1. Пройти все разделы курса -- от Architecture до Testing
  2. Решить все quiz-тесты -- не пропускать
  3. Записать "белые пятна" -- темы, где допускаете ошибки

Фаза 2: Углубление (2-3 недели)

  1. Перечитать документацию Laravel -- особенно неочевидные разделы
  2. Практиковать написание кода -- создать тестовый проект
  3. Изучить исходный код Laravel -- хотя бы ключевые классы
  4. Пройти tricky-вопросы -- разделы 2-5 этой секции

Фаза 3: Симуляция (1 неделя)

  1. Пройти mock-экзамен -- засечь время (60 минут)
  2. Проанализировать ошибки -- вернуться к проблемным темам
  3. Повторить mock -- стремиться к 85%+
  4. Ночь перед экзаменом -- легко повторить flashcards, не учить новое

Методы запоминания

  • Spaced Repetition -- повторяйте материал с увеличивающимися интервалами
  • Active Recall -- закрывайте ответы и вспоминайте самостоятельно
  • Код в голове -- мысленно трассируйте код без IDE
  • Teach Others -- объясняйте концепции вслух
  • Flashcards -- для API методов и их возвращаемых типов

Управление временем на экзамене

Расчёт

45 вопросов / 60 минут = ~1.3 минуты на вопрос

Стратегия

  1. Первый проход (30-35 минут):

    • Ответьте на все вопросы, в которых уверены
    • Отметьте сомнительные для возврата
    • Не тратьте больше 1.5 минут на вопрос
  2. Второй проход (15-20 минут):

    • Вернитесь к отмеченным вопросам
    • Перечитайте внимательно
    • Используйте метод исключения
  3. Финальная проверка (5-10 минут):

    • Проверьте, что не пропустили вопросы
    • Пересмотрите сомнительные ответы
    • Не меняйте ответы без веской причины

Золотые правила

  • Не застревайте -- если не знаете, отметьте и двигайтесь дальше
  • Первый инстинкт -- часто правильный, не меняйте без причины
  • Исключение -- если осталось 2 варианта, шансы 50/50
  • Читайте ВНИМАТЕЛЬНО -- ключевое слово может быть "НЕ"

Распространённые ошибки

1. Путаница в именах методов

<?php

// find() vs findOrFail()
User::find(1);        // Returns null if not found
User::findOrFail(1);  // Throws ModelNotFoundException

// first() vs firstOrFail()
User::where('email', 'x')->first();        // Returns null
User::where('email', 'x')->firstOrFail();  // Throws exception

// create() vs make() (factories)
User::factory()->create();  // Saves to DB
User::factory()->make();    // Only in memory

2. Путаница в параметрах отношений

<?php

// hasOne/hasMany: (Related, foreignKey, localKey)
$this->hasMany(Comment::class, 'post_id', 'id');

// belongsTo: (Related, foreignKey, ownerKey)
$this->belongsTo(User::class, 'user_id', 'id');

// belongsToMany: (Related, pivotTable, foreignPivotKey, relatedPivotKey)
$this->belongsToMany(Role::class, 'role_user', 'user_id', 'role_id');

3. Неправильный порядок аргументов

<?php

// Route model binding: parameter name must match variable name
Route::get('/users/{user}', function (User $user) { ... }); // Correct
Route::get('/users/{id}', function (User $user) { ... });   // Wrong!

// Middleware parameters
Route::middleware('role:admin,editor'); // role:param1,param2

4. Забытые детали

  • $fillable vs $guarded -- пустой $guarded = [] разрешает ВСЕ
  • SoftDeletes -- это global scope
  • Accessor в camelCase, доступ в snake_case
  • Pivot-таблица в алфавитном порядке
  • sync() УДАЛЯЕТ лишние записи

5. Типичные ловушки

  • withTrashed() -- это метод Builder, не модели
  • $this->hasOne(Phone::class) -- foreign key на стороне Phone, не User
  • Event::fake() подавляет model events
  • assertJson() -- subset matching, assertExactJson() -- exact

Чек-лист готовности

Перед экзаменом убедитесь, что вы знаете:

  • Service Container: binding, resolving, contextual binding
  • Service Providers: register vs boot, deferred providers
  • Facades: как работают, real-time facades
  • Route: model binding, groups, middleware, rate limiting
  • Middleware: priority, terminate, groups
  • Controllers: resource, invokable, form requests
  • Validation: rules, custom rules, form requests
  • Blade: components, slots, directives, layouts
  • Eloquent: relationships (все типы), scopes, events
  • Collections: Eloquent vs base, key methods
  • Casts: built-in, custom, enum, encrypted
  • API Resources: JsonResource, conditional attributes
  • Factories: states, sequences, relationships
  • Events: dispatching, listeners, broadcasting
  • Queues: jobs, chains, batches, retries
  • Testing: HTTP, database, mocking, fakes
  • Auth: Sanctum, guards, policies, gates

Проверь себя

Какая тема имеет наибольший вес на экзамене Laravel Senior Developer?

Сколько времени в среднем выделяется на один вопрос экзамена?

Что вернёт User::find(999) если пользователя с ID 999 не существует?

Какая стратегия рекомендуется при первом проходе по вопросам экзамена?