30+ кращих прийомів PHP для початківців

22

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

1. Подружіться з довідником по PHP

Якщо ви новачок в PHP, значить, прийшов час познайомитися з вселяє повагу довідником PHP. Довідник PHP неймовірно вичерпний і містить дійсно корисні коментарі до кожної статті. Перед тим, як задавати питання або намагатися самостійно вирішити проблему, заощаджуйте час і просто візьміть курс на довідник. Відповіді на ваші запитання вже зручно розмістилися в корисній статті на сайті PHP.net.
В даному випадку ми рекомендуємо Вам пошукати самостійно довідники російською мовою, краще php для початківців. Будемо раді, якщо Ви дасте посилання на корисні довідники в коментарях до статті (Просто враховуйте, що це переклад статті).

2. Увімкніть звіт про помилки

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

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

3. Спробуйте IDE

IDE (Integrated Development Environments/інтегровані середовища розробки) – корисні інструменти для будь-якого розробника. Хоча вони підійдуть не для кожного, IDE безумовно мають своє значення. IDE забезпечують такі інструменти, як:

Підсвічування синтаксису

Code completion (підказки ідентифікаторів у редакторі коду)

Попередження про помилки

Рефакторинг коду (переробка коду)

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

30+ кращих прийомів PHP для початківців

4. Спробуйте PHP frameworks

Ви можете багато чого дізнатися про PHP, просто експериментуючи з PHP-фреймворками. Такі фреймворки, як CakePHP або CodeIgniter, дозволяють швидко створювати додатки PHP, навіть якщо ви в ньому не експерт. В якомусь сенсі вони – додаткові підпори, які показують вам, яким чином має виглядати додаток PHP, і демонструють корисні концепції програмування (зразок відділення логіки від дизайну і т. д.).

Заперечення: особисто я не раджу новачкам користуватися фреймворками. Спочатку вивчіть основи.

5. Навчіться DRY

DRY – абревіатура від don’t Repeat Yourself, (Не Повторяйтесь), і це – корисна концепція програмування, без різниці на якій мові. DRY-програмування, як передбачається назвою, гарантує, що ви не пишете надлишкового коду. Ось приклад від Reinhold Weber:

30+ кращих прийомів PHP для початківців

Розглянемо код…

$mysql = mysql_connect(‘localhost’, ‘reinhold’, ‘secret_hash’);
mysql_select_db(‘wordpress’) or die(«cannot select DB»);

тепер застосуванням до нього підхід DRY:

$db_host = ‘localhost’;
$db_user = ‘reinhold’;
$db_password = ‘secret_hash’;
$db_database = ‘wordpress’;
$mysql = mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_database);

Більш детально про концепції DRY можна прочитати тут і тут.

6. Робіть відступи і використовуйте пробіли в коді для читання

Якщо ви не використовуєте відступи і прогалини в коді, то результат виглядає, як картина Джексона Поллака (Jackson Pollack). Забезпечте читаність свого коду і нормальний пошук, тому що майже напевно в майбутньому ви будете робити в ньому зміни. IDE і сучасні текстові редактори можуть автоматично робити відступи в коді.

7. Робіть код багаторівневим

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

8. Завжди використовуйте

Часто програмісти намагаються використовувати скорочення в операторах PHP. Ось як це зазвичай робиться:

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

9. Використовуйте змістовні, послідовні назви

Іменування – не тільки для вашого власного задоволення. Немає нічого гірше, ніж продиратися крізь безглузді умовні позначення іншого програміста. Допоможіть самому собі та іншим, використовуючи для своїх класів і властивостей імена, мають сенс.

10. Коментуйте, коментуйте, коментуйте

Крім використання пробілів і відступів для розділення коду, вам також доведеться використовувати вбудовані коментарі, щоб постачати примітками свій код. Пізніше ви подякуйте самі себе, коли доведеться повертатися і шукати що-небудь в коді, або якщо ви просто не пам’ятаєте того, що робила певна функція. Це також корисно для тих, кому потрібно переглянути ваш код.

11. Встановіть MAMP/WAMP

MySQL — найпопулярніший вид бази даних, використовуваний з PHP (хоча і не єдиний). Якщо потрібно налаштувати локальне оточення для розробки і тестування ваших PHP-додатків на комп’ютері, передбачте установку MAMP (Mac) або WAMP (Windows). Встановлення MySQL на ваш власний комп’ютер може стати стомлюючим процесом, а обидва цих програмних пакети містять MySQL. Спритно і просто.

12. Встановіть ліміти своїм скриптам

Встановлення ліміту часу на PHP-скрипти – дуже відповідальна річ. Бувають моменти, коли скрипти виходять з ладу, і коли це станеться, вам доведеться використовувати властивість set_time_limit (установити ліміт часу), щоб уникнути нескінченно повторюваних циклів і закінчення таймаутів часу з’єднання з базою даних. Set_time_limit встановлює ліміт часу на максимальну кількість секунд, за який виконується скрипт (за замовчуванням 30). Після закінчення цього часу порушується невиправна помилка.

13. Використовуйте об’єкти (або ООП)

Об’єктно-орієнтоване програмування (ООП) використовує об’єкти, щоб представляти компоненти програми. ООП – це не тільки спосіб розбити свій код на окремі логічні секції, воно також знижує кількість повторень коду і робить набагато більш легким його модифікування в майбутньому.

14. Зрозумійте різницю між одинарними і подвійними лапками

Використання одинарних лапок у рядках більш ефективно, так як парсеру (синтаксичному аналізатору) не доводиться просіяти код в пошуку спеціальних символів (прим. перекл. escape-послідовностей) та інших речей, що дозволяють подвійні лапки. Там, де це можливо, намагайтеся завжди використовувати одинарні лапки.

Заперечення: Власне, це не обов’язково вірно. Тести Benchmark показують, що при тестуванні рядків без змінних існують певні переваги швидкодії при використанні подвійних лапок.

15. Не ставте phpinfo() в свій Webroot

Phpinfo – чудова річ. Просто створивши PHP-файл, в якому є:

і добудувавши його де-небудь на сервері, ви зможете негайно дізнаватися все про оточенні свого сервера. Тим не менше, багато новачків помістить файл, що містить phpinfo() в webroot сервера. Це надзвичайно небезпечна практика, і якщо чийсь допитливий розум отримає доступ, він може потенційно наврочити ваш сервер. Переконайтеся, що phpinfo() знаходиться у безпечному місці, а в якості додаткової міри видаліть його, як тільки закінчите.

30+ кращих прийомів PHP для початківців

16. Ніколи, ніколи не довіряйте своїм користувачам

Якщо у програмі є місця для входу користувачів, ви завжди повинні припускати, що хтось спробує ввести сумнівний код. (Ми не маємо на увазі, що ваші користувачі — погані люди. Це просто здоровий глузд.) Відмінний спосіб уберегти свій сайт від хакерів – завжди ініціалізувати свої змінні для захисту сайту від XSS-атак. На PHP.net є приклад належним чином закритої форми з инициализированными змінними:

17. Зберігайте паролі зашифрованими

Багато новачків в PHP часто скидають делікатні дані, такі як паролі, в базу даних, не застосовуючи шифрування. Розгляньте використання MD5 для шифрування паролів перед тим, як викладати їх базу даних.

echo md5(‘myPassword’); // renders — deb1536f480475f7d593219aa1afd74c

Заперечення: Тим не менш, пам’ятайте, що хеши MD5 вже давно скомпрометовані. Безумовно, вони швидше безпечні, ніж ні, але з допомогою гігантської «спектральної таблиці» хакери можуть відновити ваш хеш. Для забезпечення ще більшої безпеки обміркуйте можливість додавання «солі» (перешкод у вигляді «білого шуму»). «Сіль» – це зазвичай додатковий набір символів, які ви приєднуєте до користувальницької рядку.

18. Використовуйте інструменти візуалізації баз даних

Якщо вам здається складним планувати і змінювати бази даних для PHP-додатків, можна було б розглянути можливість використання інструменту візуалізації баз даних. Користувачі MySQL можуть працювати з DBDesigner і MySQL Workbench для візуального дизайну своїх баз даних.

30+ кращих прийомів PHP для початківців

19. Використовуйте буферизацію виводу

Буферизацію виводу – це простий спосіб дуже сильно поліпшити якість і швидкість вашого PHP-скрипта. Без буферизації виведення ваш скрипт буде показувати HTML на сторінці так, як він обробляється – частинами. Додавання буферизації виведення PHP дозволяє зберігати HTML як змінну і посилати його на браузер єдиною порцією.

Для активації функції буферизації виведення просто додайте ob_start() як тут на початку файлу.

Заперечення: Хоча це і не потрібно, зазвичай вважається хорошою практикою просто взяти і прикріпити функцію «ob_end_flush();» до кінця документа. P. S. також Хочете стиснути HTML? Просто змініть «ob_start();»на «ob_start(‘ob_gzhandler’)»;

untitled

20. Оберігайте свій скрипт від атаки SQL-injection

Якщо ви не відокремлюєте (escape) символи, що використовуються в рядках SQL, ваш код вразливий для атаки SQL-injection. Уникнути цього можна, використовуючи або функцію mysql_real_escape_string (прим. перекл. для відділення символів), або підготовлені оператори SQL (prepared statements).

Ось приклад mysql_real_escape_string в дії:

$username = mysql_real_escape_string( $GET[‘username’] );

І підготовленого оператора:

$id = $_GET[‘id’];
$statement = $connection->prepare( «SELECT * FROM tbl_members WHERE id = ?» );
$statement->bind_param( «i», $id );
$statement->execute();

21. Спробуйте ORM

Якщо ви пишете об’єктно-орієнтований PHP, то можете використовувати OR-mapping (ORM). ORM дозволяє вам перетворювати дані між реляційними базами даних та мови об’єктно-орієнтованого програмування. Коротше кажучи, ORM дає можливість працювати з базами даних таким же чином, яким ви працюєте з класами та об’єктами в PHP.

Для PHP є безліч ORM-бібліотек, таких як Propel, а також ORM вбудований в фреймворки PHP, такі, як CakePHP.

22. Кэшируйте сторінки, керовані базою даних

Кешування PHP-сторінок, керованих базою даних – відмінна ідея для поліпшення швидкості завантаження і продуктивності свого скрипта. Насправді не так вже важко створити і отримати статичні файли вмісту за допомогою нашого доброго друга ob_start(). Ось приклад, взятий з Snipe.net:

// TOP of your script
$cachefile = ‘cache/’.basename($_SERVER[‘SCRIPT_URI’]);
$cachetime = 120 * 60; // 2 hours
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && (time() — $cachetime < filemtime($cachefile))) {
include($cachefile);
echo «»;
exit;
}
ob_start(); // start the output buffer
// Your normal PHP script and HTML content here
// BOTTOM of your script
$fp = fopen($cachefile, ‘w’); // open the cache file for writing
fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file
fclose($fp); // close the file
ob_end_flush(); // Send the output to the browser

Цей шматок коду використовує кешовану версію сторінки, якщо з моменту її генерації пройшло менше 2 годин.

23. Використовуйте систему кешування

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

Memcached

APC

XCache

Zend Cache

eAccelerator

30+ кращих прийомів PHP для початківців

24. Перевіряйте достовірність даних Cookie

Дані Cookie, як будь-які інші дані, що передаються по Мережі, можуть бути шкідливими. Ви можете перевіряти дані cookie або за допомогою thehtmlspecialchars(), або mysql_real_escape_string().

25. Використовуйте системи кешування статичних файлів

Крім використання систем кешування баз даних начебто Memcached, ви також могли б спробувати систему шаблонів, щоб збільшити продуктивність своїх PHP-додатках. Smarty — надійна система шаблонів, що має вбудоване кешування.

26. Профилируйте свій код

Профілювання свого коду за допомогою такого інструменту, як xdebug, може допомогти вам швидко впізнавати вузькі місця та інші потенційні проблеми у своєму PHP-коді. Деякі типу IDE Netbeans так само мають можливість профілювати PHP.

27. Кодуйте згідно стандартам

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

28. Виконуйте функції поза циклів

Ви отримуєте проблему продуктивності, коли вмикаєте виклики функцій всередину циклів. Чим більше ваш цикл, тим довшою буде затримка виконання. Економте час і помістіть функцію поза циклу в окремому рядку коду.

Примітка редактора: Уявіть собі це таким чином. Спробуйте видалити якомога більше операцій з циклу. Вам дійсно потрібно створювати цю змінну для кожного повторення циклу? Вам дійсно потрібно використовувати кожен раз цю функцію? Звичайно, немає.:)

29. Не копіюйте додаткові змінні

Деякі люблять пробувати робити свій код більш привабливим за допомогою копіювання зумовлених змінних в проміжні змінні. Це вже занадто і потенційно може подвоїти розмір пам’яті вашого скрипта. На Google Code є погані і хороші приклади використання змінної:

Погано

$description = strip_tags($_POST[‘description’]);
echo $description;

Добре

echo strip_tags($_POST[‘description’]);

Заперечення: У відповідь на коментар про «подвоєння розміру пам’яті», це, насправді, звичайне невірне уявлення. PHP реалізовує управління пам’яттю»copy-on-write». По суті, це означає, що ви можете присвоїти значення для такої кількості змінних, яке захочете, не хвилюючись про те, що дані будуть реально копіюватися. Бездоказово, що вищенаведений «гарний» приклад може зробити код більш зрозумілим, і я дуже сильно сумніваюся, що він хоч трохи швидше.

30. Оновіть PHP до самої останньої версії

Хоча це здається досить здоровою думкою, багато хто не роблять апгрейд PHP настільки часто, як слід було б. Між PHP 4 і PHP 5 існує багато поліпшень. Слідкуйте за тим, щоб на вашому сервері було оновлене програмне забезпечення.

31. Скоротіть кількість запитів до бази даних

Так чи інакше, чим більше ви можете знизити кількість запитів до бази даних, тим вищою буде продуктивність вашого PHP-скрипта. Існують такі інструменти, як Stace (Unix) і Process Explorer (Windows), які дають вам можливість знаходити дублюючі процеси з тим, щоб їх можна було б об’єднати.

30+ кращих прийомів PHP для початківців

32. Не бійтеся просити допомоги

Тільки людській натурі властиво бажання приховати той факт, що ми не так багато знаємо на певну тему. Нікому не подобається бути дурнем! Але як можна навчитися, не задаючи питань? Не соромтеся користуватися форумами, IRC, StackOverflow, щоб задавати питання бувалим PHP-розробників. На вебсайті PHP є сторінка отримання допомоги по PHP.

Є свої власні заперечення? Впевнений, що є! Давайте посперечаємося.

Переклад і редакція: Ріг Віктор і Андрій Бернацький. Команда webformyself.

E-mail: [email protected]

Проект webformyself.com — Як створити свій сайт. Основи самостійного сайтобудування

P. S. Хочете опублікувати цікавий тематичний матеріал і заробити? Якщо відповідь «Так», то тисніть сюди.