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

Многие программисты при выполнении каких-то задач пишут свои собственные решения, часто забывая о том, что эта же задача, скорее всего, уже давно решена другим разработчиком намного эффективней и качественней.

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

Imanee

Пожалуйста, хватит писать свои функции для работы с графикой!

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

Чтобы окончательно убедить вас не писать что-то своё, приведем несколько примеров.

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

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

Официальный GitHub репозиторий: Imanee

Сайт с документацией и котиком: Imanee.io

PHP Benchmark

Перестаньте писать свои решения с запоминанием таймстампов в переменные и сравнением, ваши проблемы решает PHP Benchmark — бесплатная библиотека с открытыми исходниками.

Она ведет учет не только времени выполнения, но и использованной памяти и других параметров.

Подключив PHP Benchmark и прописав в нужных местах следующую строчку:

можно получить детальный отчет по работе приложения.

Вот пример для популярной платформы WordPress:
687474703a2f2f766963746f726a6f6e73736f6e2e6769746875622e636f6d2f5048502d42656e63686d61726b2f73632d322e706e67

Подробную документацию, как и исходники, вы можете найти на гитхабе: PHP-Benchmark

RegExp Builder

Являясь бесплатным портом известной JavaScript библиотеки, PHP RegExp Builder позволяет полностью забыть о регулярках, их синтаксисе и искусстве написания. С использованием этого инструмента валидацию, поиск и замену сложных по структуре данных — основные области применения регулярных выражений — стало делать ещё проще.

Выражения, созданные в Builder’е, легко читать и изменять — всё состоит из так называемых «цепочек».

Пример создания регулярного выражения с RegExp Builder:

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

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

PHP FaceDetection

Определение лиц на фотографиях не является распространенной задачей, тем не менее, знание о том, что такая библиотека существует, вам пригодится.

PHP FaceDetection — это серверная адаптация одноименного JS-фреймворка от Котика Тхеравада, с помощью которой, написав всего пару строчек, вы получите координаты лица на изображении в удобном формате.

Пример:

face-detect-sample (1)

Ссылка на GitHub: PHP FaceDetection

Mobile Detect

Mobile Detect — легковесный класс с открытым исходным кодом, предназначенный для определения модели мобильного устройства клиента. Для «детекта» он использует User-Agent в сочетании с HTTP заголовками и свою обширную базу данных — это делает количество ложных срабатываний минимальным.

Даже несмотря на то, что для адаптивного дизайна сегодня используются Media Queries, скрипт всё равно может быть полезен: например, вы можете отдавать мобильным пользователям более легковесные изображения, тем самым ускоряя загрузку сайта.

Простейший пример:

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

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

ABLincoln

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

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

Например, чтобы поставить эксперимент с двумя видами надписи и цвета кнопки, нужно создать вот такой простой класс:

Документация, исходники и примеры кода — на GitHub.

phpQuery

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

Ранее мы уже делали подборку лучших инструментов для парсинга веб-страниц средствами PHP. Согласно результатам того исследования, наиболее универсальной оказалась библиотека phpQuery.

Это, по сути, PHP вариант jQuery, обладающий почти всем, что есть в оригинале. Помимо удобства использования, phpQuery еще и гораздо быстрее своих конкурентов, а значит, лучше всего подойдет для работы с большим объемом данных.

Вот небольшой пример использования phpQuery для обработки элементов списка (li):

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

mPDF

mPDF — одна из лучших библиотек для генерации документов в формате PDF. В отличие от своих конкурентов, mPDF в полной мере поддерживает русский язык, вставку картинок, форматирование и, самое главное, HTML и CSS.

Основанный на открытом движке инструмент очень прост в использовании: на вход вы подаете почти обычную веб-страницу — на выходе получаете полноценный PDF.

Более подробную документацию, пример кода и ссылку на скачивание вы найдете на официальном сайте: mpdf1.com

Тарас Сереванн, эксперт в области IT магии