Многие программисты при выполнении каких-то задач пишут свои собственные решения, часто забывая о том, что эта же задача, скорее всего, уже давно решена другим разработчиком намного эффективней и качественней.
Tproger собрал 8 существующих библиотек и инструментов, функциональность которых чаще всего реализуют самостоятельно. Они пригодятся любому веб-разработчику: если не сейчас, то в будущем их знание избавит вас от траты времени на написание своих велосипедов.
Imanee
Пожалуйста, хватит писать свои функции для работы с графикой!
Imanee предоставляет высокоуровневое API генерации и разнообразной обработки изображений всех популярных форматов. Написав всего пару строчек с использованием Imanee, вы сможете наложить копирайт, ватермарк или совершить более сложную операцию. Библиотека имеет подробную документацию и отличается высоким быстродействием.
Чтобы окончательно убедить вас не писать что-то своё, приведем несколько примеров.
Создать гифку, включающую в себя, например, все изображения в папке, можно всего одной строкой:
То же самое касается и установки на изображение своего копирайта:
Официальный GitHub репозиторий: Imanee
Сайт с документацией и котиком: Imanee.io
PHP Benchmark
Перестаньте писать свои решения с запоминанием таймстампов в переменные и сравнением, ваши проблемы решает PHP Benchmark — бесплатная библиотека с открытыми исходниками.
Она ведет учет не только времени выполнения, но и использованной памяти и других параметров.
Подключив PHP Benchmark и прописав в нужных местах следующую строчку:
можно получить детальный отчет по работе приложения.
Вот пример для популярной платформы WordPress:
Подробную документацию, как и исходники, вы можете найти на гитхабе: PHP-Benchmark
RegExp Builder
Являясь бесплатным портом известной JavaScript библиотеки, PHP RegExp Builder позволяет полностью забыть о регулярках, их синтаксисе и искусстве написания. С использованием этого инструмента валидацию, поиск и замену сложных по структуре данных — основные области применения регулярных выражений — стало делать ещё проще.
Выражения, созданные в Builder’е, легко читать и изменять — всё состоит из так называемых «цепочек».
Пример создания регулярного выражения с RegExp Builder:
Скачать библиотеку можно на GitHub: RegExp Builder
Там же доступна и документация: RegExp Builder Wiki
PHP FaceDetection
Определение лиц на фотографиях не является распространенной задачей, тем не менее, знание о том, что такая библиотека существует, вам пригодится.
PHP FaceDetection — это серверная адаптация одноименного JS-фреймворка от Котика Тхеравада, с помощью которой, написав всего пару строчек, вы получите координаты лица на изображении в удобном формате.
Mobile Detect
Mobile Detect — легковесный класс с открытым исходным кодом, предназначенный для определения модели мобильного устройства клиента. Для «детекта» он использует User-Agent в сочетании с HTTP заголовками и свою обширную базу данных — это делает количество ложных срабатываний минимальным.
Даже несмотря на то, что для адаптивного дизайна сегодня используются Media Queries, скрипт всё равно может быть полезен: например, вы можете отдавать мобильным пользователям более легковесные изображения, тем самым ускоряя загрузку сайта.
Документация и ссылка на скачивание: mobiledetect.net
ABLincoln
ABLinkoln — написанная на PHP реализация фреймворка PlanOut от Facebook, предназначенного для A/B тестов — тестов, использующихся для оценки эффективности веб-страницы и повышения конверсии, или, другими словами, сплит-тестирования.
ABLincoln значительно упрощает этот процесс, предоставляя программисту возможность легко развертывать и поддерживать сложные эксперименты на больших проектах с широкой аудиторией.
Например, чтобы поставить эксперимент с двумя видами надписи и цвета кнопки, нужно создать вот такой простой класс:
Документация, исходники и примеры кода — на GitHub.
phpQuery
Задача спарсить некую информацию со стороннего сайта встает перед веб-разработчиком очень часто: таким образом можно заполнить контентом собственный сайт, динамически подгрузить какую-то информацию и многое другое.
Ранее мы уже делали подборку лучших инструментов для парсинга веб-страниц средствами PHP. Согласно результатам того исследования, наиболее универсальной оказалась библиотека phpQuery.
Это, по сути, PHP вариант jQuery, обладающий почти всем, что есть в оригинале. Помимо удобства использования, phpQuery еще и гораздо быстрее своих конкурентов, а значит, лучше всего подойдет для работы с большим объемом данных.
Вот небольшой пример использования phpQuery для обработки элементов списка (li):
Библиотека и документация к ней доступны на официальной странице в Google Code.
mPDF — одна из лучших библиотек для генерации документов в формате PDF. В отличие от своих конкурентов, mPDF в полной мере поддерживает русский язык, вставку картинок, форматирование и, самое главное, HTML и CSS.
Основанный на открытом движке инструмент очень прост в использовании: на вход вы подаете почти обычную веб-страницу — на выходе получаете полноценный PDF.
Более подробную документацию, пример кода и ссылку на скачивание вы найдете на официальном сайте: mpdf1.com
- Описание
- Комментарии 1
mPDF — это библиотека PHP, которая легко генерирует PDF файл из HTML документа в кодировке UTF-8.
Наверное самая крутая библиотека из всех что я пробовал. У остальных библиотек много недоработок, сложность в структуре формирования. Библиотека mPDF, как пишет разработчик, основана на FPDF и HTML2FPDF с улучшением кода. Перейдем к логике формированию документа.
mPDF устанавливается через composer. Если не знаете, как установить композер, посмотрите уроки на ютубе, их достаточно много. А если у Вас установлен OpenServer, то он у Вас уже установлен и Вам остается просто перейти в консоль сервера.
Формирование PDF документа с комментариями
Архив с репозиторием приложу, вдруг исчезнет )))
Все намного проще чем казалось.
Буду рад комментариям.
mPDF is a PHP library which generates PDF files from UTF-8 encoded HTML.
It is based on FPDF and HTML2FPDF with a number of enhancements.
The original author, Ian Back, wrote mPDF to output PDF files ‘on-the-fly’ from his website, handling different languages. It is slower than the original scripts e.g. HTML2FPDF and produces larger files when using Unicode fonts, but support for CSS styles etc. and has been much enhanced – see the features.
Support
Consider supporting development of mPDF with a donation of any value.
Useful manual pages
Development
Troubleshooting
Please use https://stackoverflow.com/questions/tagged/mpdf for all your general questions or troubleshooting!
Contributions are welcome 🙂 For contributing with a bug report, feature request or pull request, please see the guideline at GitHub. Please provide a nice small example case or unit test. That will be really helpful for everybody. Thanks!
Acronyms
These are the most used acronyms throughout this manual.