Сьогодні ми дізнаємося
Що таке Phar?
Доступ до вихідних файлів архіву здійснюється безпосередньо, без розпакування архіву. Прямий доступ забезпечує PHP Stream Wrapper. Іншими словами з файлами архіву працюють функції підтримувані PHP Stream Wrapper.
Вимоги до PHP версії
Розширення phar, доступне з версії PHP 5.2. А з версії 5.3 - це невід'ємна частина PHP. Для початку, раджу вам перевірити версію PHP. Якщо версія нижча, міняйте. Якщо версія PHP не нижче 5.2 - вам необхідно переустановити PHP ядро з Phar, Zlib і bzip2 розширеннями. Якщо у вас версія 5.3 - все відмінно, phar встановлений за замовчуванням.
Якщо хочете, можете налаштувати захист для ваших phar архівів, і зробити їх доступними, тільки для читання. Для цього, потрібно встановити налаштування у файлі php.ini. Налаштуйте параметр phar.readonly = 0.
Переваги Phar в PHP
PHAR легко встановлюється, а якщо точніше - він входить в стандартну поставку PHP 5.3.
Зручно при копіюванні файлів на інший хост.
Легко розгортати - всього один файл.
Високий ступінь захисту PHP додатки - сигнатури, OpenSSL.
Має високу продуктивність.
Робота з Phar в PHP
В цьому розділі, ми будемо працювати з утилітою. А точніше, будемо створювати і використовувати власні бібліотеки файлів PHP додатки. Ви побачите, наскільки просто і зручно використовувати phar бібліотеки.
ПрімерHelloWorld
Для початку створимо простий архів, з текстовим файлом:
А тепер, прочитаємо його:
Створення і використання бібліотекPhar
В цьому розділі, ми навчимося створювати власні phar бібліотеки і використовувати їх в потрібних цілях. Для початку напишемо 2 класу, які нам знадобляться:
Дуже просто, чи не так? Тепер створимо в цій же папці файл, який буде підключати обидва класу.
Тепер створіть папку lib. яка буде використовуватися для phar бібліотек. І створимо головний PHP файл, який буде компілювати phar архіви, і буде демонструвати працездатність бібліотек.
Результат виконання нашого скрипта наданий на скріншоті нижче:
На початку, перевіряємо, чи існує наша бібліотека (lib / SampleLibrary.phar). Якщо існує - нам не потрібно компілювати її знову. Якщо немає - ми автоматично компілюємо і пакуємо нашу бібліотеку.
Для початку перевіряємо читаність phar архіву за допомогою функції ini_set. Далі, вказуємо ім'я і майбутнє місцезнаходження архіву, для phar конструктора. За допомогою setDefaultStub, вказуємо головний файл в бібліотеці, який буде підключати всі класи бібліотеки. За допомогою функції buildFromDirectory, власне сталося компіляція бібліотеки. Функція compress стиснула бібліотеку в формат GZIP.
Звернення до бібліотеки відбувається за допомогою phar: //. Це синтаксис PHP stream wrapper.
Додавання файлів в бібліотекуPhar
Додати файл в бібліотеку, можна за допомогою різних функцій: