Класс customer модуля emarket — различия между версиями
Williwaw (обсуждение | вклад) |
Williwaw (обсуждение | вклад) |
||
Строка 69: | Строка 69: | ||
"не использовать данные кук", по умолчанию false<br/> | "не использовать данные кук", по умолчанию false<br/> | ||
<p>'''Результат:''' объект "покупатель-гость", записанный в переменную $customer</p> | <p>'''Результат:''' объект "покупатель-гость", записанный в переменную $customer</p> | ||
+ | |||
+ | |||
В теле функции объявлена переменная $customerId, в которую записывается id покупателя-гостя | В теле функции объявлена переменная $customerId, в которую записывается id покупателя-гостя | ||
Строка 79: | Строка 81: | ||
Также, будет записана кука в браузер пользователя: | Также, будет записана кука в браузер пользователя: | ||
+ | <source lang="php"> | ||
setcookie('customer-id', $customerId, (time() + self::$defaultExpiration), '/'); | setcookie('customer-id', $customerId, (time() + self::$defaultExpiration), '/'); | ||
− | + | </source> | |
[[Категория:API]][[Категория:Модуль Интернет-магазин]] | [[Категория:API]][[Категория:Модуль Интернет-магазин]] |
Версия 14:40, 21 февраля 2014
Актуально для версии 2.9.5
Содержание
Описание
Одним из классов, который необходим для работы модуля "интернет-магазин" является класс customer. Данный класс предоставляет доступ к управлению объектами-покупателями интернет-магазина. Исходный код класса находится в файле classes\modules\emarket\classes\customer\customer.php
Переменные
В класса объявлены две переменные.
Переменная $defaultExpiration, которая будет использована при создании cookie для указания времени ее жизни
public static $defaultExpiration = 2678400; // 31 days
Переменная $isAuth будет хранить id пользователя, если покупатель - авторизованный пользователь, false в противном случае
protected $isAuth;
Методы
get()
Получить экземпляр класса можно с помощью функции get(), если покупатель не существует, то метод создаст новый экземпляр класса
Параметры:
bool $nocache:
не использовать данные кэша, по умолчанию false
Результат: экземпляр класса customer
Сначала функция get() проверит создан ли уже объект покупатель, если он не существует, то, далее, метод проверит авторизован ли пользователь на сайте:
- авторизован - запишет в переменную $object(входной параметр для конструктора класса)объект текущего пользователя
- не авторизован - запишет в переменную $object объект покупателя-гостя, получает этот объект функция getCustomerId()
Далее:
- будет создан экземпляр класса customer, на основе объекта переданного в переменную $object
- только что созданный экземпляр класса обратиться к функции tryMerge()
__construct()
Экземпляр класса создается с помощью функции __construct()
Параметры:
iUmiObject $object:
содержит в себе либо объект "зарегистрированный пользователь" либо объект "незарегистрированный покупатель"
Результат: экземпляр класса customer
При создании объекта, методом определяется, какое значение будет хранить переменная $isAuth
IsUser()
Метод isUser() вернет значение типа boolean, 1 или 0, в зависимости от того является ли покупатель зарегистрированным пользователем, т.е. будет проверено содержит ли переменная $isAuth идентификатор пользователя, или же, содержит false
Параметры:
Результат: boolean
getCustomerId()
Метод getCustomerId() вернет объект покупателя-гостя, если объект не существует, обратится к методу createGuestCustomer(), который создаст нового покупателя-гостя
Параметры:
bool $noCookie:
"не использовать данные кук", по умолчанию false
Результат: объект "покупатель-гость", записанный в переменную $customer
В теле функции объявлена переменная $customerId, в которую записывается id покупателя-гостя
Сначала, метод проверит содержит ли данная переменная значение.
Если переменная пуста $customerId, получит id пользователя из кук. Кука в браузере пользователя создается этой же функцией при генерации объекта покупатель-гость, т.е. если пользователь уже заходил на сайт, то метод сразу же вернет объект покупателя-гостя в переменной $customer.
Если куки не существует($customer осталась пустой), то метод обратиться к функции createGuestCustomer(), которая создаст нового покупателя-гостя. Также, будет записана кука в браузер пользователя:
setcookie('customer-id', $customerId, (time() + self::$defaultExpiration), '/');