Побудувати навчання на перші три місяці потрібно так, щоб людина не «вчила уроки», а постійно збирала робочий результат. Веб програмування вимагає системності: кожен тиждень має давати новий рівень автономності, а наприкінці місяця — завершену фічу з тестами та доступами.
Цей тримісячний план підходить тим, хто заходить у веб розробку через PHP і Laravel, але хоче працювати як інженер, а не як копіювальник рішень. Ми розкладемо шлях на січень, лютий і березень, щоб поступово закрити базу, безпеку, якість і продуктивність.
Січень — це фундамент і перші «вертикальні» фічі, які проходять весь шлях від маршруту до бази даних і UI. Тут важливо навчитися піднімати проєкт локально, читати конфігурацію та не боятися логів. Без цього будь-які уроки з Laravel будуть відірвані від реальності.
У перший тиждень січня стартуйте з середовища: Docker або Sail, .env, міграції, storage:link, розуміння структури папок і місць, де живуть логи. Одразу паралельно вводьте Git-процес: гілка, PR, рев’ю, мердж. Це дисципліна, без якої команда не працює.
Той самий тиждень закрийте базові поняття HTTP: request/response, middleware, CSRF, session і коди статусів. Вони визначають, чому форма не відправляється, чому сесія «падає», і де вмикаються обмеження доступу. Додайте основу SQL: SELECT, JOIN, індекси та ідею транзакцій як страховку.
Другий тиждень січня присвятіть мінімальному стандарту Laravel: маршрути web/api, групи, префікси та named routes. Далі — контролери: resource, single action і залежності через DI, щоб код не перетворювався на моноліт. Паралельно підійміть Blade з layout/sections/components і зробіть прості форми.
На цьому ж тижні закріпіть validation через FormRequest: правила, повідомлення, old() і errors. Це точка, де новачки найчастіше ламають UX або пропускають вхідні дані без перевірок. Валідація — основа безпеки і стабільності, особливо коли у вас багато полів і різні режими публікації.
Третій тиждень січня — дані і Eloquent. Поглибте міграції: foreign keys, індекси, nullable, дефолти, щоб бази даних були структурними, а не «як вийшло». Далі моделі: fillable/guarded, casts, accessors/mutators, бо саме тут формується контроль над даними.
Цього ж тижня відпрацюйте зв’язки: belongsTo, hasMany, belongsToMany і eager loading без N+1. Це критично для продуктивності, бо більшість проблем у веброзробці починається з запитів, які непомітно множаться. Додайте пагінацію і фільтри через query string як базовий патерн адмінки.
Четвертий тиждень січня — обов’язкова «міні-фіча під ваш проєкт» із CRUD. Оберіть не ядро, а безпечний модуль на кшталт Tags, Sections або Resources, щоб новачок не мав шансу поламати критичні обмеження. Завдання просте: index/create/edit, flash-повідомлення і акуратний UI на Blade.
Паралельно на цій фічі введіть сервісний шар: логіка create/update у Service, транзакція якщо зачіпаєте дві таблиці, і мінімальна нормалізація вхідних даних. Завершіть тиждень 2–3 feature-тестами на маршрути, щоб людина звикла, що результат — це не лише «працює у мене».
Після січня очікування просте: новачок має впевнено будувати ланцюжок route → controller → FormRequest → service → model/migration → blade. Він повинен розуміти, де проходять межі відповідальності та чому не можна переписувати існуючі фільтри й обмеження. Це база ремесла у Laravel, без якої далі буде хаос.
Лютий — місяць якості, безпеки й інтеграції з реальними модулями. Тут ви переводите людину з режиму «я зробив CRUD» у режим «я роблю без ризику». Веб програмування на цьому рівні — це вже відповідальність за доступи, дані та наслідки змін у продакшені.
Перший тиждень лютого закладає архітектуру і стандарти: що лишається в контролері, а що йде в сервіс, як не тягнути бізнес-логіку в Blade. Додайте легкі DTO або value objects для нормалізації даних перед записом. Введіть логування: що логувати, рівні та мінімальний correlation id.
Другий тиждень лютого — авторизація і ролі. Якщо у вас критичні permission-мідлвари, новачок має зрозуміти Policies і Gates та правильно підключати обмеження на рівні контролера й запитів. Обов’язково додайте тести на доступи, щоб було чітко видно, хто що може і де ризик витоку.
Третій тиждень лютого присвятіть роботі з файлами та медіа, якщо це актуально. Пройдіть upload pipeline через Storage: валідація типів, розмірів, безпечні імена та правильні шляхи. Інтеграції Image resize або FFMpeg робіть без «магії» в контролері, інакше потім це не підтримати.
У цьому ж тижні введіть базове розуміння черг: що таке job, навіщо він потрібен, і де доречно винести важкі операції. Веб розробка часто ламається через синхронні «важкі» задачі у запиті користувача. Коли людина це зрозуміє, вона почне мислити продуктивністю, а не лише функціоналом.
Четвертий тиждень лютого — реальна фіча середньої складності. Наприклад, сторінка контролю або аналітики з фільтрами по даті, юзеру, статусу і з пагінацією. Далі — оптимізація запитів: індекси, eager loading і базовий EXPLAIN для перевірки. І головне правило: не чіпати існуючі фільтри, тільки розширювати.
Тести цього тижня мають бути серйознішими: 5–8 штук на фільтри, доступи і валідацію. Це дисциплінує і показує, що людина не просто «зробила сторінку», а створила компонент, який не зламається через два тижні. На цьому рівні формується довіра до розробника в команді.
Березень — це продуктивність, стабільність і майже автономність. Ви переводите учня в режим, коли він бачить ризики до того, як вони стануть багами. Веб програмування тут стає інженерною практикою: кеш, черги, планувальник, активність, рефакторинг без втрат.
Перший тиждень березня присвятіть продуктивності: контроль N+1, базове профілювання запитів та аналіз вузьких місць. Далі cache: що кешувати, як будувати ключі, як інвалідовувати і які ставити TTL. Окремо проговоріть концепт пагінації: offset проти cursor.
Другий тиждень березня — черги, scheduler і нотифікації. Поясніть queue workers: retries, timeouts, failed jobs і чому це не «фонова магія», а частина стабільності. Scheduler потрібен для регулярних задач та health-checks, а нотифікації й activity log — для прозорості змін у системі.
Третій тиждень березня — рефакторинг без ризику. Виносьте повтори в компоненти, partials або traits, але без фанатизму і без ламання існуючої логіки. Мета — тонкий контролер, зрозумілий сервіс, читабельні методи і тестове покриття критичних гілок. Це формує звичку робити акуратні правки.
Четвертий тиждень березня — підсумковий capstone під ваш домен. Людина має самостійно зробити повний модуль: UI, фільтри, політики доступу, сервіс, activity log і тести. Потім — код-рев’ю як у проді з фокусом на безпеку, продуктивність і читабельність, і коротка документація «як підтримувати».
Після березня очікування конкретне: розробник здатен працювати майже автономно в задачах середньої складності. Він розуміє доступи, не ламає фільтри, контролює запити й кеш, пише сервісну логіку та підтримує її тестами. Це вже не «учень», а людина, якій можна давати реальні шматки продукту.
Ключ до успіху в тому, що цей план не про «вивчити Laravel», а про навчитися робити надійні вебзастосунки. PHP і Laravel дають швидкість, але якість створює процес: Git, код-рев’ю, тести, дисципліна змін і повага до існуючої структури. Так формується ремесло і професія, що тримається роками.