[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: согласование с MVC
Ron
Всех приветствую!

Появилась идея создать универсальный класс для работы с платежной системой. Проблема только в "обвесе" и логировании действий в БД. Таблицы от проекта к проекту могут варьироваться и не хочется делать жесткую связку со структурой и типом хранилища.

Придумал вот такое решение:


class paysystem
{
protected $client;

public function __construct($clientobj)
{
if($clientobj instanceof clientiface)
{
$this->client = $clientobj;
}
else
{
throw new Exception('Error... Must be implementation of clientiface');
}
}


public function sendpay($param)
{
//Sending some data here
$this->client->logging('Message');
}

public function verifyorder()
{
$orderinfo = $this->client->getproductinfo($id);
//.... many code rows....
}
}


interface clientiface
{
/* @var $message string - logging message
* @return bool - status of operation
*/

public function logging($message);

/* @var $id int - product id
* @return array('product_name'=>string, 'product_amount'=>float)
*/

public function getproductinfo($id);
}


class client implements clientiface
{
public function logging($msg)
{
//$this->db->query('INSERT...');
return true;
}

public function getproductinfo($id)
{
//$a = $this->db->query('SELECT...');
return array('product_name'=>$a['product'], ...);
}

}



Как все это дело упаковать в соответствии с парадигмой MVC? Куда положить интерфейс? Где инициализировать нужные объекты?

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.