Manager

Как использовать класс Manager?

Этот класс используется как основной для работы с короткими ссылками, инициализация происходит следующим образом:

$oManager = \Bxmaker\ShortLink\Manager::getInstance();

Как добавлять записи в базу данных напрямую?

Добавлять записи напрямую не рекомендуется, так как для этого существуют специализированные под эти задачи методы, которые облегчат вам жизнь если пользоваться ими. Но если вам все таки это необходимо, то есть следующий метод, который возвращает экземпляр класса \Bxmaker\ShortLink\ManagerTable

$oManagerTable = $oManager->getTable();

/* далее можно использовать методы соответствующего класса */
$dbr = $oManagertable->getList(array(
   'filter' => array(
       'ID' => 1
   )
));
if($ar = $dbr->fetch())
{
   echo '<pre>';
   print_r($ar);
   echo '</pre>';
}

Какие существуют поля у классa \Bxmaker\ShortLink\ManagerTable?

array(
    'ID' => 'int primary autocomplete',
    'SITE_ID' => 'str(2) идентификатор сайта например s1 = $oManager->getCurrentSiteId()',
    'FROM' => 'str(1,20) код ссылки, напр DfjOl',
    'TO' => 'str, ссылка цель, подготовить можно методом - $oManager->prepareLink($url)',
    'HASH' => 'md5 от $oManager->prepareLink($url)',
   'TAG' => 'str(0,255) тег для объединения ссылок  в группы и удобства фильтрации'
);


/* доп поля для выборки */
CNT - для подсчета количества записей
STAT - ReferenceField на \Bxmaker\ShortLink\StatTable ,  для использования в выборке например так 

$dbrLink = $oManager->getTable()->getList(array(
    'select' => array('*', 'AMOUNT' => 'STAT.AMOUNT', 'AMOUNT_UNIQ' => 'STAT.AMOUNT_UNIQ'),
    'filter' => array('FROM' => 'DfjOl') 
)); 

Добавление ссылки

Чтобы получить короткую ссылку, необходимо добавить в базу данных ссылку, на которую необходимо перенаправить пользователя с короткой ссылки используя метод addLink(). В результате выполнения вы получите код короткой ссылки. 

/* ссылка на которую должна вести короткая ссылка */
$url = 'https://bxmaker.ru/promo_stranica/?utm-source=bxmaker.ru&utm-compaign=promo';

/* получение кода короткой ссылки */
$code = $oManager->addLink($url); 

Получение короткой ссылки

Сохранив ссылку в базе  получив ее короткий код,   можно преобразовать его в полную ссылки используя метод - prepareShortLink()/

/* получение ссылки */
$code = $oManager->addLink($url); 
if($code)
{
   /* $code = DfjOl, $short_link = https://bxmaker.ru/DfjOl, http или https и домен берутся из  текущего адреса страницы */
    $short_link = $oManager->prepareShortLink($code);
}
else
{
   /* Ошибок в принципе быть не может,  
   в случае повторного добавления ссылки, 
   будет возвращен ранее созданный код этой ссылки.
   Если что-то пошло не так, $code == '' */
   
}

Получение информации о короткой ссылке

Для получения информации по ссылкам используется метод getList класса \Bxmaker\ShortLink\ManagerTable. Также можно в одном запросе получить  суммарную статистику по переходам, запросив поле STAT.AMOUNT и STAT.AMOUNT_UNIQ.

/* инициализация объекта класса для работы со статистикой в базе данных */
$oStatTable = new \Bxmaker\ShortLink\StatTable();
$oManager = \Bxmaker\ShortLink\Manager::getInstance();

/* используйте $oStatTable->getList() или $oManager->getTable()->getList() */
$dbrLink = $oManager->getTable()->getList(array(
    'select' => array('*', 'AMOUNT' => 'STAT.AMOUNT', 'AMOUNT_UNIQ' => 'STAT.AMOUNT_UNIQ'),
    'filter' => array('FROM' => 'DfjOl') /* DfjOl - код короткой ссылки */
)); 
if($arLink = $dbrLink->fetch())
{
   echo '<pre>';
   print_r($arLink);
   echo '</pre>';   
}