Припиніть винаходити винайдене: 8 корисних PHP-бібліотек, які замінять Ваші велосипеди


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

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

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

Imanee

Будь ласка, годі вже писати свої функції для роботи з графікою!

Imanee надає високорівневе API генерації та різноманітної обробки зображень усіх популярних форматів. Написавши всього два рядки з використанням Imanee, Ви зможете накласти копірайт, ватермарк або виконати складнішу операцію. Бібліотека має детальну документацію і відрізняється високою швидкодією.

Щоб остаточно переконати Вас не писати щось своє, наведемо декілька прикладів.

Створити гіфку, що включає, наприклад, усі зображення в теці, можна одним рядком:

echo Imanee::globAnimate('resources/*.jpg');

Те саме стосується і установки на зображення свого копірайта:

$imanee ->placeText ('imanee test', 40, Imanee::IM_POS_MID_CENTER)->output();

Офіційний GitHub репозиторій: Imanee

Сайт з документацією і котиком: Imanee.io

PHP Benchmark

Припиніть писати свої рішення із запам’ятовуванням таймстампов у змінні й порівнянням, Ваші проблеми вирішує PHP Benchmark – безкоштовна бібліотека з відкритими первинниками.

Вона веде облік не лише часу виконання, але й використаної пам’яті та інших параметрів.

Підключивши PHP Benchmark і прописавши в потрібних місцях наведений нижче рядок:

PHPBenchmarkMonitor::instance()->snapshot('Plugins loaded');

можна отримати детальний звіт про роботу додатка.

Ось приклад для популярної платформи WordPress:

Детальну документацію, як і первинники, Ви можете знайти на гітхабі: PHP-Benchmark

RegExp Builder

Будучи безкоштовним портом відомої JavaScript-бібліотеки, PHP RegExp Builder дозволяє повністю забути про регулярки, їх синтаксис і мистецтво написання. З використанням цього інструмента валідацію, пошук і заміну складних за структурою даних – основні сфери застосування регулярних виразів – стало робити ще простіше.

Вирази, створені в Builder ‘е, легко читати і змінювати – все складається з так званих “ланцюжків”.

Приклад створення регулярного виразу з RegExp Builder:

$regExp = $builder ->startOfInput () ->exactly (4) ->digits () ->then ("_") ->exactly (2) ->digits () ->then ("_") ->min (3) ->max (10) ->letters () ->then ("".) ->anyOf (array ("png", " jpg", " gif")) ->endOfInput () ->getRegExp ();

Скачати бібліотеку можна на GitHub: RegExp Builder

Там само доступна і документація: RegExp Builder Wiki

PHP FaceDetection

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

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

Приклад:

$face_detect ->face_detect ('sample - image3.jpg');

Посилання на GitHub: PHP FaceDetection

Mobile Detect

Mobile Detect – легковагий клас із відкритим вихідним кодом, призначений для визначення моделі мобільного пристрою клієнта. Для “детекта” він використовує User-Agent у поєднанні з HTTP-заголовками і своєї великої бази даних – це робить кількість неправдивих спрацьовувань мінімальною.

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

Простий приклад:

if ( $detect ->isMobile() ) {// користувач зайшов з телефону!}

Робоче демо: demo.mobiledetect.net

Документація і посилання на скачування: mobiledetect.net

ABLincoln

ABLinkoln – написана на PHP реалізація фреймворка PlanOut від Facebook, призначеного для A/B тестів – тестів, що використовуються для оцінки ефективності веб-сторінки і підвищення конверсії, або, іншими словами, спліт-тестування.

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

Наприклад, щоб поставити експеримент із двома видами напису і кольору кнопки, потрібно створити простий клас:

use VimeoABLincolnExperimentsSimpleExperiment;use VimeoABLincolnOperatorsRandom as Random;class MyExperiment extends SimpleExperiment{ public function assign ($params, $inputs) { $params ->button_color = new RandomUniformChoice ( ['choices' => ['#ff0000', ' #00ff00']], $inputs ); $params ->button_text = new RandomWeightedChoice ([ 'choices' => ['Join now!', 'Sign up.'],
'weights' => 1 ], $inputs ); }}

Документація, первинники і приклади коду – на GitHub.

phpQuery

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

Раніше ми вже робили підбірку кращих інструментів для парсингу веб-сторінок за допомогою засобів PHP. Згідно з результатами проведеного дослідження, універсальною виявилася бібліотека phpQuery.

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

Ось невеликий приклад використання phpQuery для обробки елементів списку (li) :

foreach (pq ('li') as $li) { // Можна вивести різні дані звичайним текстом $tagName = $li ->tagName; $childNodes = $li ->childNodes;
// А можна додати обгортку phpQuery (аналог $() в JQuery) і, наприклад, додати до елементу якийсь клас pq ($li) ->addClass ('my - second - new - class');}

Бібліотека і документація до неї доступні на офіційній сторінці в Google Code.

mPDF

mPDF – одна з кращих бібліотек для генерації документів у форматі PDF. На відміну від своїх конкурентів; mPDF повною мірою підтримує російську мову, вставку картинок, форматування і, найголовніше, HTML і CSS.

Ґрунтується на відкритому движку інструмент дуже простий у використанні: на вхід Ви подаєте майже звичайну веб-сторінку – на виході отримуєте повноцінний PDF.

$html = '
Приклад 1Приклад 2Приклад 3Приклад 4
Приклад 5Приклад 6Приклад 7mPDF

‘;// Задаємо формат, відступи і т.д$mpdf = new mPDF (‘utf – 8’, ‘A4’, ‘8’, ”, 10, 10, 7, 7, 10, 10);// Не забуваємо про російський$mpdf ->charset_in = ‘cp1251’;// Підключаємо css$stylesheet = file_get_contents (‘style.css’);$mpdf ->WriteHTML ($stylesheet, 1);$mpdf ->list_indent_first_level = 0;// Формований pdf$mpdf ->WriteHTML ($html, 2);$mpdf ->Output (‘mpdf.pdf’, ‘I’);?>

Детальнішу документацію, приклад коду і посилання на скачування Ви знайдете на офіційному сайті: mpdf1.com

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *