Еще одна важная библиотека - обертка для mysqli_. У меня есть такая же для PDO, но вот почему то к этой больше лежит душа.
Взять её можно здесь.
Собственно она ничего не привносит особого, кроме дебаггинга и отладки запросов. Синтаксис остается прежним. Можно даже навертеть сверху каких-нибудь AR, ORM или своих велосипедов а'ля DbCommand :)
Я расположил её в папке vendor/, так как это общая либа, востребована почти на всех сайтах.
Пользоваться проще простого. Сначала нужно её настроить и внедрить в сборку.
Core/Assembly.php
<?phpТут примечательно то, что она завернута в синглтон-реестр, дабы не плодить коннекты.
namespace Core\Libs;
/**
* Класс Assembly
*
* NOTE: Requires PHP version 5.5 or later
* @author phpforum.su
* @copyright © 2016
* @license WTFPL (http://www.wtfpl.net)
*/
class Assembly
{
protected static $config;
protected static $container = [];
/**
* Установка конфиги
*
* @return void
*/
public static function setting($config)
{
self::$config = $config;
}
/**
* Mysqli
*
* @return object
*/
public static function getMysqli()
{
if (empty(self::$container['mysqli'])) {
self::$container['mysqli'] = new \Mysqli\Mysqli(self::$config['mysqli']);
}
return self::$container['mysqli'];
}
/**
* Отображение
*
* @return object
*/
public static function getView()
{
return new \Core\Libs\View\Master(self::$config['template_path']);
}
}
Соответственно потребуется настройка:
App/config.php
<?php
return [
'debug' => true,
'template_path' => dirname(__DIR__) .'/www/theme/tpl',
'mysqli' => ['host' => 'localhost', // Хост СУБД
'user' => 'root', // Пользователь MySql
'password' => '', // Пароль
'base' => 'example', // База данных
'debug' => true, // Режим дебаггинга
],
];
Теперь при любом кривом запросе эта штука выкинет такую табличку (даже если используются подготовленные выражения):
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.
Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
