Пояснюємо простими словами ключові поняття з вебпрограмування: від HTTP і SQL до MVC, Git, Eloquent, Policies та черг, щоб ви розуміли код і не губилися в документації.
У веб програмуванні прогрес зупиняється не через «складний код», а через нерозуміння мови професії. Терміни — це скорочення для цілих концепцій, і якщо ви їх плутаєте, ви або робите помилки, або витрачаєте години на те, що мало б займати хвилини. Словник потрібен, щоб розмовляти з командою, читати документацію і правильно ставити питання.
У PHP та Laravel більшість проблем виникає на стику понять: запит і відповідь, база і модель, доступи і політики, фонова обробка і черги. Коли ви розумієте ці зв’язки, ви починаєте бачити систему, а не набір файлів. Це прямо впливає на швидкість розробки, якість правок і безпеку продукту.
Цей матеріал зібрав терміни з двох попередніх статей і пояснює їх «навіщо». Ваше завдання не вивчити визначення напам’ять, а почати впізнавати ці концепти в коді, логах та задачах. Тоді кожен новий модуль і кожне рев’ю стане зрозумілішим, а помилок буде менше.
Нижче — значення та короткий опис, який дає практичний контекст. Формулювання спеціально зроблені «робочими», щоб їх можна було застосувати на проєкті, а не лише повторити на співбесіді. Якщо ви освоїте цей список, вам буде легше вчитись далі і переходити до реальних фіч.
HTTP — протокол спілкування браузера або клієнта із сервером; визначає, як виглядає запит і як сервер повертає відповідь. Request/Response — пара «запит/відповідь», з якої складається будь-яка взаємодія у вебі. Status codes — коди відповіді (200, 404, 500 тощо), що показують результат операції. Middleware — проміжний шар, який перевіряє або модифікує запит до того, як він потрапить у контролер. CSRF — захист від підроблених запитів із чужого сайту, критичний для форм. Session — дані користувача між запитами, наприклад авторизація чи кошик.
Route / маршрути — правила, які визначають, який URL веде в який код. Named routes — імена маршрутів, щоб посилання не ламались при зміні URL. Controller — клас, що приймає запит і викликає потрібну логіку; має бути «тонким», без важкої бізнес-логіки. DI (Dependency Injection) — передача залежностей у конструктор/метод, щоб код був тестованим і керованим. Resource controller — стандартний набір методів для CRUD, який прискорює старт.
Blade — шаблонізатор Laravel для формування HTML; дає layout, sections і компоненти. Layout/sections — базовий каркас сторінок і вставки контенту в потрібні місця. Components/partials — повторно використовувані шматки інтерфейсу, щоб не копіювати однакові блоки. Validation — перевірка вхідних даних перед записом або дією. FormRequest — окремий клас для правил валідації та авторизації запиту. old()/errors — механіка збереження введених даних і показу помилок у формах.
SQL — мова запитів до бази даних; потрібна навіть при Eloquent, щоб розуміти, що реально виконується. SELECT/JOIN — вибірка даних і об’єднання таблиць для складних списків. Index/індекс — прискорює пошук і фільтрацію, але вимагає правильного проектування. Transaction/транзакція — гарантує цілісність, коли змінюються кілька таблиць. Міграції — керування схемою бази даних через код, щоб структура була контрольована і повторювана.
Eloquent — ORM Laravel, що дозволяє працювати з таблицями як з об’єктами. Model — представлення таблиці, де задаються правила роботи з даними. fillable/guarded — контроль масового заповнення полів, важливий для безпеки. casts — автоматичне приведення типів (дата, масив, boolean) для коректної логіки. Accessors/mutators — правила читання й запису атрибутів, щоб нормалізувати дані. Relations — зв’язки між моделями (belongsTo, hasMany, belongsToMany). Eager loading — завчасне завантаження зв’язків, щоб уникати N+1.
N+1 — проблема, коли замість одного запиту робиться багато дрібних запитів по одному на кожен запис; вбиває продуктивність. Pagination — розбиття списку на сторінки для швидкості та UX. Filters — умови відбору, зазвичай через query string, які повинні бути стабільні й передбачувані. Service layer — шар, де живе бізнес-логіка, щоб контролери були простими. DTO/Value object — об’єкт для перенесення та нормалізації даних між шарами, щоб не тягнути «сирі» масиви.
Git — система контролю версій; дозволяє працювати в команді, відкотити помилки і вести історію правок. Branch — окрема гілка змін під задачу. PR (Pull Request) — запит на злиття змін, точка рев’ю і контролю якості. Code review — перевірка коду іншими, щоб ловити ризики до продакшену. Merge — злиття гілки в основну після перевірки.
REST API — стиль побудови API, де ресурси доступні через URL і методи HTTP, а відповіді часто в JSON. JSON — формат передачі даних між клієнтом і сервером. MVC — патерн, що розділяє модель, контролер і подання, щоб код був структурним і підтримуваним. Policy/Gates — механізми авторизації в Laravel: хто має право на дію з ресурсом. Permissions middleware — перевірка прав доступу на рівні маршруту або контролера. Logging — запис подій у логи для діагностики і аудиту.
Queue/черги — фонова обробка задач, щоб не блокувати запит користувача. Job — одиниця роботи в черзі, наприклад ресайз зображення чи відправка листа. Worker — процес, який виконує jobs; має retries і timeouts. Failed jobs — задачі, що впали і потребують розбору або повтору. Scheduler — планувальник задач за часом, наприклад раз на годину або щодня. Cache — збереження готових результатів (дані/HTML/запити) для прискорення, з ключами і TTL. TTL — час життя кешу, після якого дані потрібно оновлювати.
У веброзробці терміни — це не “розумні слова”, а короткі назви для практичних рішень. Якщо ви їх не розумієте, ви не розумієте вимоги, не бачите ризиків і витрачаєте час на хаотичні спроби. Знання термінів напряму економить години під час дебагу, рев’ю та інтеграцій.
У Laravel це особливо помітно: фреймворк прискорює, але карає за поверхневість. Ви або розумієте, що таке middleware, валідація, транзакції, черги й політики доступу, або “збираєте” систему з випадкових шматків, яка ламається від першого нетипового кейсу.
Цей словник потрібен, щоб ви могли будувати навчання правильно: читати документацію, задавати точні питання й робити правки без руйнування існуючих обмежень. Це також база для комунікації в команді: однакові терміни — менше непорозумінь і менше багів.
Нижче подано повний розгорнутий список тлумачень, які прямо покривають поняття з двох статей. Формат “термін — значення” зроблений так, щоб його можна було використовувати як шпаргалку в роботі.
Вебпрограмування — створення вебсистем, які працюють через браузер і сервер, обробляють запити, зберігають дані та віддають контент або функції користувачу.
Веброзробка — ширше поняття, що включає вебпрограмування, дизайн інтерфейсу, роботу з інфраструктурою, тестування, безпеку й підтримку продукту.
Вебзастосунок — програма, доступна через браузер, де логіка може бути розділена між клієнтом і сервером (наприклад, адмінка, CRM, медіаплатформа).
Фронтенд — частина продукту, яку бачить користувач у браузері: інтерфейс, взаємодія, візуальні компоненти, клієнтська логіка.
Бекенд — серверна частина: бізнес-логіка, доступи, робота з базою даних, інтеграції, черги, кеш, формування відповідей.
HTML — мова розмітки, що описує структуру сторінки (заголовки, блоки, форми, посилання). Це “скелет” інтерфейсу.
CSS — стилі, що відповідають за вигляд і адаптивність інтерфейсу (сітки, відступи, шрифти, кольори, медіа-запити).
JavaScript — мова, що додає інтерактивність у браузері: події, динамічний контент, запити до API, валідація форм на клієнті.
PHP — серверна мова програмування, яка широко використовується для вебсайтів і систем керування контентом; сильна в типових бізнес- та медіасценаріях.
Laravel — PHP-фреймворк, який дає структуру, інструменти й готові механізми для типових задач: маршрути, валідація, ORM, авторизація, черги, кеш, тести.
Фреймворк — набір правил і бібліотек, який задає каркас проєкту та прискорює розробку, але вимагає дисципліни й розуміння стандартів.
Проєкт (application) — кодова база з налаштуваннями, залежностями, структурами даних та процесами деплою, яка працює як продукт або сервіс.
Локальне середовище — ваш комп’ютер/віртуальне середовище, де ви запускаєте проєкт для розробки без впливу на продакшн.
Продакшн (production) — бойове середовище, де працюють реальні користувачі. Там помилки мають ціну: гроші, репутація, ризик даних.
Dev-режим — режим розробки зі спрощеннями (детальні помилки, швидке перезавантаження), який не можна плутати з продакшном.
Docker — контейнеризація, що дозволяє запускати однакове середовище в різних розробників і на сервері, мінімізуючи “в мене працює”.
Laravel Sail — офіційна Docker-обгортка для Laravel, яка спрощує запуск локального середовища стандартними командами.
.env — файл змінних середовища: доступи до БД, ключі, режими роботи, налаштування сервісів. Це “пульт керування” конфігом, але не місце для секретів у репозиторії.
storage:link — команда, що створює посилання на папку з файлами, щоб завантажені медіа були доступні з вебу через правильний шлях.
Логи (logs) — записи подій і помилок, які дозволяють відтворювати інциденти, бачити причини збоїв та контролювати поведінку системи.
Git — система контролю версій: фіксує історію змін, дозволяє відкотити помилки, працювати командою й робити рев’ю.
Репозиторій — сховище коду з історією Git (локально й на сервісах типу GitHub/GitLab).
Гілка (branch) — окремий “коридор” змін під задачу, щоб не ламати основну гілку.
PR (Pull Request) — запит на злиття гілки з основною після перегляду. Це основна точка контролю якості.
Рев’ю (code review) — перевірка коду іншими: знаходить ризики, підсилює стандарти, зменшує кількість багів у продакшні.
Мердж (merge) — злиття гілки після рев’ю; зазвичай вимагає проходження тестів і перевірок.
HTTP — протокол, яким клієнт (браузер) спілкується із сервером: як формуються запити й відповіді.
Request (запит) — повідомлення від клієнта до сервера: URL, метод, заголовки, параметри, тіло запиту.
Response (відповідь) — результат сервера: статус, заголовки, тіло (HTML/JSON/файл).
HTTP-методи — способи дії: GET (отримати), POST (створити/відправити), PUT/PATCH (оновити), DELETE (видалити).
Статус-коди — числові коди результату (200 успіх, 302 редирект, 403 заборона, 404 не знайдено, 422 помилка валідації, 500 помилка сервера).
Headers (заголовки) — метадані запиту/відповіді: тип контенту, кешування, авторизація, мова, токени.
Cookies — дані, які браузер зберігає і надсилає серверу; часто використовується для сесій або налаштувань.
Session (сесія) — механізм збереження стану між запитами (наприклад, хто ви після логіну). У вебі без сесій все було б “одноразовим”.
Middleware — проміжний шар, який запускається до/після контролера: перевірка прав, логування, анти-бот, локаль, CSRF тощо.
CSRF — атака, коли сторонній сайт змушує браузер користувача виконати дію на вашому сайті. Захист у Laravel базується на CSRF-токенах.
Routing (маршрутизація) — система правил “URL → код”, яка визначає, який контролер/метод викликається.
web/api routes — поділ маршрутів для HTML-сайту (web) і програмного інтерфейсу (api), з різними middleware та правилами.
Групи маршрутів — об’єднання маршрутів зі спільним префіксом, middleware і неймінгом для порядку та масштабу.
Префікс — спільна частина URL (наприклад /admin), яка задає область сайту.
Named routes — імена маршрутів, що дозволяють генерувати посилання без “жорстких” URL у коді.
Controller — клас, який приймає запит і координує дію: викликає сервіси, формує відповідь, але не повинен бути “смітником” логіки.
Resource controller — стандартний CRUD-набір методів (index/create/store/show/edit/update/destroy) для типових сутностей.
Single action controller — контролер з одним методом, зручний для невеликих дій і чистої архітектури.
DI (Dependency Injection) — підхід, коли залежності передаються в конструктор/метод, а не створюються всередині; робить код тестованим і керованим.
Service layer (сервісний шар) — місце, де живе бізнес-логіка: створення, оновлення, перевірки, транзакції. Це зменшує ризик “розмазування” логіки по контролерах і шаблонах.
Бізнес-логіка — правила продукту: що дозволено, як рахується, які статуси змінюються, як створюються зв’язки й записи активності.
Blade — шаблонізатор Laravel для HTML: дозволяє збирати сторінки з компонентів і макетів, уникати дублювання.
Layout — базовий каркас сторінки (шапка, футер, контейнер), в який “вставляється” контент.
Sections — зони в layout, куди підставляється контент конкретної сторінки.
Components — повторно використовувані блоки інтерфейсу з параметрами (кнопки, картки, таблиці).
Partials — прості “вставки” шаблонів, які підключаються для повторного використання.
Форми (forms) — інструмент збору даних користувача. У вебі більшість створення/редагування проходить через форми.
Validation (валідація) — перевірка вхідних даних перед дією або записом, щоб не впустити сміття, небезпечні значення чи поламані формати.
FormRequest — клас Laravel, який інкапсулює правила валідації й інколи перевірку авторизації запиту.
old() — механізм повернення введених даних у форму після помилки, щоб користувач не вводив усе заново.
errors — об’єкт з помилками валідації для відображення повідомлень біля полів.
База даних — сховище структурованої інформації (статті, користувачі, права, медіа, активність).
Таблиця — структура в БД, де зберігаються записи одного типу (наприклад users, posts).
Схема (schema) — опис структури БД: таблиці, поля, типи, індекси, зв’язки.
SQL — мова запитів до БД. Навіть із ORM треба розуміти SQL, щоб бачити реальну вартість запитів і помилки моделі даних.
SELECT — запит на вибірку даних.
JOIN — об’єднання таблиць для отримання пов’язаних даних одним запитом.
WHERE — умови відбору записів.
Індекс (index) — структура, яка прискорює пошук і фільтри, але коштує місця й може уповільнювати записи.
Транзакція (transaction) — гарантія “або все, або нічого” при кількох змінах; рятує від частково записаних даних і розсинхрону.
Міграції (migrations) — керування схемою БД через код, щоб структура була відтворюваною і контрольованою.
Foreign key — зовнішній ключ, який фіксує зв’язок між таблицями й підсилює цілісність даних.
Nullable — поле, яке може бути порожнім (NULL). Це має бути усвідомленим рішенням, а не випадковістю.
Default — значення за замовчуванням, яке ставиться, якщо поле не передали.
Eloquent — ORM Laravel: спосіб працювати з БД через моделі й зв’язки, але під капотом все одно SQL.
Model — клас, що представляє таблицю й правила роботи з нею (масове заповнення, типи, зв’язки).
fillable — список полів, які можна масово заповнювати; захищає від небезпечного “заливання” зайвих полів.
guarded — поля, які заборонені для масового заповнення; альтернативний стиль контролю.
casts — автоматичне приведення типів атрибутів (boolean, array, datetime), щоб уникати помилок логіки.
Accessor — перетворення значення під час читання атрибуту (наприклад, форматування).
Mutator — перетворення під час запису (наприклад, нормалізація рядків або серіалізація).
Relations (зв’язки) — опис, як моделі пов’язані між собою.
belongsTo — “цей запис належить іншому” (стаття належить автору).
hasMany — “в одного багато” (автор має багато статей).
belongsToMany — зв’язок багато-до-багатьох через pivot-таблицю (стаття має багато тегів і тег має багато статей).
Eager loading — завчасне завантаження зв’язків одним/кількома оптимізованими запитами, щоб уникнути лавини запитів.
N+1 — антипатерн, коли замість одного запиту ви робите N додаткових для кожного запису, і система “падає” на списках.
Pagination — розбиття результатів на сторінки; зменшує навантаження й покращує UX.
Query string — параметри в URL (наприклад ?date=...), які зручно використовувати для фільтрів у адмінці.
Фільтри — умови відбору даних за параметрами (дата, користувач, статус). Важливо робити їх стабільними, не ламаючи існуючу логіку.
Оптимізація запитів — набір дій для прискорення БД: індекси, eager loading, зменшення полів, правильні умови.
EXPLAIN — команда/інструмент для аналізу плану виконання SQL-запиту: чи використовується індекс, яка вартість.
Архітектура — принципи структурування коду, щоб він був зрозумілим, розширюваним і безпечним.
MVC — патерн “Model–View–Controller”, який розділяє дані, відображення й координацію запитів, зменшуючи хаос у коді.
Стандарти коду — узгоджені правила: де що лежить, як називається, як оформлюється логіка. Без цього команда гальмує.
DTO — об’єкт перенесення даних між шарами (контролер → сервіс), щоб не таскати “сирі” масиви й не роздувати сигнатури методів.
Value Object — об’єкт-значення з правилами валідності (наприклад, Email, Money, DateRange). Зменшує помилки на рівні типів і правил.
Нормалізація даних — приведення введених значень до очікуваного формату перед записом (пробіли, регістр, типи, структури).
Логування (logging) — запис важливих подій для діагностики: що сталося, де, з ким, з якими параметрами.
Рівні логів — градація важливості (debug/info/warning/error/critical), щоб відділяти шум від інцидентів.
Correlation ID — ідентифікатор, що зв’язує події одного запиту в різних логах/сервісах; корисний при складних інцидентах.
Авторизація — визначення, чи має користувач право виконати дію.
Аутентифікація — визначення, хто користувач (логін). Часто плутають з авторизацією, але це різні речі.
Ролі — групи прав (адмін, редактор, автор), які спрощують керування доступом.
Permissions — конкретні дозволи на дії (наприклад, news.update). Саме вони зазвичай перевіряються в middleware/policies.
Policy — клас, який описує правила доступу до конкретного ресурсу (хто може редагувати цю статтю).
Gate — простіший механізм перевірок для дій, не прив’язаних до конкретної моделі.
Permissions middleware — middleware, який блокує доступ, якщо немає потрібного permission.
REST API — стиль побудови API, де ресурси доступні через URL і HTTP-методи, а відповіді повертаються у стандартизованому форматі.
JSON — формат передачі даних (ключ–значення), часто використовується в API між фронтендом і бекендом.
Upload pipeline — послідовність обробки файлу: прийняти → перевірити → зберегти → видати URL → зафіксувати в БД.
Storage — абстракція Laravel для файлових сховищ (локально, S3 тощо), щоб працювати однаково в різних середовищах.
Валідація файлів — перевірка типу/розміру/розширення, щоб не отримати вірус, “бомбу” або сміття.
Безпечні імена файлів — генерація нейтральних імен без спецсимволів, щоб уникати конфліктів і уразливостей.
Image resize — зміна розміру зображень для оптимізації швидкості та стандартизації.
FFMpeg — інструмент для обробки відео/аудіо (конвертація, прев’ю, нарізка), часто виконується асинхронно через черги.
Черги (Queue) — механізм відкладеного виконання задач, щоб не блокувати користувача і не “вбивати” запит.
Job — одиниця роботи в черзі (наприклад, згенерувати прев’ю, надіслати повідомлення).
Worker — процес, який забирає jobs з черги й виконує їх.
Retries — повторні спроби виконання job у разі тимчасових помилок.
Timeouts — ліміти часу виконання job, щоб система не зависала на “вічних” задачах.
Failed jobs — jobs, які провалилися й потребують аналізу або ручного повтору.
Scheduler — планувальник періодичних задач (щогодини/щодня): чистка, синхронізація, перевірки.
Health-checks — перевірки життєздатності системи (черги, БД, кеш, критичні сервіси), щоб ловити проблеми раніше.
Notifications — повідомлення користувачам/адмінам (email, внутрішні нотифікації), часто через черги.
Activity log — журнал активності: хто що змінив і коли. Це аудит і контроль, особливо в адмінках.
Кеш (Cache) — збереження готових результатів, щоб не рахувати і не запитувати БД повторно.
Cache key — ключ, за яким зберігається кешований результат. Погані ключі дають колізії або “не той” кеш.
Інвалідація кешу — правила, коли кеш треба скидати, щоб не показувати застарілі дані.
TTL — час життя кешу. Занадто довгий TTL дає застарілі дані, занадто короткий — не дає виграшу.
Профілювання — вимірювання, де витрачається час: запити, рендер, виклики сервісів. Це основа оптимізації, а не здогадки.
Offset pagination — пагінація зі зміщенням (page=10), проста, але повільніша на великих таблицях.
Cursor pagination — пагінація по “курсору” (останній id/дата), зазвичай стабільніша і швидша на великих обсягах.
Рефакторинг — зміна структури коду без зміни поведінки; робиться для читабельності, тестованості й зменшення техборгу.
Trait — механізм PHP для повторного використання коду між класами; корисний, але легко перетворюється на хаос, якщо ним зловживати.
“Тонкий контролер” — принцип: контролер координує, а не містить бізнес-логіку.
“Товстий сервіс” — принцип: основні правила і операції живуть у сервісі, де їх легше тестувати і підтримувати.
Тестування — перевірка, що система працює як очікується, і що правки не ламають критичні сценарії.
Feature tests — тести рівня “через HTTP”: запит → відповідь → перевірка статусів, доступів, результатів. Це дуже близько до реального використання.
Unit tests — тести окремих класів/функцій (наприклад, сервісу чи value object) без повного веб-циклу.
Happy path — “щасливий сценарій”, коли все йде правильно. Його тестують першим, але ним не можна обмежуватись.
Документація — короткий опис “як працює” і “як підтримувати”. Рятує час новим людям і вам самим через кілька місяців.
Висновок: якщо ви хочете швидко рости у PHP та Laravel, цей словник треба не завчити, а “прив’язати” до практики. Кожен термін тут відповідає за конкретні ризики: доступи, дані, продуктивність, підтримку й безпеку. У наступних матеріалах правильно робити так: брати один блок термінів і одразу показувати їх у вашій фічі, щоб знання не залишались теорією.