PHP
</head>
→ Web-сервер ├── composer.lock
У сучасних PHP-проєктах зазвичай вхідною точкою є собою файл:
PHP створювався як проста мова для генерації HTML-сторінок на сервері.; |- |'''Велика програмний пакет''' |є собою Composer, Packagist, Laravel, Symfony, WordPress та інші інструменти.; Вона застосовується для створення: |- |'''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 і безпека == services: public/index.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 і тестування == echo $user->sayHello();
Приклад composer.json:
Route::get('/users', function () { |- |'''реліз PHP''' |PHP 8.2 або новіша підтримувана реліз |- |'''Редактор''' |VS Code або PhpStorm |- |'''Менеджер залежностей''' |Composer |- |'''База даних''' |MySQL, MariaDB або PostgreSQL |- |'''Web-сервер''' |Nginx або Apache |- |'''Фреймворк''' |Laravel для більшості сучасних web-проєктів |- |'''Тестування''' |PHPUnit або Pest |- |'''Контроль версій''' |Git |- |'''Форматування''' |PHP-CS-Fixer або Laravel Pint |}
build: .; {| class="wikitable"<?php
$password = "secret-password";
$hash = password_hash($password, PASSWORD_DEFAULT);
if (password_verify("secret-password", $hash)) {
echo "Пароль правильний";}
"age" => 17,
Symfony
}
};
Висновок
echo $user ["name"];
PHP і CMS
PHP і продуктивність
PHP залишається однією з найважливіших мов веброзробки.;== PHP і API == Сучасний PHP підтримує роботу багато можливостей, яких не було в старому PHP.; Це мова величезної частини вебу, яка продовжує розвиватися і залишається практичною для бізнесу.'''</blockquote> == Популярність PHP == PHP має змогу бути корисним у ERP і корпоративних системах для:
Популярні PHP-фреймворки
},
PHP часто функціонує з web-серверами:
| Статус | |
|---|---|
| Простий старт | без зайвих зусиль створити перший сайт або скрипт |
| Дуже поширений у вебі | Багато сайтів, CMS і магазинів працюють на PHP |
| Дешевий хостинг | PHP підтримується майже всіма хостингами |
| Велика програмний пакет | Composer, Packagist, Laravel, Symfony, WordPress |
| Добрий для бізнес-сайтів | Підходить для CMS, e-commerce, кабінетів і адмінпанелей |
| Сучасний ООП | PHP 8.x має багато сучасних можливостей |
| Велика спільнота | Багато документації, прикладів, розробників і готових рішень |
} Його часто використовують разом із Nginx або Apache для обробки PHP-запитів.; |}
<?php
use PHPUnit\Framework\TestCase;
class MathTest extends TestCase {
public function testAdd(): void
{
$this->assertEquals(5, 2 + 3);
Багато компонентів Symfony використовуються в інших PHP-проєктах, включно з Laravel.;
Браузер
{
!Теза
<blockquote>'''PHP добре підходить для web-орієнтованих бізнес-систем, особливо якщо потрібна швидка розробка програмного забезпечення й багато готових компонентів.'''</blockquote>
'''Composer''' — це центральний менеджер залежностей у PHP.;== PHP у ERP та корпоративних системах ==
Laravel дає:
{| class="wikitable"
З часом PHP перетворився на повноцінну серверну мову програмування, яка стала дуже популярною завдяки наявності простоті розгортання, дешевому хостингу та прямій інтеграції з HTML.; |-
|'''Динамічна типізація'''
|PHP має змогу автономно визначати типи значень.; |-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове
|'''Сучасний PHP сильно відрізняється від старого PHP'''
|PHP 8.x має типізацію, атрибути, enum, сучасний ООП-підхід, покращену продуктивність.;<blockquote>'''Якщо потрібно зробити сайт, CMS, інтернет-магазин, кабінет клієнта, адмінпанель або backend на Laravel — PHP досі є собою дуже практичним вибором.'''</blockquote>
== Namespace ==
!Для чого
{| class="wikitable"
'''PHP''' — одна з найважливіших мов веброзробки.; {| class="wikitable"
PHP має стару репутацію, але сучасний PHP 8.x — це вже значно сильніша, швидша й більш структурована мова, ніж PHP минулих років.; це популярна серверна мова програмування, яка найчастіше застосовується; додатково реалізовано вебзастосунків, CMS, інтернет-магазинів, API, CRM, ERP-модулів та інших backend-систем виступає ключовою рисою створення сайтів забезпечується через '''PHP'''.; Приклад простого <code>Dockerfile</code>:<pre>
!Навіщо потрібна
PHP часто обирають для бізнесу, коли потрібно:
PHP-проєкти мають типові web-ризики:
|-
|Корпоративний сайт
| style="background:#d4edda; color:#155724; font-weight:bold;" |Добре
|-
|WordPress-сайт
| style="background:#d4edda; color:#155724; font-weight:bold;" |Найкращий вибір
|-
|Інтернет-магазин
| style="background:#d4edda; color:#155724; font-weight:bold;" |Добре
|-
|Laravel backend
| style="background:#d4edda; color:#155724; font-weight:bold;" |Дуже добре
|-
|CRM / ERP web-модулі
| style="background:#d4edda; color:#155724; font-weight:bold;" |Добре
|-
|REST API
| style="background:#d4edda; color:#155724; font-weight:bold;" |Добре
|-
|SaaS
| style="background:#d4edda; color:#155724; font-weight:bold;" |Добре
|-
|Realtime chat
| style="background:#fff3cd; color:#856404; font-weight:bold;" |Можливо, але не ключовий вибір
|-
|AI / Machine Learning
| style="background:#fff3cd; color:#856404; font-weight:bold;" |Не ключовий вибір
|-
|Системне програмування
| style="background:#f8d7da; color:#721c24; font-weight:bold;" |Не підходить
|}
PHP добре функціонує з базами даних.;== Laravel ==
!Приклади
├── composer.json
PHP — це мова для серверної частини вебу.; |-| істотно | PHP часто має погану репутацію через старий код | Багато критики PHP повʼязано зі старими підходами, а не з сучасною мовою.;
} Основні особливості PHP│ ├── Repository/ Приклади: php: Популярні інструменти:
|
| PHPStan | Статичний аналіз коду | |
| Psalm | Статичний аналіз і перевірка типів | |
| PHP-CS-Fixer | Автоматичне форматування коду | |
| PHP_CodeSniffer | Перевірка стандартів коду | |
| Rector | Автоматичний refactoring і актуалізація коду | |
| Composer Audit | Перевірка вразливостей у залежностях |
PHP 5, PHP 7 і PHP 8
Простими словами
Пояснення
project/ FROM php:8.4-fpm PHP часто запускають у Docker.; /app <?php
$status = "paid";
$message = match ($status) {
"draft" => "Чернетка",
│ ├── Controller/
Історичний розвиток
Головна ідея PHP
Laravel Web / Backend Сучасні web-застосунки, API, SaaS, адмінпанелі, бізнес-системи Symfony Enterprise / Components Великі системи, reusable components, складні backend-проєкти Yii Web Швидка розробка програмного забезпечення web-застосунків CodeIgniter Web Легкі web-проєкти, прості сайти й застосунки Slim Microframework Невеликі API й мікросервіси Laminas Enterprise Корпоративні PHP-застосунки
- "8080:80"- маршрутизацію;
- ORM Eloquent;
- міграції бази даних;
- Blade-шаблони;
- черги;
- події;
- авторизацію;
- middleware;
- тести;
- CLI Artisan;
- екосистему пакетів.; return view('welcome');
- фреймворк;
- модульну архітектуру;
- ORM;
- міграції;
- тести;
- черги;
- логування;
- контроль доступів;
- документацію API;
- code review.;== PHP і шаблони ==
На продуктивність впливають:
| Напрям | |
|---|---|
| MySQL | Класичний вибір для PHP-сайтів, CMS і магазинів |
| MariaDB | Популярна альтернатива MySQL |
| PostgreSQL | Потужна реляційна база для складніших систем |
| SQLite | Легка файлова база для малих застосунків і тестів |
| Redis | Кеш, сесії, черги, тимчасові інформаційні дані |
| MongoDB | Документоорієнтована база для окремих сценаріїв |
Класична схема роботи PHP виглядає так:
!реліз !Фреймворк !Параметр == PHP-FPM == == Типи даних == "guzzlehttp/guzzle": "^7.0"
Приклад API route:
завдяки наявності '''Namespace''' користувачі можуть організовувати класи й уникати конфліктів назв.; ]); !Для чого застосовується }
!Web-сервер !Альтернативи
├── src/ ];
Що вивчати Серверна мова PHP-код виконується на сервері, а користувач системи отримує результат.; !Можливість 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
Коротко
База даних
PHP і WordPress
WordPress — це CMS, написана на PHP.;
PHP — це не мова минулого.; composer require guzzlehttp/guzzle
PHP у бізнес-системах
PHP має змогу генерувати HTML напряму, але у фреймворках часто використовують шаблонізатори.; Він надає можливість:
WordPress Найпопулярніша CMS для сайтів, блогів і магазинів Drupal Потужна CMS для складних контентних і корпоративних систем Joomla CMS для сайтів і порталів Magento E-commerce платформа OpenCart платформа для інтернет-магазинів
!Пояснення
Правило
- WooCommerce;
- Magento;
- OpenCart;
- PrestaShop;
- Laravel-магазини;
- custom e-commerce.; |-
інтеграційні функціональні можливості з HTML PHP можна вставляти безпосередньо в HTML.; Сучасний PHP активно використовує обʼєктно-орієнтований підхід.;<?php header("Content-Type: application/json");
echo json_encode([ "status" => "ok", PHP-FPM — це FastCGI Process Manager для PHP.; |}
Рекомендація Інструмент ├── vendor/ Рекомендований шлях навчання PHP
int 10Ціле число float 3.14Дробове число string "Hello"Рядок тексту bool true,falseЛогічне значення array [1, 2, 3]Масив object new User()Обʼєкт null nullВідсутність значення resource Файл, зʼєднання Спеціальний ресурс │ └── Entity/ <body>
"message" => "Hello from PHP API" PHP часто застосовується для створення REST API.; |-
Простий старт без зайвих зусиль створити першу сторінку або скрипт.; print_r($users); "App\\": "src/"
Використовувати prepared statements Захист від SQL Injection Екранувати HTML Захист від XSS Використовувати CSRF-токени Захист форм від підроблених запитів Не зберігати паролі відкритим текстом Потрібно використовувати password_hash Оновлювати PHP і залежності Старі версії можуть містити вразливості Не зберігати секрети в коді Ключі мають бути в environment variables Коли PHP — хороший вибір
</body>
└── README.md PHP створив Расмус Лердорф у 1995 році як набір інструментів для власної домашньої сторінки.;== Альтернативи PHP ==
- оперативно запустити сайт;
- зробити інтернет-магазин;
- підтримувати WordPress;
- розробити Laravel-застосунок;
- створити API;
- зробити адмінпанель;
- інтегрувати сайт з CRM або ERP;
- зробити кабінет клієнта;
- автоматизувати документи;
- обробляти заявки;
- створити billing або SaaS.; !Недолік
→ PHP-застосунок
volumes:
Найпростіша програма:
- блогів;
- корпоративних сайтів;
- медіа-сайтів;
- інтернет-магазинів;
- landing pages;
- сайтів послуг;
- особистих сайтів;
- контентних платформ.; → HTML-відповідь
{| class="wikitable sortable" {| class="wikitable" * Blade у Laravel; * Twig у Symfony; * Smarty у старих або legacy-проєктах.; $users = $stmt->fetchAll(PDO::FETCH_ASSOC); !Мова * CRM; * ERP-модулів; * адмінпанелей; * кабінетів клієнта; * внутрішніх порталів; * документообігу; * інтеграцій з банками; * інтеграцій з платіжними системами; * інтеграцій з РРО; * звітів; * автоматизації бізнес-процесів.;</html>Як застосовується з PHP
- SQL Injection;
- XSS;
- CSRF;
- небезпечне завантаження файлів;
- слабка авторизація;
- витік сесій;
- неправильна робота з паролями;
- небезпечні залежності;
- неправильні права на файли.;== переважні аспекти PHP ==
Напрям → База даних
Приклад Blade:
- сайти;
- CMS;
- WordPress;
- інтернет-магазини;
- Laravel-застосунки;
- backend API;
- адмінпанелі;
- web-орієнтовані бізнес-системи;
- інтеграції;
- швидкий запуск web-проєкту.; {| class="wikitable"
!Пояснення <?php echo "Hello, world!";Змінні:!Значення } "php": "^8.2", == Composer ==
ports: Браузер користувача
→ PHP-скрипт PHP має змогу використовуватися для:
default => "Невідомо",
Приклад Приклад PDO: "autoload": { Приклад простої структури сучасного PHP-проєкту:<pre> <html> PHP має інструменти для автоматичного тестування.; |- |'''Назва''' |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/ |} {| class="wikitable" Приклад PHPUnit-тесту:<pre> == Джерела == → PHP-FPM == Для чого застосовується PHP == <?php class User { public function __construct( public string $name, public string $email ) { } public function sayHello(): string { return "Привіт, я {$this->name}"; {| class="wikitable" <blockquote>'''Якщо у світі існує багато сайтів на WordPress, то PHP автономно залишається важливою мовою вебу.'''</blockquote> </h1> !Для чого PHP історично дуже тісно повʼязаний з HTML.; → HTTP-запит == Мінімальний набір для першого PHP-проєкту == * web-інтерфейсів; * кабінетів користувача; * API; * інтеграцій; * звітів; * документообігу; * адмінпанелей; * модулів для клієнтського доступу; * обміну з сайтами й маркетплейсами.;<?php function add(int $a, int $b): int { return $a + $b; } echo add(5, 7);Масив:Тобто PHP функціонує переважно на сервері.; |-Приклад класу:<pre> PHP дуже важливий у CMS-екосистемі.; │ ├── Service/
Одна з головних причин популярності PHP — '''WordPress'''.; Він отримує вже готовий HTML, JSON або іншу відповідь.; → Браузер показує сторінку
!Інструмент !Значення == Обʼєктно-орієнтоване програмування в PHP == {| class="wikitable" WORKDIR /app |- |'''[[Apache]]''' |Класичний варіант, часто з mod_php або PHP-FPM |- |'''[[Nginx]]''' |Часто застосовується з PHP-FPM |- |'''[[Caddy]]''' |Сучасний web-сервер із автоматичним HTTPS |}
== PHP у порівнянні з іншими мовами == !Етап == PHP у бізнесі == Для великих ERP-проєктів істотно використовувати: <h1> |- |'''[[PHPUnit]]''' |Unit та integration тести |- |'''[[Pest]]''' |Сучасний тестовий фреймворк із простим синтаксисом |- |'''[[Behat]]''' |BDD-тестування |- |'''[[Codeception]]''' |Functional, acceptance і API-тести |} "cancelled" => "Скасовано", ├── public/ !Порівняння з PHP Його популярність пояснюється тим, що: !Тип
<title>PHP Page</title> !Пояснення == Важливі акценти == PHP став особливо важливим для розвитку динамічного вебу, CMS і блогів.; PHP сильно змінився за останні роки.; │ └── index.php <?php echo "Привіт з PHP!"; ?> !Задача nginx: == Packagist ==
супровід типів Сучасний PHP надає можливість явно вказувати типи параметрів, властивостей і результатів.; ├── tests/ PHP часто застосовується для інтернет-магазинів.; |-
Увага Поганий PHP-код дуже без зайвих зусиль написати Без архітектури, фреймворку, типів і тестів PHP-проєкт оперативно перетворюється на хаос.; Типові задачі: <?php
$user = [ "name" => "Anna",
- Обʼєктно-орієнтоване програмування PHP підтримує роботу класи, інтерфейси, трейти, enum, namespace.; PHP — це мова, яка багато років тримає значну частину вебу: від простих сайтів до великих CMS, магазинів і бізнес-систем.
<?php
$pdo = new PDO(
"mysql:host=localhost;dbname=test;charset=utf8mb4", "user", "password");
$stmt = $pdo->query("SELECT * FROM users");
"paid" => "Оплачено",CMS Структура PHP-проєкту
Packagist — це головне сховище PHP-пакетів для Composer.; Symfony часто використовують у: → Nginx
Сучасний PHP значно продуктивніший, ніж старі версії.; Приклад маршруту Laravel:!Якщо потрібно !Особливість |- | style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове |'''PHP дуже поширений у вебі''' |На PHP працюють WordPress, Drupal, Joomla, Laravel-проєкти та велика кількість сайтів.; echo $message; == PHP у e-commerce == - .:/appОсновні типи даних у PHP:
Як застосовується PHP Сайти Генерація HTML-сторінок на сервері Корпоративні сайти, блоги, landing pages CMS Керування контентом WordPress, Drupal, Joomla Інтернет-магазини Каталоги, кошики, замовлення, оплати WooCommerce, Magento, OpenCart Backend API REST API, JSON-відповіді, бізнес-логіка Laravel API, Symfony API CRM Клієнти, угоди, задачі, комунікації Власні CRM-системи ERP обліковий облік, документи, складський облік, фінансовий блок, процеси Внутрішні бізнес-системи SaaS Онлайн-сервіси для бізнесу Кабінети клієнтів, адмінпанелі, billing автоматизація процесів Скрипти, інтеграції, cron-задачі Обмін із API, імпорт/експорт даних $user = new User("Anna", "anna@example.com");
PHP і бази даних
PHP і Docker
- PHP давно існує;
- його без зайвих зусиль розгорнути на хостингу;
- на PHP функціонує WordPress;
- є собою багато готових CMS і фреймворків;
- PHP добре підходить для сайтів, магазинів, кабінетів і бізнес-систем;
- навколо PHP існує велика кількість розробників, документації й готових рішень.; |-
| style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове |Laravel зробив PHP дуже сильним для сучасного backend |Laravel дав зручну архітектуру, ORM, міграції, черги, тести й екосистему.; !Пояснення
- встановлювати бібліотеки;
- керувати версіями пакетів;
- підключати автозавантаження класів;
- описувати залежності проєкту;
- працювати з Packagist.; }
"psr-4": {Назва PHP історично розшифровувалась як Personal Home Page, але зараз офіційно застосовують, коли потрібно рекурсивне значення PHP: Hypertext Preprocessor.; COPY .; !Перевага
Symfony — потужний PHP-фреймворк і набір компонентів для великих застосунків.; |- | style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове |PHP простий для старту
|Першу сторінку можна створити дуже оперативно.; Laravel — найпопулярніший сучасний PHP-фреймворк.; Приклад хешування пароля:
"require": { |- |'''Багато legacy-коду''' |У світі є собою багато старих PHP-проєктів із поганою архітектурою |- |'''Історична непослідовність''' |Частина старих функцій і підходів має неідеальний дизайн |- |'''без зайвих зусиль написати хаотичний код''' |Без фреймворку й архітектури проєкт оперативно стає складним |- |'''Не найкращий для realtime''' |Для деяких realtime-сценаріїв частіше використовують Node.js, Go або Elixir |- |'''Не ключовий вибір для AI''' |Для AI та Data Science частіше використовують Python |- |'''Потрібно стежити за версіями''' |Старі PHP-версії оперативно стають ризиком безпеки |} Встановлення пакета:<pre> == Сучасні функціональні можливості PHP == == Apache і Nginx == == Приклад коду == }); |- |'''PHP 5''' |Стара епоха PHP, багато legacy-проєктів |- |'''PHP 7''' |Великий стрибок продуктивності й покращення мови |- |'''PHP 8''' |Сучасна гілка з JIT, attributes, union types, enum, readonly, fibers, property hooks та іншими можливостями |} <?php enum OrderStatus: string { case Draft = "draft"; case Paid = "paid"; case Cancelled = "cancelled"; }Приклад match:
!Як застосовується з PHP
image: nginx:latest{| class="wikitable" <h1>Привіт, {{ $user->name }}</h1> |- |'''Typed properties''' |Типізація властивостей класу |- |'''Union types''' |Один із кількох можливих типів |- |'''Attributes''' |Метадані для класів, методів і властивостей |- |'''Enums''' |Обмежений набір значень |- |'''Readonly properties''' |Захист від зміни після ініціалізації |- |'''Constructor property promotion''' |Коротший запис властивостей у конструкторі |- |'''Match expression''' |Зручніша альтернатива switch |- |'''Fibers''' |Низькорівнева основа для cooperative multitasking |} Приклад enum:<pre> });
Сервер виконує PHP-код і відправляє браузеру готовий HTML.; користувач системи не бачить PHP-код.;<!DOCTYPE html> Типова схема:
<?php $languages = ["PHP", "JavaScript", "Python", "Java"]; foreach ($languages as $language) { echo $language . PHP_EOL; }Асоціативний масив:
!Компонент <?php
namespace App\Service;
class UserService {
public function createUser(): void { // логіка створення користувача }}
PHP і HTML
Недоліки PHP
Пояснення PHP і якість коду
Популярні шаблонізатори:
характеристика
- enterprise-проєктах;
- складних backend-системах;
- довгострокових продуктах;
- проєктах, де потрібна сувора технічна архітектура;
- системах із великою кількістю інтеграцій.;<?php
$name = "Anna"; $age = 17;
echo "Привіт, $name! Тобі $age років.";
Функція:* каталог товарів; * кошик; * оформлення замовлення; * оплати; * доставка; * промокоди; * залишки на складі; * особистий кабінет; * інтеграційні функціональні можливості з CRM або ERP.; * офіційно затверджений сайт PHP: https://www.php.net/ * Завантаження PHP: https://www.php.net/downloads.php * Підтримувані версії PHP: https://www.php.net/supported-versions.php * PHP 8.5 Release Announcement: https://www.php.net/releases/8.5/en.php * PHP Manual: https://www.php.net/manual/en/ * Composer: https://getcomposer.org/ * Packagist: https://packagist.org/ * Laravel: https://laravel.com/ * Symfony: https://symfony.com/ * WordPress: https://wordpress.org/
- реліз PHP;
- OPcache;
- якість SQL-запитів;
- кешування;
- індекси в базі даних;
- технічна архітектура застосунку;
- черги;
- асинхронна обробка;
- web-сервер;
- конфігурація PHP-FPM;
- кількість залежностей.; Приклад простої JSON-відповіді: