Оптимізація PHP – головна ознака професійного коду

32

Від автора: кожен поважаючий себе розробник переживає за долю «свого коду. Намагається зробити додаток як можна зручніше, швидше і підвищити його відмовостійкість. Але не завжди оптимізація PHP дозволить вам досягти цих висот.

Не лікуй руку, якщо кульгавий на ногу!

Пардон за ірландський народний афоризм! Але він в саме «яблучко» відображає всю суть проблеми. Найчастіше оптимізація коду не дозволить вам підвищити швидкодію створеного скрипта або ресурсу. А у випадку з PHP все вкрай ускладнюється з-за великої кількості факторів, вплинути на які ви (як розробник) просто не в силах.

Що стосується непідвладних явищ, то я маю на увазі швидкість інтернет-з’єднання, завантаженість сервера, налаштування ОС на клієнтській машині, потужність заліза ПК користувача. На всі ці складові ви не зможете вплинути. І в підсумку виходить, що проведена оптимізація PHP коду не дасть повноцінного результату.

Що залишається під владою веб-розробника:

Налаштування сервера – обмежено. Настройка параметрів через файл конфігурації Apache httpd.conf дозволяє задати кількість дочірніх процесів, таймаут з’єднання через сокет, обсяг буфера для виведення при з’єднанні TCP/IP, час простою та інші.

Оптимизация PHP – главный признак профессионального кода

Налаштування ядра мови – через параметри, прописані в файлі php.ini. Дозволяє задати значення буферизації, змінити максимальний час виконання скриптів, обробку помилок, управління логами і інші настройки.

Оптимизация PHP – главный признак профессионального кода

З допомогою PHP оптимізації зображень – про це пізніше. Оптимізація програмного коду – дозволяє «заощадити» ресурси і підвищити швидкодію.

Наприклад, потрібно знати, що echo працює швидше, ніж print. Виведення повідомлень про помилки після налагодження краще вимикати для економії ресурсів. Замість конкатенації рядків використовуйте echo. Об’єкти і методи класів (ООП) з’їдають багато пам’яті.

Робота з зображеннями

Я не прихильник обробки зображень на стороні сервера. Це також веде до витраті коштовних ресурсів, яких на хостингу завжди мало. Виходить, що економлячи на одному, ми даремно витрачаємо інші «запаси».

Більш оптимальним є варіант завантаження зображень на сторонній сервіс, звідки вони вже в оптимізованому вигляді підвантажуються в браузер користувача за заданою адресою. У Мережі таких сервісів безліч. Хочу назвати тільки кілька з них: kraken.io, TinyPNG

Оптимизация PHP – главный признак профессионального кода

Як бачите, знання пошукової оптимізації на PHP для професійних розробників теж є важливим.

Крім цього PHP володіє власним вбудованим інструментарієм для «полегшення» зображень. Наприклад, функція imagecopyresampled (). Вона зменшує вагу контенту за рахунок змінення роздільної здатності і зміни розмірів малюнка. Приклад використання:

Оптимизация PHP – главный признак профессионального кода

Що можна ще

Також не забувайте про застосування оптимізації клієнтської сторони за допомогою PHP. В якійсь мірі сервер може впливати на клієнтський браузер через Cache-Control, а також атрибути цього заголовка: post-check, max-age та інші.

Крім цього керувати станом кешу на клієнтській машині дозволяють заголовки Last-Modified і ETag. Для зміни кожного файлу вони встановлюють унікальний ідентифікатор. Завдяки чому сервер пересилає ресурси заново, а лише відповіді 304 статусом.

У статті ми не піднімали питання оптимізації за допомогою PHP-FPM. Але для його розгляду потрібна окрема стаття. А на сьогодні все. До наступної зустрічі!