Skip to content

2. Налаштування робочого середовища

Ми будемо використовувати такі інструменти (у Windows 10, 64-бітна версія):

  • [Laragon] для запуску веб-сервера PHP;
  • [Netbeans] для редагування коду PHP;
  • [Visual Studio Code] — для написання коду JavaScript;
  • [node.js] — для їх виконання;
  • [npm] для завантаження та встановлення бібліотек JavaScript, які нам знадобляться;

2.1. Робоче середовище для веб-сервера

Скрипти PHP були написані та протестовані в такому середовищі:

  • середовище веб-сервера Apache / SGBD MySQL / PHP 7.3 під назвою Laragon;
  • середовище розробки NetBeans 10.0;

2.1.1. Встановлення Laragon

Laragon — це пакет, що об’єднує кілька програм:

  • веб-сервер Apache. Ми будемо використовувати його для написання веб-скриптів у PHP;
  • SGBD MySQL;
  • скриптова мова PHP;
  • сервер Redis, що реалізує кеш для веб-додатків:

Laragon можна завантажити (березень 2019 року) за наступною адресою:

https://laragon.org/download/

Image

Image

Image

  • Встановлення [1-5] створює таку структуру каталогів:

Image

  • у [6] — папку інсталяції PHP;

При запуску [Laragon] з’являється таке вікно:

Image

  • [1]: головне меню Laragon;
  • [2]: кнопка [Start All] запускає веб-сервер Apache, а SGBD — MySQL;
  • [3]: кнопка [WEB] відображає веб-сторінку [http://localhost], яка відповідає файлу PHP [<laragon>/www/index.php], де <laragon> — це папка, в якій встановлено Laragon;
  • [4]: кнопка [Database] дозволяє керувати SGBD та MySQL за допомогою інструменту [phpMyAdmin]. Перед цим його потрібно встановити;
  • [5]: кнопка [Terminal] відкриває командний рядок;
  • [6]: кнопка [Root] відкриває провідник Windows, налаштований на папку [<laragon>/www], яка є кореневою папкою веб-сайту [http://localhost]. Саме туди потрібно розмістити всі веб-додатки, що обслуговуються сервером Apache в Laragon;

Відкриємо термінал Laragon [5]:

Image

  • у [1] вказано тип терміналу. У [6] доступні три типи терміналів;
  • у [2, 3]: поточна папка;
  • у [4] вводиться команда [echo %PATH%], яка відображає список папок, переглянутих під час пошуку виконуваного файлу. Усі основні папки Laragon включені до цього шляху до виконуваних файлів, чого не було б, якби ми відкрили командне вікно [cmd] у Windows. У цьому документі, коли доводиться вводити команди для встановлення того чи іншого програмного забезпечення, зазвичай ці команди вводяться у терміналі Laragon;

2.1.2. Встановлення IDE NetBeans 10.0

IDE NetBeans 10.0 можна завантажити за наступною адресою (березень 2019 року):

https://netbeans.apache.org/download/index.HTML

Image

Завантажений файл має формат zip, який потрібно просто розпакувати. Після встановлення та запуску NetBeans можна створити перший проєкт PHP.

Image

  • у [1], виберіть опцію «File / New Project»;
  • у [2] виберіть категорію [PHP];
  • у [3] виберіть тип проєкту [PHP Application];

Image

  • у [4] вкажіть назву проекту;
  • у [5] виберіть папку для проекту;
  • у [6] виберіть версію завантаженого PHP;
  • у [7] виберіть кодування UTF-8 для файлів PHP;
  • У [8] виберіть режим [Script] для виконання скриптів PHP у режимі командного рядка. Виберіть [Local WEB Server], щоб виконати скрипт PHP у веб-середовищі;
  • у [9,10] вкажіть каталог встановлення інтерпретатора PHP з пакета Laragon:

Image

  • виберіть [Finish], щоб завершити роботу майстра створення проєкту PHP;

Image

  • у [11] проект створюється зі скриптом [index.php];
  • у [12] записується мінімальний скрипт PHP;
  • у [13] виконується [index.php];

Image

  • у [14] результати відображаються у вікні [output] у NetBeans;
  • у [15] створюється новий скрипт;
  • у [16] — новий скрипт;

Читач може створити всі наступні скрипти в різних папках того самого проєкту PHP. Вихідні коди скриптів цього документа доступні у вигляді такої структури NetBeans:

Image

Скрипти цього документа розміщені в структурі проекту [scripts-console] [1]. Ми також будемо використовувати бібліотеки PHP, які будуть розміщені в папці [<laragon-lite>/www/vendor] [2], де <laragon-lite> — це папка інсталяції програмного забезпечення Laragon. Щоб NetBeans розпізнав бібліотеки з папки [2] як частину проєкту [scripts-console], нам потрібно включити папку [vendor] [2] у гілку [Include Path] [3] проекту. Ми налаштуємо NetBeans так, щоб папка [<laragon-lite>/www/vendor] [2] включалася в кожен новий проект PHP, а не лише в проект [scripts-console]:

Image

  • у [1-2] перейдіть до налаштувань NetBeans;
  • у [3-4] налаштовуємо параметри PHP;
  • у [5-7] налаштовуємо [Global Include Path] для PHP: папки, вказані у файлі [7], автоматично включаються до файлу [Include Path] у будь-якому проєкті PHP;

Image

  • у [9] можна отримати доступ до властивостей гілки [Include Path];
  • у [10-11] — нові бібліотеки, проаналізовані NetBeans. NetBeans аналізує код PHP цих бібліотек і запам’ятовує їхні класи, інтерфейси, функції тощо, щоб надавати допомогу розробнику;

Image

  • у [12] код використовує клас [PhpMimeMailParser\Parser] із бібліотеки [vendor/php-mime-mail-parser];
  • у [13] NetBeans пропонує методи цього класу;
  • у [14-15] NetBeans відображає документацію до вибраного методу;

Поняття [Include Path] тут є специфічним для NetBeans. PHP також має це поняття, але, судячи з усього, це два різних поняття.

Тепер, коли робоче середовище встановлено, ми можемо перейти до вивчення основ PHP.

2.2. Робоче середовище для JavaScript

Ці інструменти можна встановити за допомогою Laragon (див. розділ «Посилання»):

Image

У [4] встановлюємо [node.js]. Після завершення встановлення відкрийте термінал Laragon (див. розділ «Посилання») і перевірте версію встановленого [node.js] (1), а також версію [npm] (2):

Image

Далі встановлюємо Visual Studio Code, який часто називають [code], [VSCode] або [3-6]. Після цього можна запустити цей інструмент розробки:

Image

Image

2.2.1. Налаштування Visual Studio Code

Тепер ми покажемо, як ми налаштували [VSCode], щоб читач міг зрозуміти скріншоти, які час від часу з’являтимуться. Читач може на власний розсуд налаштувати [VSCode]. Він навіть може встановити своє улюблене робоче середовище. Це не має значення для того, що ми будемо робити далі.

Спочатку ми змінимо зовнішній вигляд вікна [VSCode], щоб фон був світлим, а не чорним:

Image

Потім приховуємо ліву панель [1-2], елементи якої також доступні в меню. У [3-6] ми налаштовуємо форматування коду при кожному збереженні файлу та при кожному копіюванні/вставленні.

Image

Після збереження налаштувань [Ctrl-S] можна закрити вікно [Settings] [7]. У будь-який момент можна повернутися до конфігурації [VSCode] [8-10]:

Image

Ці налаштування зберігаються у файлі [settings.json], який можна редагувати безпосередньо. Відкриємо вікно налаштувань [Settings], як це було показано раніше:

Image

У [4] можна безпосередньо редагувати файл [settings.json]:

Image

  • у [1] — шлях до файлу [settings.json]. Один із способів повернутися до конфігурації за замовчуванням — видалити цей файл;
  • у [2] — налаштування, які ми щойно зробили;

Тепер відкриємо термінал усередині [VSCode] [1-2]:

Image

  • у [3] — тип відкритого терміналу, у даному випадку PowerShell;
  • у [4] можна вводити команди Windows;
  • у [6] можна відкривати інші термінали;
  • у [5] — список відкритих терміналів;
  • у [7] — закрити активний термінал;

Ми будемо використовувати термінал [VSCode] для встановлення пакетів (бібліотек) JavaScript за допомогою інструменту [npm] (Node Package Manager). Як ми вже робили раніше в терміналі Laragon, перевіримо версію встановленого [npm]:

Image

Бачимо, що команда [npm] не була розпізнана. Це означає, що вона не належить до PATH (список папок, які слід обшукати для пошуку виконуваного файлу, у даному випадку [npm]) терміналу. Можна дізнатися, який PATH використовує термінал:

Image

Виконуваний файл [npm] відсутній у цих папках. Як і інші інструменти, встановлені Laragon, він знаходиться в папці [<laragon>\bin] програми Laragon, а точніше — у папці [nodejs] [4-6].

Image

Щоб запустити [VSCode] і отримати доступ до [npm], ми запустимо [VSCode] з терміналу Laragon. Запущений таким чином, [VSCode] успадкує PATH з терміналу Laragon, який, у свою чергу, містить папку з виконуваними файлами [node] та [npm]:

Image

  • у [1]: вводимо команду [path];
  • у [2]: список папок у PATH. Там видно папку [node-v10] [2], що гарантує нам, що виконувані файли [node] та [npm] будуть знайдені;

[VSCode] запускається з терміналу Laragon за допомогою команди [code]:

Image

  • у [2] відкривається термінал PowerShell у [VSCode];
  • у [3-4] видно, що виконувані файли [node] та [npm] доступні;

Примітка: не слід закривати термінал Laragon, який запустив середовище розробки [VSCode], інакше VSCode закриється самостійно.

Здійснимо останнє налаштування: змінимо термінал за замовчуванням для [VSCode]:

Image

Image

Файл [settings.json] одразу оновлюється:

Image

Тепер відкриємо новий термінал [VSCode] [1]:

Image

  • у [2] — термінал [cmd] (а не PowerShell);
  • у [3] команда [path] видає PATH терміналу;
  • у [4] чітко видно папку з виконуваними файлами [node] та [npm]

2.2.2. Додавання розширень до Visual Studio Code

Створимо файл JavaScript за допомогою [VSCode]:

Image

Image

  • у [3-4] створюємо папку;
  • у [5] робимо його поточним каталогом для [VSCode];
  • у [6] відкриваємо термінал;
  • у [7] бачимо, що ми перебуваємо у вибраній папці. Наступні операції будуть виконуватися саме в ній;

Image

  • у [1-3]: створюється нова папка;
  • у [4]: додаємо файл у цю папку;

Image

  • у [5-7]: створюємо нашу першу програму на JavaScript;

Image

  • у [8-9]: запускаємо програму на JavaScript;
  • результат з’являється у консолі виконання [10]. У [11] ми бачимо команду, яка була виконана: саме додаток [node] виконав скрипт [test-01.js]. Це стало можливим завдяки тому, що цей виконуваний файл знаходиться у PATH з [VSCode]; інакше з’явилася б помилка про те, що команда [node] невідома;

Діємо таким самим чином, щоб запустити другий скрипт [test-02.js]:

Image

  • у [1-3] ми визначаємо новий скрипт. Інструкція [use strict] у рядку 1 вимагає суворої перевірки синтаксису. У цьому контексті кожна змінна має бути оголошена за допомогою одного з ключових слів [let, const, var]. Це не стосується змінної [x] у рядку 2;
  • під час виконання цього коду за допомогою [Ctrl-F5] виникає помилка [5]. Про такі помилки можна отримати попередження ще до виконання коду. Це кращий варіант. Ми зробимо дві речі:
    • встановимо за допомогою [npm] бібліотеку під назвою [eslint], яка перевіряє відповідність синтаксису скрипта стандарту ECMAScript 6;
    • встановити розширення для Visual Studio Code, яке також називається ESLINT і полегшує використання бібліотеки [eslint] у [VSCode];

Спочатку встановимо бібліотеку JavaScript [eslint] за допомогою інструменту [npm]. Щоб встановити бібліотеку (яку називають пакетом) [npm], потрібно знати її точну назву. Якщо його немає, можна перейти на сайт [npm] за посиланням URL (2019) [https://www.npmjs.com/]:

Image

  • у [3] — пакети, що починаються з [esl];
  • у [4-6] міститься пакет [eslint];

Image

  • у [7] — команда [npm] для встановлення пакета [eslint];
  • у [8] — конфігурація пакета;
  • у [9] — його використання для перевірки синтаксису скрипта JavaScript;

Ми встановлюємо пакет [eslint] у вікні [Terminal] програми [VSCode]. Спочатку нам потрібно створити файл [package.json] у кореневій папці робочого каталогу [VSCode]. Цей файл міститиме перелік пакетів jS, що використовуються проектом [VSCode]:

Image

  • у [1] клацніть правою кнопкою миші в провіднику проєкту (не на папці tests);
  • у [3-4], створюється файл [package.json] у кореневому каталозі проєкту [javascript], на тому самому рівні, що й папка [tests] (але не в [tests]);
  • у [4-6] додаємо до файлу [package.json] порожній об’єкт jSON;

Потім відкриваємо термінал [VSCode] для встановлення [eslint]:

Image

  • у [2] ми знаходимося в кореневому каталозі проєкту [javascript];
  • у [3] — команда, що встановлює пакет [eslint];
  • після виконання,
    • у [4-5] файл [package.json] було змінено. У рядку 3 вказано версію встановленого [eslint]. У рядку 2 [devDependencies] відповідає аргументу [--save-dev] інсталяції. Цей аргумент означає, що встановлену залежність потрібно внести до файлу [package.json] як елемент властивості [devDependencies]. Ця властивість містить перелік залежностей проєкту, які потрібні в режимі розробки, але не в режимі виробництва. Дійсно, залежність [eslint] потрібна лише під час розробки для перевірки того, чи написаний код відповідає стандарту ECMAScript;
    • у [6] у проекті з’явилася папка [node_modules]. Це папка, в якій встановлені залежності проекту;

Image

  • у [7] — частина встановлених пакетів. Їх дуже багато. Адже було встановлено не лише пакет [eslint], а й усі пакети, на яких він базується;

Image

  • [1-2], у терміналі [VSCode] виконується команда налаштування пакета [eslint]. Програма задасть низку запитань [3], щоб з’ясувати, як саме ви бажаєте використовувати [eslint]. У разі сумнівів залиште опції, запропоновані за замовчуванням. Щоб вибрати опцію, скористайтеся стрілками вгору та вниз на клавіатурі, а потім підтвердіть вибір;
  • у [4] у кореневому каталозі проєкту було створено файл [.eslintrc.js];
  • у [6] — вміст файлу. Ви можете скопіювати цей вміст у свій власний файл;

module.exports = {
  "env": {
    "browser": true,
    "es6": true
  },
  "extends": "eslint:recommended",
  "globals": {
    "Atomics": "readonly",
    "SharedArrayBuffer": "readonly"
  },
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module"
  },
  "rules": {
  }
};

Цього недостатньо для виявлення помилок у файлі [test-02.js]:

Image

  • необхідно ввести команду [2-3], щоб файл [tests/test-02.js] був проаналізований;
  • у файлі [4] виявлено помилку щодо неоголошеної змінної;

Ми додамо до [VSCode] розширення, яке дозволить бачити помилки JavaScript у режимі реального часу. Це розширення базується на пакеті [eslint], який ми вже встановили:

Image

  • у [3-5] ми встановлюємо розширення під назвою [ESLint];

Image

  • на [1] — сторінка з інформацією про щойно встановлений модуль;
  • у [2], бачимо, що режим перевірки для [ESLint] — це [type], що означає, що синтаксис скриптів jS перевірятиметься одночасно з набором тексту;

ESLint можна налаштувати за допомогою загального файлу конфігурації [VSCode]:

Image

  • у [6-7] — налаштування [ESLint]. Саме тут ви зможете їх змінити;

Тепер повернемося до файлу [test-02.js]:

Image

  • у [3-4] тепер повідомляються помилки щодо змінної [x];
  • у [5]: кількість помилок ESLint у файлі;
  • у [6] вказується, що в папці [tests] є файли з помилками;

Якщо виправити помилку, попередження ESLint зникнуть:

Image

Тепер встановимо розширення під назвою [Code Runner]:

Image

  • Після встановлення розширення [Code-Runner] [1-5] його можна налаштувати за допомогою [6-7] (вище);

Image

  • у [1-2] — елементи налаштування [Code-Runner];
  • у [3] задається вимога очищення терміналу виводу перед кожним виконанням;
  • у [4] знаходять елемент [Executor Map], який містить перелік засобів виконання різних мов;
  • у файлі [5-6] копіюється конфігурація у буфер обміну;
  • у [7-8] змінюємо файл [settings.json];

Image

  • у [2] додаємо кому після останнього елемента файлу [settings.json] [1];
  • у файл [3] вставляємо те, що раніше скопіювали у файл [5-6]: це список команд, що дозволяють виконувати різні мови, які підтримує [VSCode];
  • у [4] — команда, що дозволяє виконувати файли JavaScript. Вона працює лише в тому випадку, якщо [node] знаходиться у PATH з [VSCode]. Якщо це не так, можна вказати повний шлях до виконуваного файлу [5];

Отже, збережемо конфігурацію (Ctrl-S). З розширенням [Code Runner] файли JavaScript можна запускати, клацнувши правою кнопкою миші на коді [6] (вище):

Image

2.2.3. Кілька корисних команд [VSCode]

  • щоб відформатувати код, клацніть на ньому правою кнопкою миші [1];
  • щоб закрити відкриті вікна, клацніть правою кнопкою миші на їхніх заголовках [2-3];

Image

  • щоб відкрити певне вікно — [4-5];
  • щоб зберегти ваш проєкт (Workspace) — [6-9];
  • щоб зберегти проект [10-11];

Image

Image

  • щоб відкрити проект [11-16]:

Image

  • переглянути встановлені розширення [19-20]:

Image

Зараз ми маємо хороші інструменти для розробки на JavaScript. Далі ми ознайомимо вас із цією мовою за допомогою коротких фрагментів коду. Оскільки цей огляд є продовженням курсу PHP, ми іноді будемо порівнювати ці дві мови, щоб підкреслити їхні відмінності.