Перейти до вмісту

PHP

Матеріал з K2 ERP Wiki Ukraine — База знань з автоматизації та санкцій в Україні

PHP — це популярна серверна мова програмування, яка найчастіше використовується для створення сайтів, вебзастосунків, CMS, інтернет-магазинів, API, CRM, ERP-модулів та інших backend-систем.

Назва PHP історично розшифровувалась як Personal Home Page, але зараз офіційно використовується рекурсивне значення PHP: Hypertext Preprocessor.

PHP — це мова, яка багато років тримає значну частину вебу: від простих сайтів до великих CMS, магазинів і бізнес-систем.

Коротко

Параметр Значення
Назва 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/

Головна ідея PHP

PHP створювався як проста мова для генерації HTML-сторінок на сервері.

Класична схема роботи PHP виглядає так:

Браузер користувача
→ HTTP-запит
→ Web-сервер
→ PHP-скрипт
→ HTML-відповідь
→ Браузер показує сторінку

Тобто PHP працює переважно на сервері. Користувач не бачить PHP-код. Він отримує вже готовий HTML, JSON або іншу відповідь.

PHP — це мова, яка створює сторінку або відповідь на сервері, а браузер отримує вже результат.

Важливі акценти

Статус Теза Пояснення
Ключове PHP дуже поширений у вебі На PHP працюють WordPress, Drupal, Joomla, Laravel-проєкти та велика кількість сайтів.
Ключове PHP простий для старту Першу сторінку можна створити дуже швидко.
Ключове Сучасний PHP сильно відрізняється від старого PHP PHP 8.x має типізацію, атрибути, enum, сучасний ООП-підхід, покращену продуктивність.
Ключове Laravel зробив PHP дуже сильним для сучасного backend Laravel дав зручну архітектуру, ORM, міграції, черги, тести й екосистему.
Важливо PHP часто має погану репутацію через старий код Багато критики PHP повʼязано зі старими підходами, а не з сучасною мовою.
Увага Поганий PHP-код дуже легко написати Без архітектури, фреймворку, типів і тестів PHP-проєкт швидко перетворюється на хаос.

Історія

PHP створив Расмус Лердорф у 1995 році як набір інструментів для власної домашньої сторінки.

З часом PHP перетворився на повноцінну серверну мову програмування, яка стала дуже популярною завдяки простоті розгортання, дешевому хостингу та прямій інтеграції з HTML.

PHP став особливо важливим для розвитку динамічного вебу, CMS і блогів.

Для чого використовується 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, імпорт/експорт даних

Популярність PHP

PHP залишається однією з найважливіших мов веброзробки.

Його популярність пояснюється тим, що:

  • PHP давно існує;
  • його легко розгорнути на хостингу;
  • на PHP працює WordPress;
  • є багато готових CMS і фреймворків;
  • PHP добре підходить для сайтів, магазинів, кабінетів і бізнес-систем;
  • навколо PHP існує велика кількість розробників, документації й готових рішень.

PHP і WordPress

Одна з головних причин популярності PHP — WordPress.

WordPress — це CMS, написана на PHP. Вона використовується для створення:

  • блогів;
  • корпоративних сайтів;
  • медіа-сайтів;
  • інтернет-магазинів;
  • landing pages;
  • сайтів послуг;
  • особистих сайтів;
  • контентних платформ.

Якщо у світі існує багато сайтів на WordPress, то PHP автоматично залишається важливою мовою вебу.

PHP і HTML

PHP історично дуже тісно повʼязаний з HTML.

Приклад простої PHP-сторінки:

<!DOCTYPE html>
<html>
<head>
    <title>PHP Page</title>
</head>
<body>
    <h1>
        <?php echo "Привіт з PHP!"; ?>
    </h1>
</body>
</html>

Сервер виконує PHP-код і відправляє браузеру готовий HTML.

Приклад коду

Найпростіша програма:

<?php

echo "Hello, world!";

Змінні:

<?php

$name = "Anna";
$age = 17;

echo "Привіт, $name! Тобі $age років.";

Функція:

<?php

function add(int $a, int $b): int
{
    return $a + $b;
}

echo add(5, 7);

Масив:

<?php

$languages = ["PHP", "JavaScript", "Python", "Java"];

foreach ($languages as $language) {
    echo $language . PHP_EOL;
}

Асоціативний масив:

<?php

$user = [
    "name" => "Anna",
    "age" => 17,
    "role" => "student"
];

echo $user["name"];

Основні особливості PHP

Особливість Пояснення
Серверна мова PHP-код виконується на сервері, а користувач отримує результат.
Простий старт Легко створити першу сторінку або скрипт.
Інтеграція з HTML PHP можна вставляти безпосередньо в HTML.
Динамічна типізація PHP може автоматично визначати типи значень.
Підтримка типів Сучасний PHP дозволяє явно вказувати типи параметрів, властивостей і результатів.
Обʼєктно-орієнтоване програмування PHP підтримує класи, інтерфейси, трейти, enum, namespace.
Велика екосистема Є Composer, Packagist, Laravel, Symfony, WordPress та інші інструменти.

Типи даних

Основні типи даних у PHP:

Тип Приклад Пояснення
int 10 Ціле число
float 3.14 Дробове число
string "Hello" Рядок тексту
bool true, false Логічне значення
array [1, 2, 3] Масив
object new User() Обʼєкт
null null Відсутність значення
resource Файл, зʼєднання Спеціальний ресурс

Обʼєктно-орієнтоване програмування в PHP

Сучасний PHP активно використовує обʼєктно-орієнтований підхід.

Приклад класу:

<?php

class User
{
    public function __construct(
        public string $name,
        public string $email
    ) {
    }

    public function sayHello(): string
    {
        return "Привіт, я {$this->name}";
    }
}

$user = new User("Anna", "anna@example.com");

echo $user->sayHello();

Namespace

Namespace допомагає організовувати класи й уникати конфліктів назв.

<?php

namespace App\Service;

class UserService
{
    public function createUser(): void
    {
        // логіка створення користувача
    }
}

Composer

Composer — це головний менеджер залежностей у PHP.

Він дозволяє:

  • встановлювати бібліотеки;
  • керувати версіями пакетів;
  • підключати автозавантаження класів;
  • описувати залежності проєкту;
  • працювати з Packagist.

Встановлення пакета:

composer require guzzlehttp/guzzle

Приклад composer.json:

{
    "require": {
        "php": "^8.2",
        "guzzlehttp/guzzle": "^7.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

Packagist

Packagist — це головне сховище PHP-пакетів для Composer.

Через Packagist можна встановлювати:

  • HTTP-клієнти;
  • ORM;
  • фреймворки;
  • бібліотеки для PDF;
  • бібліотеки для Excel;
  • SDK для API;
  • пакети для тестування;
  • пакети для логування;
  • інтеграції з платіжними системами.

Популярні 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-застосунки

Laravel

Laravel — найпопулярніший сучасний PHP-фреймворк.

Laravel дає:

  • маршрутизацію;
  • ORM Eloquent;
  • міграції бази даних;
  • Blade-шаблони;
  • черги;
  • події;
  • авторизацію;
  • middleware;
  • тести;
  • CLI Artisan;
  • екосистему пакетів.

Приклад маршруту Laravel:

Route::get('/', function () {
    return view('welcome');
});

Приклад API route:

Route::get('/users', function () {
    return User::all();
});

Symfony

Symfony — потужний PHP-фреймворк і набір компонентів для великих застосунків.

Symfony часто використовують у:

  • enterprise-проєктах;
  • складних backend-системах;
  • довгострокових продуктах;
  • проєктах, де потрібна сувора архітектура;
  • системах із великою кількістю інтеграцій.

Багато компонентів Symfony використовуються в інших PHP-проєктах, включно з Laravel.

PHP і бази даних

PHP добре працює з базами даних.

База даних Як використовується з PHP
MySQL Класичний вибір для PHP-сайтів, CMS і магазинів
MariaDB Популярна альтернатива MySQL
PostgreSQL Потужна реляційна база для складніших систем
SQLite Легка файлова база для малих застосунків і тестів
Redis Кеш, сесії, черги, тимчасові дані
MongoDB Документоорієнтована база для окремих сценаріїв

Приклад PDO:

<?php

$pdo = new PDO(
    "mysql:host=localhost;dbname=test;charset=utf8mb4",
    "user",
    "password"
);

$stmt = $pdo->query("SELECT * FROM users");

$users = $stmt->fetchAll(PDO::FETCH_ASSOC);

print_r($users);

PHP і API

PHP часто використовується для створення REST API.

Приклад простої JSON-відповіді:

<?php

header("Content-Type: application/json");

echo json_encode([
    "status" => "ok",
    "message" => "Hello from PHP API"
]);

У Laravel API зазвичай створюють через controllers, routes і resources.

PHP і CMS

PHP дуже важливий у CMS-екосистемі.

CMS Опис
WordPress Найпопулярніша CMS для сайтів, блогів і магазинів
Drupal Потужна CMS для складних контентних і корпоративних систем
Joomla CMS для сайтів і порталів
Magento E-commerce платформа
OpenCart Система для інтернет-магазинів

PHP у e-commerce

PHP часто використовується для інтернет-магазинів.

Приклади:

  • WooCommerce;
  • Magento;
  • OpenCart;
  • PrestaShop;
  • Laravel-магазини;
  • custom e-commerce.

Типові задачі:

  • каталог товарів;
  • кошик;
  • оформлення замовлення;
  • оплати;
  • доставка;
  • промокоди;
  • залишки на складі;
  • особистий кабінет;
  • інтеграція з CRM або ERP.

PHP у бізнес-системах

PHP може використовуватися для:

  • CRM;
  • ERP-модулів;
  • адмінпанелей;
  • кабінетів клієнта;
  • внутрішніх порталів;
  • документообігу;
  • інтеграцій з банками;
  • інтеграцій з платіжними системами;
  • інтеграцій з РРО;
  • звітів;
  • автоматизації бізнес-процесів.

PHP добре підходить для web-орієнтованих бізнес-систем, особливо якщо потрібна швидка розробка й багато готових компонентів.

PHP і шаблони

PHP може генерувати HTML напряму, але у фреймворках часто використовують шаблонізатори.

Популярні шаблонізатори:

  • Blade у Laravel;
  • Twig у Symfony;
  • Smarty у старих або legacy-проєктах.

Приклад Blade:

<h1>Привіт, {{ $user->name }}</h1>

PHP і безпека

PHP-проєкти мають типові web-ризики:

  • SQL Injection;
  • XSS;
  • CSRF;
  • небезпечне завантаження файлів;
  • слабка авторизація;
  • витік сесій;
  • неправильна робота з паролями;
  • небезпечні залежності;
  • неправильні права на файли.
Правило Пояснення
Використовувати prepared statements Захист від SQL Injection
Екранувати HTML Захист від XSS
Використовувати CSRF-токени Захист форм від підроблених запитів
Не зберігати паролі відкритим текстом Потрібно використовувати password_hash
Оновлювати PHP і залежності Старі версії можуть містити вразливості
Не зберігати секрети в коді Ключі мають бути в environment variables

Приклад хешування пароля:

<?php

$password = "secret-password";

$hash = password_hash($password, PASSWORD_DEFAULT);

if (password_verify("secret-password", $hash)) {
    echo "Пароль правильний";
}

PHP і продуктивність

Сучасний PHP значно продуктивніший, ніж старі версії.

На продуктивність впливають:

  • версія PHP;
  • OPcache;
  • якість SQL-запитів;
  • кешування;
  • індекси в базі даних;
  • архітектура застосунку;
  • черги;
  • асинхронна обробка;
  • web-сервер;
  • налаштування PHP-FPM;
  • кількість залежностей.

PHP-FPM

PHP-FPM — це FastCGI Process Manager для PHP.

Його часто використовують разом із Nginx або Apache для обробки PHP-запитів.

Типова схема:

Браузер
→ Nginx
→ PHP-FPM
→ PHP-застосунок
→ База даних

Apache і Nginx

PHP часто працює з web-серверами:

Web-сервер Як використовується з PHP
Apache Класичний варіант, часто з mod_php або PHP-FPM
Nginx Часто використовується з PHP-FPM
Caddy Сучасний web-сервер із автоматичним HTTPS

PHP і тестування

PHP має інструменти для автоматичного тестування.

Інструмент Для чого
PHPUnit Unit та integration тести
Pest Сучасний тестовий фреймворк із простим синтаксисом
Behat BDD-тестування
Codeception Functional, acceptance і API-тести

Приклад PHPUnit-тесту:

<?php

use PHPUnit\Framework\TestCase;

class MathTest extends TestCase
{
    public function testAdd(): void
    {
        $this->assertEquals(5, 2 + 3);
    }
}

PHP і якість коду

Популярні інструменти:

Інструмент Для чого
PHPStan Статичний аналіз коду
Psalm Статичний аналіз і перевірка типів
PHP-CS-Fixer Автоматичне форматування коду
PHP_CodeSniffer Перевірка стандартів коду
Rector Автоматичний refactoring і оновлення коду
Composer Audit Перевірка вразливостей у залежностях

Структура PHP-проєкту

Приклад простої структури сучасного PHP-проєкту:

project/
├── public/
│   └── index.php
├── src/
│   ├── Controller/
│   ├── Service/
│   ├── Repository/
│   └── Entity/
├── tests/
├── vendor/
├── composer.json
├── composer.lock
└── README.md

У сучасних PHP-проєктах зазвичай вхідною точкою є файл:

public/index.php

PHP і Docker

PHP часто запускають у Docker.

Приклад простого Dockerfile:

FROM php:8.4-fpm

WORKDIR /app

COPY . /app

Приклад сервісів:

services:
  php:
    build: .
    volumes:
      - .:/app

  nginx:
    image: nginx:latest
    ports:
      - "8080:80"

Переваги PHP

Перевага Пояснення
Простий старт Легко створити перший сайт або скрипт
Дуже поширений у вебі Багато сайтів, CMS і магазинів працюють на PHP
Дешевий хостинг PHP підтримується майже всіма хостингами
Велика екосистема Composer, Packagist, Laravel, Symfony, WordPress
Добрий для бізнес-сайтів Підходить для CMS, e-commerce, кабінетів і адмінпанелей
Сучасний ООП PHP 8.x має багато сучасних можливостей
Велика спільнота Багато документації, прикладів, розробників і готових рішень

Недоліки PHP

Недолік Пояснення
Багато legacy-коду У світі є багато старих PHP-проєктів із поганою архітектурою
Історична непослідовність Частина старих функцій і підходів має неідеальний дизайн
Легко написати хаотичний код Без фреймворку й архітектури проєкт швидко стає складним
Не найкращий для realtime Для деяких realtime-сценаріїв частіше використовують Node.js, Go або Elixir
Не основний вибір для AI Для AI та Data Science частіше використовують Python
Потрібно стежити за версіями Старі PHP-версії швидко стають ризиком безпеки

PHP 5, PHP 7 і PHP 8

PHP сильно змінився за останні роки.

Версія Значення
PHP 5 Стара епоха PHP, багато legacy-проєктів
PHP 7 Великий стрибок продуктивності й покращення мови
PHP 8 Сучасна гілка з JIT, attributes, union types, enum, readonly, fibers, property hooks та іншими можливостями

Сучасні можливості PHP

Сучасний PHP підтримує багато можливостей, яких не було в старому PHP.

Можливість Навіщо потрібна
Typed properties Типізація властивостей класу
Union types Один із кількох можливих типів
Attributes Метадані для класів, методів і властивостей
Enums Обмежений набір значень
Readonly properties Захист від зміни після ініціалізації
Constructor property promotion Коротший запис властивостей у конструкторі
Match expression Зручніша альтернатива switch
Fibers Низькорівнева основа для cooperative multitasking

Приклад enum:

<?php

enum OrderStatus: string
{
    case Draft = "draft";
    case Paid = "paid";
    case Cancelled = "cancelled";
}

Приклад match:

<?php

$status = "paid";

$message = match ($status) {
    "draft" => "Чернетка",
    "paid" => "Оплачено",
    "cancelled" => "Скасовано",
    default => "Невідомо",
};

echo $message;

Коли PHP — хороший вибір

Задача Чи підходить PHP?
Корпоративний сайт Добре
WordPress-сайт Найкращий вибір
Інтернет-магазин Добре
Laravel backend Дуже добре
CRM / ERP web-модулі Добре
REST API Добре
SaaS Добре
Realtime chat Можливо, але не основний вибір
AI / Machine Learning Не основний вибір
Системне програмування Не підходить

PHP у бізнесі

PHP часто обирають для бізнесу, коли потрібно:

  • швидко запустити сайт;
  • зробити інтернет-магазин;
  • підтримувати WordPress;
  • розробити Laravel-застосунок;
  • створити API;
  • зробити адмінпанель;
  • інтегрувати сайт з CRM або ERP;
  • зробити кабінет клієнта;
  • автоматизувати документи;
  • обробляти заявки;
  • створити billing або SaaS.

PHP у ERP та корпоративних системах

PHP може бути корисним у ERP і корпоративних системах для:

  • web-інтерфейсів;
  • кабінетів користувача;
  • API;
  • інтеграцій;
  • звітів;
  • документообігу;
  • адмінпанелей;
  • модулів для клієнтського доступу;
  • обміну з сайтами й маркетплейсами.

Для великих ERP-проєктів важливо використовувати:

  • фреймворк;
  • модульну архітектуру;
  • ORM;
  • міграції;
  • тести;
  • черги;
  • логування;
  • контроль доступів;
  • документацію API;
  • code review.

Альтернативи 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 у порівнянні з іншими мовами

Мова Порівняння з PHP
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

Етап Що вивчати
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-проєкту

Компонент Рекомендація
Версія PHP PHP 8.2 або новіша підтримувана версія
Редактор VS Code або PhpStorm
Менеджер залежностей Composer
База даних MySQL, MariaDB або PostgreSQL
Web-сервер Nginx або Apache
Фреймворк Laravel для більшості сучасних web-проєктів
Тестування PHPUnit або Pest
Контроль версій Git
Форматування PHP-CS-Fixer або Laravel Pint

Простими словами

PHP — це мова для серверної частини вебу.

Якщо потрібно зробити сайт, CMS, інтернет-магазин, кабінет клієнта, адмінпанель або backend на Laravel — PHP досі є дуже практичним вибором.

Висновок

PHP — одна з найважливіших мов веброзробки.

Вона сильна там, де потрібні:

  • сайти;
  • CMS;
  • WordPress;
  • інтернет-магазини;
  • Laravel-застосунки;
  • backend API;
  • адмінпанелі;
  • web-орієнтовані бізнес-системи;
  • інтеграції;
  • швидкий запуск web-проєкту.

PHP має стару репутацію, але сучасний PHP 8.x — це вже значно сильніша, швидша й більш структурована мова, ніж PHP минулих років.

PHP — це не мова минулого. Це мова величезної частини вебу, яка продовжує розвиватися і залишається практичною для бізнесу.

Джерела