Мови програмування
PHP
Серверна мова для вебу: на ній працюють WordPress, Laravel і значна частина інтернету.
Що це
PHP створив Расмус Лердорф у 1995 році як набір скриптів для власної сторінки. Сьогодні це повноцінна мова з класами, типами, атрибутами та JIT.
Модель виконання проста: кожен запит стартує з чистого стану, тому масштабування горизонтальне й передбачуване. Пакети беруться з Packagist через Composer.
Сучасний PHP (8.x) має сувору типізацію за бажанням, enum, readonly-властивості та named arguments. Найвідоміші фреймворки: Laravel і Symfony. WordPress, Drupal, Magento теж на PHP.
Коли брати
- Сайти й вебзастосунки, особливо на Laravel чи Symfony.
- Робота з WordPress, WooCommerce, Magento та іншими PHP-системами.
- Дешевий і поширений хостинг: PHP підтримується майже всюди.
Коли не варто
- Довготривалі процеси, вебсокети й real-time з великою конкурентністю: краще Node.js, Go, Elixir.
- Не вебзадачі: десктоп, системне програмування, ML.
Ключові поняття
- Composer
- Менеджер залежностей, автозавантаження класів за PSR-4.
- PHP-FPM
- Пул процесів, який виконує PHP за nginx чи Apache.
- Request lifecycle
- Кожен запит виконується з нуля й не ділить стан із попереднім.
- PSR
- Стандарти спільноти (PHP-FIG): стиль коду, автозавантаження, інтерфейси.
- Enums and types
- У PHP 8 є enum, union-типи, readonly та constructor promotion.
Приклад
Питання на співбесіді
1. Чим == відрізняється від === у PHP?
==порівнює з приведенням типів, а===ще й вимагає однакового типу. У PHP 8 правила==для рядків і чисел стали суворішими, але===усе одно безпечніший.2. Що таке Composer і PSR-4?
Composer керує залежностями. PSR-4 це стандарт автозавантаження, що зіставляє простір імен із теками, тож не потрібні
requireдля кожного класу.3. Як PHP зберігає стан між запитами?
Сам по собі не зберігає. Стан тримають у сесіях (файли, Redis), базі даних або кеші. Кожен запит починається з нуля.
4. Що нового в PHP 8?
JIT, union-типи, named arguments, атрибути,
match, nullsafe-оператор?->, constructor promotion, а в 8.1 ще enum і readonly.
Схожі технології
- LaravelПопулярний PHP-фреймворк із виразним синтаксисом, ORM Eloquent, чергами та багатою екосистемою.
- MySQLОдна з найпоширеніших реляційних баз даних, основа багатьох вебпроєктів і LAMP-стека.
- nginxnginx це швидкий вебсервер і зворотний проксі, який також працює як балансувальник навантаження та HTTP-кеш.
Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).