Глосарій

Словник веб-розробника

Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.

228 термінів
47 літер
З
Замикання (Closure)
Замикання (анонімна функція) — функція без імені, яку можна зберегти у змінну, передати як аргумент або повернути з іншої функції. Головна особливість — вона може «захопити» змінні зовнішнього scope.Де використовуєтьсяКолбеки в функціях типу array_map, usort, array_filterСтрілкові функції (fn() =>) — захоплюють зовнішні змінні автоматичноФункціональне програмування — функції вищого порядку, ліниві обчисленняОбробники подій і middleware-ланцюжкиЗахоплення змінних$multiplier = 3; $fn = fn($x) => $x * $multiplier; // захоплено автоматично $fn(5); // 15У звичайних замиканнях захоплення явне через use ($var). Для захоплення за посиланням — use (&$var).
Збережена процедура (Stored Procedure)
Збережена процедура — підпрограма зі SQL-логіки, що зберігається безпосередньо у СУБД і викликається по імені. На відміну від звичайного запиту — компілюється один раз, виконується швидше і може мати вхідні/вихідні параметри. Приклад (MySQL) DELIMITER $$ CREATE PROCEDURE GetUserOrders(IN userId INT) BEGIN SELECT o.id, o.total, o.status FROM orders o WHERE o.user_id = userId ORDER BY o.created_at DESC; END$$ DELIMITER ; -- Виклик CALL GetUserOrders(42); Переваги Логіка на рівні БД — не залежить від мови додатку Менше трафіку між додатком і БД Права доступу на рівні процедури, а не таблиці Недоліки Складно тестувати і версіонувати (не в Git) Бізнес-логіка розпорошена між кодом і БД Прив'язка до конкретної СУБД
Збирач сміття (Garbage Collection)
Garbage Collection (GC) — автоматичне звільнення пам'яті від об'єктів, які більше не використовуються. Замість ручного управління пам'яттю (malloc/free у C) — рантайм сам відстежує і прибирає недосяжні об'єкти.АлгоритмиReference Counting — лічильник посилань на об'єкт. При 0 — об'єкт видаляється. PHP, CPython. Проблема: кругові посиланняMark and Sweep — обходить граф об'єктів, позначає досяжні, видаляє непозначені. Java, Go, JavaScriptGenerational GC — молоді об'єкти (короткоживучі) збираються частіше за старі. JVM, .NET, V8PHP і GCPHP використовує reference counting + cyclic garbage collector. Кругові посилання (A → B → A) не звільняються reference counting — їх прибирає cyclic GC. gc_collect_cycles() — ручний запуск.Вплив на продуктивністьGC-паузи можуть впливати на latency. В Go GC concurrent — паузи < 1 мс. В старих JVM GC-паузи були секундами.
Зв'язний список
Зв'язний список — лінійна структура даних, де кожен елемент (вузол) містить значення і вказівник на наступний вузол. На відміну від масиву — елементи не зберігаються поруч у пам'яті. Типи Singly Linked — кожен вузол → наступний. Обхід лише вперед Doubly Linked — кожен вузол → наступний і попередній. Обхід в обох напрямках Circular — останній вузол → перший Порівняння з масивом Вставка/видалення на початку: список O(1) → масив O(n) (зсув) Вставка/видалення в середині: список O(n) (пошук) → масив O(n) (зсув) Доступ за індексом: список O(n) → масив O(1) Пам'ять: список витрачає більше (вказівники) У PHP PHP-масиви є хеш-таблицями — не зв'язними списками. Для справжнього зв'язного списку — SplDoublyLinkedList або власна реалізація. На практиці рідко потрібен.
Змінні середовища (.env)
Змінні середовища — конфігурація поза кодом: паролі, ключі API, URL бази даних. Зберігаються в середовищі ОС або файлі .env. Код читає їх у runtime, а не хардкодить прямо в сирцях.Чому окремо від кодуОдна кодова база — багато оточень (local / staging / production) з різними значеннями.env не потрапляє в Git (є в .gitignore) — секрети не витікаютьЗручна заміна конфігурації без зміни коду і перезбиранняПрактикаТримайте в репозиторії .env.example з усіма ключами але без значень — нові розробники знатимуть, що налаштувати. У CI/CD інжектуйте змінні через UI провайдера, не через файли.12-Factor AppЗберігання конфігурації у змінних середовища — один із принципів 12-Factor App — методології побудови масштабованих хмарних застосунків.
Зовнішній ключ (Foreign Key)
Зовнішній ключ — обмеження БД, що гарантує цілісність зв'язку між таблицями. Колонка дочірньої таблиці може містити лише значення, що існують у батьківській. База даних відхилить вставку або оновлення, що порушить цей зв'язок.ОголошенняCREATE TABLE orders ( id INT PRIMARY KEY, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ON UPDATE RESTRICT );Стратегії ON DELETE / ON UPDATECASCADE — при видаленні батька видаляються і всі дочірні записиRESTRICT / NO ACTION — заборонити видалення батька, якщо є дочірніSET NULL — встановити дочірнє поле в NULLSET DEFAULT — встановити значення за замовчуваннямPerformanceMySQL/InnoDB автоматично індексує FK-колонку. При великих таблицях перевірка FK на кожній вставці додає ~5–10% накладних витрат.