本文整理汇总了PHP中Aimeos\MShop\Common\Item\Iface类的典型用法代码示例。如果您正苦于以下问题:PHP Iface类的具体用法?PHP Iface怎么用?PHP Iface使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Iface类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveItem
/**
* Adds a new site to the storage or updates an existing one.
*
* @param \Aimeos\MShop\Common\Item\Iface $item New site item for saving to the storage
* @param boolean $fetch True if the new ID should be returned in the item
* @throws \Aimeos\MShop\Locale\Exception
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Locale\\Item\\Site\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Locale\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if ($item->getId() === null) {
throw new \Aimeos\MShop\Locale\Exception(sprintf('Newly created site can not be saved using method "saveItem()". Try using method "insertItem()" instead.'));
}
if (!$item->isModified()) {
return;
}
$context = $this->getContext();
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$id = $item->getId();
/** mshop/locale/manager/site/standard/update
* Updates an existing site record in the database
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the log item to the statement before they are
* sent to the database server. The order of the columns must
* correspond to the order in the saveItems() method, so the
* correct values are bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for updating records
* @since 2014.03
* @category Developer
* @see mshop/locale/manager/site/standard/insert
* @see mshop/locale/manager/site/standard/delete
* @see mshop/locale/manager/site/standard/search
* @see mshop/locale/manager/site/standard/count
* @see mshop/locale/manager/site/standard/newid
*/
$path = 'mshop/locale/manager/site/standard/update';
$stmt = $this->getCachedStatement($conn, $path);
$stmt->bind(1, $item->getCode());
$stmt->bind(2, $item->getLabel());
$stmt->bind(3, json_encode($item->getConfig()));
$stmt->bind(4, $item->getStatus(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->bind(5, $context->getEditor());
$stmt->bind(6, date('Y-m-d H:i:s'));
// mtime
$stmt->bind(7, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->execute()->finish();
$item->setId($id);
// set Modified false
$dbm->release($conn, $dbname);
} catch (\Exception $e) {
$dbm->release($conn, $dbname);
throw $e;
}
}
示例2: set
/**
* Adds the attribute item to the cache
*
* @param \Aimeos\MShop\Common\Item\Iface $item Attribute object
*/
public function set(\Aimeos\MShop\Common\Item\Iface $item)
{
$code = $item->getCode();
if (!isset($this->attributes[$code]) || !is_array($this->attributes[$code])) {
$this->attributes[$code] = array();
}
$this->attributes[$code][$item->getType()] = $item;
}
示例3: saveItem
/**
* Updates or adds a common list item object.
*
* @param \Aimeos\MShop\Common\Item\Lists\Iface $item List item object which should be saved
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Common\\Item\\Lists\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if ($item->getDomain() === 'customer/group') {
throw new \Aimeos\MShop\Customer\Exception(sprintf('Adding groups to customers is not supported, please use the eZ Publish backend'));
}
parent::saveItem($item, $fetch);
}
示例4: saveItem
/**
* Updates or adds a common list item object.
*
* @param \Aimeos\MShop\Common\Item\Lists\Iface $item List item object which should be saved
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Common\\Item\\Lists\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
$context = $this->getContext();
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$id = $item->getId();
if ($id === null) {
$type = 'insert';
} else {
$type = 'update';
}
$time = date('Y-m-d H:i:s');
$statement = $this->getCachedStatement($conn, $this->getConfigPath() . $type);
$statement->bind(1, $item->getParentId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(2, $context->getLocale()->getSiteId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(3, $item->getTypeId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(4, $item->getDomain(), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(5, $item->getRefId(), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(6, $item->getDateStart(), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(7, $item->getDateEnd(), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(8, json_encode($item->getConfig()), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(9, $item->getPosition(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(10, $item->getStatus(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(11, $time);
//mtime
$statement->bind(12, $this->getContext()->getEditor());
if ($id !== null) {
$statement->bind(13, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT);
} else {
$statement->bind(13, $time);
//ctime
}
$statement->execute()->finish();
if ($fetch === true) {
if ($id === null) {
$path = $this->getConfigPath() . 'newid';
$item->setId($this->newId($conn, $path));
} else {
$item->setId($id);
// modified false
}
}
$dbm->release($conn, $dbname);
} catch (\Exception $e) {
$dbm->release($conn, $dbname);
throw $e;
}
}
示例5: saveItem
/**
* Adds or updates an item object.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Item object whose data should be saved
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
if ($item->getId() !== null && $item->isModified()) {
$actual = $this->getManager()->getItem($item->getId())->getSiteId();
$siteId = $this->getContext()->getLocale()->getSiteId();
if ($actual !== null && $actual != $siteId) {
return;
}
}
parent::saveItem($item, $fetch);
}
示例6: saveItem
/**
* Adds a new cache to the storage.
*
* @param \Aimeos\MAdmin\Cache\Item\Iface $item Cache item that should be saved to the storage
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MAdmin\\Cache\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MAdmin\Cache\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
$id = $item->getId();
$cache = $this->getCache();
$cache->delete($id);
$cache->set($id, $item->getValue(), $item->getTags(), $item->getTimeExpire());
}
示例7: addMetaItemSingle
/**
* Adds expire date and tags for a single item.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Item, maybe with associated list items
* @param string $domain Name of the domain the item is from
* @param string|null &$expire Expiration date that will be overwritten if an earlier date is found
* @param array &$tags List of tags the new tags will be added to
* @param boolean $tagAll True of tags for all items should be added, false if only for the main item
*/
private function addMetaItemSingle(\Aimeos\MShop\Common\Item\Iface $item, $domain, &$expire, array &$tags, $tagAll)
{
$expires = array();
$domain = str_replace('/', '_', $domain);
// maximum compatiblity
if ($tagAll === true) {
$tags[] = $domain . '-' . $item->getId();
}
if ($item instanceof \Aimeos\MShop\Common\Item\Time\Iface && ($date = $item->getDateEnd()) !== null) {
$expires[] = $date;
}
if ($item instanceof \Aimeos\MShop\Common\Item\ListRef\Iface) {
foreach ($item->getListItems() as $listitem) {
if ($tagAll === true) {
$tags[] = str_replace('/', '_', $listitem->getDomain()) . '-' . $listitem->getRefId();
}
if (($date = $listitem->getDateEnd()) !== null) {
$expires[] = $date;
}
}
}
if (!empty($expires)) {
$expire = min($expires);
}
}
示例8: saveItem
/**
* Stores a new item in the index.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Product item
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Product\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Index\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if ($item->getId() === null) {
throw new \Aimeos\MShop\Index\Exception(sprintf('Item could not be saved using method saveItem(). Item ID not available.'));
}
$this->rebuildIndex(array($item->getId() => $item));
}
示例9: addAttributes
/**
* Adds attribute items to an array.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Item containing the properties to be added as attributes
* @param \Aimeos\MShop\Order\Item\Base\Product\Iface $product Product containing attributes
* @param Array $properties List of item properties to be converted
* @return Array List of attributes
*/
protected function addAttributes(\Aimeos\MShop\Common\Item\Iface $item, \Aimeos\MShop\Order\Item\Base\Product\Iface $product, array $properties)
{
$attributeList = $product->getAttributes();
$itemProperties = $item->toArray();
foreach ($properties as $code) {
if (array_key_exists($code, $itemProperties) && $product->getAttribute($code, $this->type) === null) {
$new = $this->orderAttrManager->createItem();
$new->setCode($code);
$new->setType($this->type);
$new->setValue($itemProperties[$code]);
$attributeList[] = $new;
}
}
return $attributeList;
}
示例10: saveItem
/**
* Adds or updates an order base item in the storage.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Order base object (sub-items are not saved)
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Order\\Item\\Base\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Order\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
$context = $this->getContext();
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$id = $item->getId();
$date = date('Y-m-d H:i:s');
if ($id === null) {
/** mshop/order/manager/base/standard/insert
* Inserts a new order record into the database table
*
* Items with no ID yet (i.e. the ID is NULL) will be created in
* the database and the newly created ID retrieved afterwards
* using the "newid" SQL statement.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the order item to the statement before they are
* sent to the database server. The number of question marks must
* be the same as the number of columns listed in the INSERT
* statement. The order of the columns must correspond to the
* order in the saveItems() method, so the correct values are
* bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for inserting records
* @since 2014.03
* @category Developer
* @see mshop/order/manager/base/standard/update
* @see mshop/order/manager/base/standard/newid
* @see mshop/order/manager/base/standard/delete
* @see mshop/order/manager/base/standard/search
* @see mshop/order/manager/base/standard/count
*/
$path = 'mshop/order/manager/base/standard/insert';
} else {
/** mshop/order/manager/base/standard/update
* Updates an existing order record in the database
*
* Items which already have an ID (i.e. the ID is not NULL) will
* be updated in the database.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the order item to the statement before they are
* sent to the database server. The order of the columns must
* correspond to the order in the saveItems() method, so the
* correct values are bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for updating records
* @since 2014.03
* @category Developer
* @see mshop/order/manager/base/standard/insert
* @see mshop/order/manager/base/standard/newid
* @see mshop/order/manager/base/standard/delete
* @see mshop/order/manager/base/standard/search
* @see mshop/order/manager/base/standard/count
*/
$path = 'mshop/order/manager/base/standard/update';
}
$priceItem = $item->getPrice();
$localeItem = $context->getLocale();
$stmt = $this->getCachedStatement($conn, $path);
$stmt->bind(1, $localeItem->getSiteId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->bind(2, $item->getCustomerId());
$stmt->bind(3, $localeItem->getSite()->getCode());
$stmt->bind(4, $item->getLocale()->getLanguageId());
$stmt->bind(5, $priceItem->getCurrencyId());
$stmt->bind(6, $priceItem->getValue());
$stmt->bind(7, $priceItem->getCosts());
$stmt->bind(8, $priceItem->getRebate());
$stmt->bind(9, $item->getComment());
$stmt->bind(10, $item->getStatus());
$stmt->bind(11, $date);
// mtime
$stmt->bind(12, $context->getEditor());
if ($id !== null) {
$stmt->bind(13, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT);
//.........这里部分代码省略.........
示例11: saveItem
/**
* Saves a customer item object.
*
* @param \Aimeos\MShop\Customer\Item\Iface $item Customer item object
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Customer\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Customer\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
$context = $this->getContext();
$class = '\\Aimeos\\MShop\\Context\\Item\\Ezpublish';
if (!is_a($context, $class)) {
throw new \Aimeos\MShop\Customer\Exception(sprintf('Object is not of required type "%1$s"', $class));
}
$service = $context->getEzUserService();
$email = $item->getPaymentAddress()->getEmail();
if ($item->getId() !== null) {
$struct = $service->newUserUpdateStruct();
$struct->password = $item->getPassword();
$struct->enabled = $item->getStatus();
$struct->email = $email;
$user = $service->loadUser($item->getId());
$service->updateUser($user, $struct);
} else {
$struct = $service->newUserCreateStruct($item->getCode(), $email, $item->getPassword(), 'eng-GB');
$struct->enabled = $item->getStatus();
$user = $service->createUser($struct, array());
$item->setId($user->getUserId());
}
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$date = date('Y-m-d H:i:s');
$ctime = $item->getTimeCreated() ? $item->getTimeCreated() : $date;
$billingAddress = $item->getPaymentAddress();
$path = 'mshop/customer/manager/ezpublish/update';
$stmt = $this->getCachedStatement($conn, $path);
$stmt->bind(1, $billingAddress->getCompany());
$stmt->bind(2, $billingAddress->getVatID());
$stmt->bind(3, $billingAddress->getSalutation());
$stmt->bind(4, $billingAddress->getTitle());
$stmt->bind(5, $billingAddress->getFirstname());
$stmt->bind(6, $billingAddress->getLastname());
$stmt->bind(7, $billingAddress->getAddress1());
$stmt->bind(8, $billingAddress->getAddress2());
$stmt->bind(9, $billingAddress->getAddress3());
$stmt->bind(10, $billingAddress->getPostal());
$stmt->bind(11, $billingAddress->getCity());
$stmt->bind(12, $billingAddress->getState());
$stmt->bind(13, $billingAddress->getCountryId());
$stmt->bind(14, $billingAddress->getLanguageId());
$stmt->bind(15, $billingAddress->getTelephone());
$stmt->bind(16, $billingAddress->getTelefax());
$stmt->bind(17, $billingAddress->getWebsite());
$stmt->bind(18, $item->getBirthday());
$stmt->bind(19, $item->getDateVerified());
$stmt->bind(20, $date);
// Modification time
$stmt->bind(21, $context->getEditor());
$stmt->bind(22, $ctime);
// Creation time
$stmt->bind(23, $item->getId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->execute()->finish();
$dbm->release($conn, $dbname);
} catch (\Exception $e) {
$dbm->release($conn, $dbname);
throw $e;
}
}
示例12: addMetaItemSingle
/**
* Adds expire date and tags for a single item.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Item, maybe with associated list items
* @param array &$expires Will contain the list of expiration dates
* @param array &$tags List of tags the new tags will be added to
* @param boolean $tagAll True of tags for all items should be added, false if only for the main item
*/
private function addMetaItemSingle(\Aimeos\MShop\Common\Item\Iface $item, array &$expires, array &$tags, $tagAll)
{
$domain = str_replace('/', '_', $item->getResourceType());
// maximum compatiblity
if ($tagAll === true) {
$tags[] = $domain . '-' . $item->getId();
} else {
$tags[] = $domain;
}
if ($item instanceof \Aimeos\MShop\Common\Item\Time\Iface && ($date = $item->getDateEnd()) !== null) {
$expires[] = $date;
}
}
示例13: saveItem
/**
* Adds a new cache to the storage.
*
* @param \Aimeos\MAdmin\Cache\Item\Iface $item Cache item that should be saved to the storage
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MAdmin\\Cache\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MAdmin\Cache\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
/** madmin/cache/manager/standard/set/mysql
* Inserts the cache entry into the database
*
* @see madmin/cache/manager/standard/set/ansi
*/
/** madmin/cache/manager/standard/set/ansi
* Inserts the cache entry into the database
*
* The ID, value and expiration timestamp are inserted as new record
* into the cache database. Any existing record must be deleted before
* the new one can be inserted.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the cache item to the statement before they are
* sent to the database server. The number of question marks must
* be the same as the number of columns listed in the INSERT
* statement. The order of the columns must correspond to the
* order in the set() method, so the correct values are bound to the
* columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for inserting a new cache entry
* @since 2014.03
* @category Developer
* @see madmin/cache/manager/standard/delete/ansi
* @see madmin/cache/manager/standard/deletebytag/ansi
* @see madmin/cache/manager/standard/get/ansi
* @see madmin/cache/manager/standard/getbytag/ansi
* @see madmin/cache/manager/standard/settag/ansi
* @see madmin/cache/manager/standard/search/ansi
* @see madmin/cache/manager/standard/count/ansi
*/
/** madmin/cache/manager/standard/settag/mysql
* Inserts a new tag to an existing cache entry
*
* @see madmin/cache/manager/standard/settag/ansi
*/
/** madmin/cache/manager/standard/settag/ansi
* Inserts a new tag to an existing cache entry
*
* The ID of the cache entry and the tag name are inserted as a new
* record into the cache database. Any existing tag record that
* conflicts with the new one must be deleted before it can be inserted.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the cache ID and tag name from the cache item to the statement
* before they are sent to the database server. The number of question
* marks must be the same as the number of columns listed in the INSERT
* statement. The order of the columns must correspond to the order in
* the saveItems() method, so the correct values are bound to the
* columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for inserting a new tag to an existing cache entry
* @since 2014.03
* @category Developer
* @see madmin/cache/manager/standard/delete/ansi
* @see madmin/cache/manager/standard/deletebytag/ansi
* @see madmin/cache/manager/standard/get/ansi
* @see madmin/cache/manager/standard/getbytag/ansi
* @see madmin/cache/manager/standard/set/ansi
* @see madmin/cache/manager/standard/search/ansi
* @see madmin/cache/manager/standard/count/ansi
*/
$id = $item->getId();
$cache = $this->getCache();
$cache->delete($id);
$cache->set($id, $item->getValue(), $item->getTags(), $item->getTimeExpire());
}
示例14: addItemData
/**
* Adds the data from the given object to the item
*
* @param \Aimeos\MShop\Common\Manager\Iface $manager Manager object
* @param \Aimeos\MShop\Common\Item\Iface $item Item object to add the data to
* @param \stdClass $data Object with "attributes" property
* @param string $domain Domain of the type item
* @return \Aimeos\MShop\Common\Item\Iface Item including the data
*/
protected function addItemData(\Aimeos\MShop\Common\Manager\Iface $manager, \Aimeos\MShop\Common\Item\Iface $item, \stdClass $data, $domain)
{
if (isset($data->attributes)) {
$attr = (array) $data->attributes;
$key = str_replace('/', '.', $item->getResourceType());
if (isset($attr[$key . '.type'])) {
$typeItem = $manager->getSubManager('type')->findItem($attr[$key . '.type'], array(), $domain);
$attr[$key . '.typeid'] = $typeItem->getId();
}
$item->fromArray($attr);
}
return $item;
}
示例15: saveItem
/**
* Stores a new item into the index
*
* @param \Aimeos\MShop\Common\Item\Iface $item Product item
* @param boolean $fetch True if the new ID should be set in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$this->rebuildIndex(array($item->getId() => $item));
}