PHP
!Можливість
<!DOCTYPE html>
<?php
$password = "secret-password";
$hash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify("secret-password", $hash)) {
echo "Пароль правильний";
} </syntaxhighlight>
Типова схема:
}
|- |Назва |PHP |- |Повна назва |PHP: Hypertext Preprocessor |- |Тип |Серверна скриптова мова програмування |- |Автор |Расмус Лердорф |- |Перший реліз |1995 рік |- |Основні сфери |Web backend, CMS, e-commerce, API, CRM, ERP, SaaS |- |Актуальна основна гілка станом на 2026 рік |PHP 8.5 |- |Популярні фреймворки |Laravel, Symfony, Yii, CodeIgniter, Slim |- |Популярні CMS |WordPress, Drupal, Joomla |- |Складність для новачків |Низька або середня |- |офіційний сайт |https://www.php.net/ |}
!Для чого
- .:/app
Коли PHP — хороший вибір
Альтернативи PHP
Окремо варто відзначити яка найчастіше застосовується для; так само реалізовано вебзастосунків, CMS, інтернет-магазинів, API, CRM, ERP-модулів і інших backend-систем виступає ключовою рисою створення сайтів забезпечується через PHP. Приклад простого Dockerfile:
build: .== PHP-FPM ==
!реліз системи
default => "Невідомо",
<?php
namespace App\Service;
class UserService
{
public function createUser(): void
{
// логіка створення користувача
}
}
<?php
$pdo = new PDO(
"mysql:host=localhost;dbname=test;charset=utf8mb4", "user", "password"
);
$stmt = $pdo->query("SELECT * FROM users");
| База даних
{ </syntaxhighlight> $user = new User("Anna", "anna@example.com"); PHP і продуктивність!Компонент
PHP здатна генерувати HTML напряму, але у фреймворках часто використовують шаблонізатори. composer require guzzlehttp/guzzle
!Приклади
PHP часто застосовується для для інтернет-магазинів. echo $message;
|-
|'''Простий старт'''
|швидко створити перший сайт або скрипт
|-
|'''Дуже поширений у вебі'''
|Багато сайтів, CMS і магазинів працюють на PHP
|-
|'''Дешевий хостинг'''
|PHP підтримується майже всіма хостингами
|-
|'''Велика ERP-платформа'''
|Composer, Packagist, Laravel, Symfony, WordPress
|-
|'''Добрий для бізнес-сайтів'''
|Підходить для CMS, e-commerce, кабінетів і адмінпанелей
|-
|'''Сучасний ООП'''
|PHP 8.x має багато сучасних можливостей
|-
|'''Велика спільнота'''
|Багато документації, прикладів, розробників і готових рішень
|}
"age" => 17,
<body>
<?php
echo "Hello, world!";
→ Nginx
|-
|'''Багато legacy-коду'''
|У світі виступає як багато старих PHP-проєктів із поганою архітектурою
|-
|'''Історична непослідовність'''
|Частина старих функцій і підходів має неідеальний дизайн
|-
|'''швидко написати хаотичний код'''
|Без фреймворку й архітектури проєкт оперативно стає складним
|-
|'''Не найкращий для realtime'''
|Для деяких realtime-сценаріїв частіше використовують Node.js, Go або Elixir
|-
|'''Не базовий вибір для AI'''
|Для AI та Data Science частіше використовують Python
|-
|'''Потрібно стежити за версіями'''
|Старі PHP-версії оперативно стають ризиком безпеки
|}
!Задача
== Apache і Nginx ==
{| class="wikitable"
echo $user ["name"];
volumes:
|-
|'''PHP 5'''
|Стара епоха PHP, багато legacy-проєктів
|-
|'''PHP 7'''
|Великий стрибок продуктивності й покращення мови
|-
|'''PHP 8'''
|Сучасна гілка з JIT, attributes, union types, enum, readonly, fibers, property hooks та іншими можливостями
|}
PHP має стару репутацію, але сучасний PHP 8.x — це вже значно сильніша, швидша й більш структурована мова, ніж PHP минулих років.<?php
enum OrderStatus: string
{
case Draft = "draft";
case Paid = "paid";
case Cancelled = "cancelled";
}
│ └── index.php
== PHP і якість коду ==
!Пояснення
echo $user->sayHello();
return User::all();
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
== Обʼєктно-орієнтоване програмування в PHP ==
'''PHP''' — одна з найважливіших мов веброзробки. це популярна серверна мова програмування. |-
|'''Динамічна типізація'''
|PHP здатна автоматизовано визначати типи значень. * PHP давно існує;
* його швидко розгорнути на хостингу;
* на PHP функціонує WordPress;
* виступає як багато готових CMS і фреймворків;
* PHP добре підходить для сайтів, магазинів, кабінетів і бізнес-систем;
* навколо PHP існує велика кількість розробників, документації й готових рішень. |-
| style="background:#fff3cd; color:#856404; font-weight:bold;" |критично
|'''PHP часто має погану репутацію через старий код'''
|Багато критики PHP повʼязано зі старими підходами, а не з сучасною мовою. |-
|'''технічна підтримка типів'''
|Сучасний PHP дає можливість явно вказувати типи параметрів, властивостей і результатів.
PHP у бізнесі}); PHP-проєкти мають типові web-ризики: | ||
|---|---|---|
| Ключове | PHP дуже поширений у вебі | На PHP працюють WordPress, Drupal, Joomla, Laravel-проєкти та велика кількість сайтів. Сучасний PHP активно використовує обʼєктно-орієнтований підхід. Для великих ERP-проєктів критично використовувати: |
| JavaScript | JavaScript провідний для frontend; PHP сильний у server-side web | |
| TypeScript | TypeScript сильний у великих web-інтерфейсах; PHP сильний у CMS і backend-сайтах | |
| Python | Python сильніший в AI й automation; PHP сильніший у класичному web і CMS | |
| Java | Java частіше для enterprise backend; PHP простіший для web-сайтів і швидкого старту | |
| C# | C# сильний у .NET і enterprise; PHP часто простіший для web-хостингу й CMS | |
| Go | Go продуктивніший для мікросервісів; PHP має сильну web-екосистему |
Приклад простої PHP-сторінки:
!Альтернативи
Його популярність пояснюється тим, що:
Сервер виконує PHP-код і відправляє браузеру готовий HTML. |-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове |Laravel зробив PHP дуже сильним для сучасного backend |Laravel дав зручну архітектуру, ORM, міграції, черги, тести й екосистему. } </syntaxhighlight>
Його часто використовують разом із Nginx або Apache для обробки PHP-запитів.
PHP — це мова, яка багато років тримає значну частину вебу: від простих сайтів до великих CMS, магазинів і бізнес-систем.
!Інструмент
Головна ідея PHP
Через Packagist можна встановлювати:
}
FROM php:8.4-fpm
|-
|int
|10
|Ціле число
|-
|float
|3.14
|Дробове число
|-
|string
|"Hello"
|Рядок тексту
|-
|bool
|true, false
|Логічне значення
|-
|array
|[1, 2, 3]
|Масив
|-
|object
|new User()
|Обʼєкт
|-
|null
|null
|Відсутність значення
|-
|resource
|Файл, зʼєднання
|Спеціальний ресурс
|}
php:
Сучасний PHP значно продуктивніший, ніж старі версії. |- | style="background:#f8d7da; color:#721c24; font-weight:bold;" |Увага |Поганий PHP-код дуже швидко написати |Без архітектури, фреймворку, типів і тестів PHP-проєкт оперативно перетворюється на хаос. |- |1 |HTML і базовий CSS |- |2 |Основи PHP: змінні, умови, цикли, функції |- |3 |Масиви, форми, GET і POST |- |4 |Робота з файлами |- |5 |PDO і база даних MySQL або PostgreSQL |- |6 |ООП: класи, обʼєкти, інтерфейси, namespace |- |7 |Composer і автозавантаження |- |8 |Laravel або Symfony |- |9 |REST API, JSON, авторизація |- |10 |Тестування через PHPUnit або Pest |- |11 |Docker, PHP-FPM, Nginx |- |12 |Безпека, кешування, черги, CI/CD |}
!Що вивчати → Браузер показує сторінку
PHP і Docker
</syntaxhighlight>Приклад API route:
|-
|'''реліз системи PHP'''
|PHP 8.2 або новіша підтримувана реліз системи
|-
|'''Редактор'''
|VS Code або PhpStorm
|-
|'''Менеджер залежностей'''
|Composer
|-
|'''База даних'''
|MySQL, MariaDB або PostgreSQL
|-
|'''Web-сервер'''
|Nginx або Apache
|-
|'''Фреймворк'''
|Laravel для більшості сучасних web-проєктів
|-
|'''Тестування'''
|PHPUnit або Pest
|-
|'''Контроль версій'''
|Git
|-
|'''Форматування'''
|PHP-CS-Fixer або Laravel Pint
|}
через '''Namespace''' користувачі можуть організовувати класи й уникати конфліктів назв.== PHP і HTML ==
};
У Laravel API зазвичай створюють через controllers, routes і resources.
Якщо потрібно зробити сайт, CMS, інтернет-магазин, кабінет клієнта, адмінпанель або backend на Laravel — PHP досі виступає як дуже практичним вибором.
PHP створив Расмус Лердорф у 1995 році як набір інструментів для власної домашньої сторінки.
PHP — це не мова минулого. |-
|Простий старт |швидко створити першу сторінку або скрипт. {| class="wikitable" Laravel — найпопулярніший сучасний PHP-фреймворк. |- |Використовувати prepared statements |Захист від SQL Injection |- |Екранувати HTML |Захист від XSS |- |Використовувати CSRF-токени |Захист форм від підроблених запитів |- |Не зберігати паролі відкритим текстом |Потрібно використовувати password_hash |- |Оновлювати PHP і залежності |Старі версії можуть містити вразливості |- |Не зберігати секрети в коді |Ключі мають бути в environment variables |} !Інструмент
конкурентні переваги PHP
"psr-4": {
Важливі акценти
"paid" => "Оплачено",
- реліз системи PHP;
- OPcache;
- якість SQL-запитів;
- кешування;
- індекси в базі даних;
- технічна архітектура застосунку;
- черги;
- асинхронна обробка;
- web-сервер;
- конфігурація PHP-FPM;
- кількість залежностей. Це мова величезної частини вебу, яка продовжує розвиватися і залишається практичною для бізнесу.
Вона сильна там, де потрібні: !Напрям
Приклад коду
| Typed properties | Типізація властивостей класу |
| Union types | Один із кількох можливих типів |
| Attributes | Метадані для класів, методів і властивостей |
| Enums | Обмежений набір значень |
| Readonly properties | Захист від зміни після ініціалізації |
| Constructor property promotion | Коротший запис властивостей у конструкторі |
| Match expression | Зручніша альтернатива switch |
| Fibers | Низькорівнева основа для cooperative multitasking |
services: <title>PHP Page</title>
PHP створювався як проста мова для генерації HTML-сторінок на сервері. Найпростіша програма:
== Рекомендований шлях навчання PHP ==
WORKDIR /app
Типові задачі:
!Правило
→ Web-сервер
!Особливість
!Навіщо потрібна
== Популярність PHP ==
│ ├── Repository/
!Значення
"require": {
!Перевага
- "8080:80"
|-
|'''Серверна мова'''
|PHP-код виконується на сервері, а користувач системи отримує результат. |}
Назва PHP історично розшифровувалась як '''Personal Home Page''', але зараз офіційно застосовують, коли потрібно рекурсивне значення '''PHP: Hypertext Preprocessor'''. → PHP-скрипт
PHP часто застосовується для для створення REST API. !Для чого застосовується для
<?php
$status = "paid";
$message = match ($status) {
"draft" => "Чернетка",
|-
|'''Frontend'''
|JavaScript, TypeScript
|-
|'''AI / Data Science'''
|Python, R, Julia
|-
|'''Enterprise backend'''
|Java, C#
|-
|'''High-performance backend'''
|Go, Rust
|-
|'''Realtime-системи'''
|Node.js, Go, Elixir
|-
|'''Mobile Android'''
|Kotlin
|-
|'''Mobile iOS'''
|Swift
|-
|'''Системне програмування'''
|C, C++, Rust
|}
</html> PHP часто запускають у Docker. * WooCommerce;
- Magento;
- OpenCart;
- PrestaShop;
- Laravel-магазини;
- custom e-commerce. Багато компонентів Symfony використовуються в інших PHP-проєктах, включно з Laravel. Вона застосовується для для створення:
На продуктивність впливають:
Джерела
Типи даних
├── src/
Недоліки PHP
Сучасні функції ERP PHP
- HTTP-клієнти;
- ORM;
- фреймворки;
- бібліотеки для PDF;
- бібліотеки для Excel;
- SDK для API;
- пакети для тестування;
- пакети для логування;
- інтеграції з платіжними системами. → База даних
Namespace
- Blade у Laravel;
- Twig у Symfony;
- Smarty у старих або legacy-проєктах. {| class="wikitable"
Мінімальний набір для першого PHP-проєкту
Популярні інструменти: <?php
$user = [ "name" => "Anna",
| CMS
Composer — це провідний менеджер залежностей у PHP. "php": "^8.2", PHP і безпека"message" => "Hello from PHP API" Він дає можливість: ]; <?php use PHPUnit\Framework\TestCase; class MathTest extends TestCase { public function testAdd(): void { $this->assertEquals(5, 2 + 3); |
Приклад
project/ WordPress — це CMS, написана на PHP. ├── public/ </syntaxhighlight> PHP у e-commerce
→ HTTP-запит
|
Обʼєктно-орієнтоване програмування | PHP підтримує класи, інтерфейси, трейти, enum, namespace. │ ├── Service/ | SEO-опис
image: nginx:latest
!Пояснення
== PHP і шаблони ==
{| class="wikitable"
"autoload": {
PHP сильно змінився за останні роки. * enterprise-проєктах;
* складних backend-системах;
* довгострокових продуктах;
* проєктах, де потрібна сувора технічна архітектура;
* системах із великою кількістю інтеграцій.<head>
<h1>Привіт, {{ $user->name }}</h1>
!Порівняння з PHP
Одна з головних причин популярності PHP — '''WordPress'''.
ports: Браузер користувача PHP часто функціонує з web-серверами:
PHP у ERP та корпоративних системахPHP дуже важливий у CMS-екосистемі. }, PHP історично дуже тісно повʼязаний з HTML.!Статус
{| class="wikitable"
!Мова
<?php echo "Привіт з PHP!"; ?>
* сайти;
* CMS;
* WordPress;
* інтернет-магазини;
* Laravel-застосунки;
* backend API;
* адмінпанелі;
* web-орієнтовані бізнес-системи;
* інтеграції;
* швидкий запуск web-проєкту.== PHP і тестування ==
* SQL Injection;
* XSS;
* CSRF;
* небезпечне завантаження файлів;
* слабка авторизація;
* витік сесій;
* неправильна робота з паролями;
* небезпечні залежності;
* неправильні права на файли.</head>
├── tests/
!Якщо потрібно
== Основні особливості PHP ==
== Історія K2 ERP ==
== Laravel ==
== PHP і API ==
"guzzlehttp/guzzle": "^7.0"
nginx:
├── vendor/
Приклад PHPUnit-тесту:<syntaxhighlight lang="php">
<h1>
!Пояснення
{| class="wikitable"
!Пояснення
!Недолік
!Чи підходить PHP? → PHP-FPM
'''Symfony''' — потужний PHP-фреймворк і набір компонентів для великих застосунків.<blockquote>'''PHP — це мова, яка створює сторінку або відповідь на сервері, а браузер отримує вже результат.'''</blockquote>
== Простими словами ==
Приклад enum:<syntaxhighlight lang="php">
Приклади:
!Пояснення
|-
|'''[[PHPStan]]'''
|Статичний аналіз коду
|-
|'''[[Psalm]]'''
|Статичний аналіз і перевірка типів
|-
|'''[[PHP-CS-Fixer]]'''
|Автоматичне форматування коду
|-
|'''[[PHP_CodeSniffer]]'''
|Перевірка стандартів коду
|-
|'''[[Rector]]'''
|Автоматичний refactoring і оновлення версій коду
|-
|'''[[Composer Audit]]'''
|Перевірка вразливостей у залежностях
|}
PHP став особливо важливим для розвитку динамічного вебу, CMS і блогів.== PHP у порівнянні з іншими мовами ==
Основні типи даних у PHP:
}
Laravel дає:
├── composer.json
== Популярні PHP-фреймворки ==
"role" => "student"
Приклад простої JSON-відповіді:<syntaxhighlight lang="php">
== PHP 5, PHP 7 і PHP 8 ==
});
{| class="wikitable"
|-
|'''[[WordPress]]'''
|Найпопулярніша CMS для сайтів, блогів і магазинів
|-
|'''[[Drupal]]'''
|Потужна CMS для складних контентних і корпоративних систем
|-
|'''[[Joomla]]'''
|CMS для сайтів і порталів
|-
|'''[[Magento]]'''
|E-commerce платформа
|-
|'''[[OpenCart]]'''
|платформа для інтернет-магазинів
|}
}
Популярні шаблонізатори:
PHP залишається однією з найважливіших мов веброзробки.== PHP і бази даних ==
!Значення
З часом PHP перетворився на повноцінну серверну мову програмування, яка стала дуже популярною через простоті розгортання, дешевому хостингу та прямій інтеграції з HTML. |-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове
|'''PHP простий для старту'''
|Першу сторінку можна створити дуже оперативно. Приклад класу:<syntaxhighlight lang="php">
{| class="wikitable sortable"
PHP має інструменти для автоматичного тестування. Приклад Blade:<syntaxhighlight lang="html">
Сучасний PHP підтримує багато можливостей, яких не було в старому PHP. |-
|'''інтеграційні функції ERP з HTML'''
|PHP можна вставляти безпосередньо в HTML. |-
|'''[[Apache]]'''
|Класичний варіант, часто з mod_php або PHP-FPM
|-
|'''[[Nginx]]'''
|Часто застосовується для з PHP-FPM
|-
|'''[[Caddy]]'''
|Сучасний web-сервер із автоматичним HTTPS
|}
!Пояснення
</body>
== Коротко ==
== Висновок ==
Route::get('/users', function () {
|-
|'''[[PHPUnit]]'''
|Unit та integration тести
|-
|'''[[Pest]]'''
|Сучасний тестовий фреймворк із простим синтаксисом
|-
|'''[[Behat]]'''
|BDD-тестування
|-
|'''[[Codeception]]'''
|Functional, acceptance і API-тести
|}
{| class="wikitable"
]);
{| class="wikitable"
PHP часто обирають для бізнесу, коли потрібно:
== Packagist ==
<?php header("Content-Type: application/json"); echo json_encode([ "status" => "ok", } PHP у бізнес-системах→ PHP-застосунок
| |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|