Бортовой журнал Ктулху

Несколько полезных библиотек PHP

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

 

Графика

Imanee

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

Imanee - это библиотека, которая позволяет работать с графикой при помощи простых команд.

Например, чтобы уменьшить картинку, нужен такой код:

$res_jpg = __DIR__ . '/../resources/img01.jpg';
header("Content-type: image/jpg");
$imanee = new Imanee($res_jpg);
echo $imanee->thumbnail(300, 300)
 ->output();

thumbnail default

Скачать:https://github.com/imanee/imanee
Документация:http://imanee.readthedocs.io

 

PHP Face Detection

Распознавание лиц на фотографии может быть очень полезной функцией, если вы хотите, чтобы на загружаемой фотографии лицо было в центре, что полезно, например, при фотоверификации.

face detection

include "FaceDetector.php";
$detector = new svay\FaceDetector('detection.dat');
$detector->faceDetect('lena512color.jpg');
$detector->toJpeg();

На хабре есть статья по прочим инструментам распознавания: habrahabr.ru/company/io/blog/260579/

mPDF

Открытое ПО для генерации PDF из обычных web-страниц. 

require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output();

https://github.com/mpdf/mpdf

 

Парсинг

PHPQuery

Универсальный инструмент парсинга страниц, по сути, являющийся аналогом jQuery.

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

https://github.com/punkave/phpQuery

Определение браузера/устройства

Mobile Detect

Легкий класс, надежно определяющий устройство по заголовкам и юзерагенту.

if ( $detect->isMobile() ) {
 
}

http://demo.mobiledetect.net/

http://mobiledetect.net/

 

Базы данных

Database

Класс для работы с MySQL, который использует плейсхолдеры для конструирования SQL запросов.

// Соединение с СУБД и получение объекта Database_Mysql
// Database_Mysql - "обертка" над "родным" объектом mysqli
$db = Database_Mysql::create("localhost", "root", "password")
 // Выбор базы данных
 ->setDatabaseName("test")
 // Выбор кодировки
 ->setCharset("utf8");
// Получение объекта результата Database_Mysql_Statement
// Database_Mysql_Statement - "обертка" над "родным" объектом mysqli_result
$result = $db->query("SELECT * FROM `users` WHERE `name` = '?s' AND `age` = ?i", "Д'Артаньян", 30);
// Получаем данные (в виде ассоциативного массива, например)
$data = $result->fetch_assoc();
// Получим количество рядов в результате
$result->getNumRows();
// Не работает запрос? Не проблема - выведите его на печать:
echo $db->getQueryString();
// Получить все SQL-запросы текущего соединения
print_r($db->getQueries());

habrahabr.ru/sandbox/101440/

https://github.com/Vasiliy-Makogon/Database