Глосарій

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

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

228 термінів
47 літер
U
Union та Intersection типи
Union types (PHP 8.0) дозволяють оголосити, що параметр або повернення може бути одним з кількох типів. Intersection types (PHP 8.1) — що значення має реалізовувати усі вказані інтерфейси одночасно. Union Types function parse(string|int $id): User|null { return User::find($id); } // PHP 8.0 також додав: int|string, float|int, тощо // Спеціальні: mixed, never, void Intersection Types interface Serializable {} interface Loggable {} function process(Serializable&Loggable $obj): void { // $obj гарантовано реалізує обидва інтерфейси } DNF Types (PHP 8.2) Disjunctive Normal Form — комбінація union і intersection: (Serializable&Loggable)|null.
Unit Testing
Unit test — автоматичний тест, що перевіряє найменшу ізольовану одиницю коду (функцію, метод) в ізоляції від зовнішніх залежностей. Швидко виконується, легко локалізує проблему.Властивості хорошого unit-тесту (FIRST)Fast — виконується за мілісекундиIndependent — не залежить від інших тестівRepeatable — однаковий результат кожного разуSelf-validating — автоматично визначає успіх/провалTimely — пишеться разом з кодом, а не післяAAA патерн// Arrange — підготувати $calc = new Calculator(); // Act — виконати $result = $calc->add(2, 3); // Assert — перевірити assertEquals(5, $result);Моки та стабиДля ізоляції від БД, API, файлової системи використовують mock (імітація з перевіркою викликів) і stub (повертає задані дані без перевірки). Популярні бібліотеки: PHPUnit, Jest, pytest.
Unix-час (Timestamp)
Unix timestamp — кількість секунд, що минули з 1 січня 1970 року 00:00:00 UTC. Універсальний, незалежний від часового поясу формат для зберігання і передачі моментів часу. Чому це зручно Одне число замість складного об'єкту — легко порівнювати, зберігати, передавати через API Не залежить від часового поясу — конвертуй у локальний час на клієнті Арифметика дат стає арифметикою чисел: різниця в секундах, додати 1 день = +86400 PHP time(); // поточний Unix timestamp strtotime('2025-01-01'); // рядок → timestamp date('Y-m-d', 1735689600); // timestamp → рядок // Carbon (рекомендовано) Carbon::now()->timestamp; Carbon::createFromTimestamp(1735689600)->toDateString(); Проблема 2038 року 32-бітний signed int переповниться 19 січня 2038 о 03:14:07 UTC. У PHP 64-бітний int — проблема відсутня. Але в старих БД зі стовпцем TIMESTAMP (32-bit) — є.
UUID
UUID (Universally Unique Identifier) — 128-бітний ідентифікатор, що з надзвичайно малою імовірністю збігається з іншими. Виглядає як 550e8400-e29b-41d4-a716-446655440000. Замінює послідовні числові ID там, де вони небезпечні або незручні.Навіщо замість числового IDНе розкриває кількість записів у таблиці (/users/1 vs /users/550e8400-…)Можна генерувати на клієнті або в розподіленій системі без звернення до БДНемає конфліктів при злитті даних з кількох СУБДВерсіїUUID v4 — повністю випадковий. НайпоширенішийUUID v7 — включає timestamp, тому сортується хронологічно. Краще для первинних ключів у БД (менше фрагментації індексу)НедолікUUID v4 у якості первинного ключа InnoDB спричиняє фрагментацію B-Tree індексу через випадковий порядок вставки. UUID v7 або ULID вирішують цю проблему.