Не так давно на одном проекте наткнулся на такой метод-хелпер:
т.е. написан хелпер, который добавляет поддержку кэширования методу CDeliveryShoplogistic::getPickupListByBitrixLocation . А не судьба было отнаследоваться от класса
CDeliveryShoplogistic и переопределить метод getPickupListByBitrixLocation ?
use Bitrix\Main\Loader; if (file_exists($_SERVER["DOCUMENT_ROOT"] . "/bitrix/php_interface/include/sale_delivery/delivery_shoplogistics.php")) { require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/php_interface/include/sale_delivery/delivery_shoplogistics.php"); } class Helper { public static function getPickupListByBitrixLocation($location) { $pickupList = array(); if ((int)$location) { $obCache = new CPHPCache(); $cacheLifetime = 86400*7; $cacheID = 'pickupItems'.$location; $cachePath = '/'.$cacheID; if( $obCache->InitCache($cacheLifetime, $cacheID, $cachePath) ) { $vars = $obCache->GetVars(); $pickupList = $vars['pickupList']; } elseif( $obCache->StartDataCache() ) { $pickupList = CDeliveryShoplogistic::getPickupListByBitrixLocation($location); $obCache->EndDataCache(array('pickupList' => $pickupList)); } } return $pickupList; } } |
CDeliveryShoplogistic и переопределить метод getPickupListByBitrixLocation ?