예제 #1
0
파일: Backend.php 프로젝트: mage2pro/core
 /**
  * 2015-12-07
  * Конечно, хотелось бы задействовать стандартные методы
  * @see \Magento\Framework\Model\AbstractModel::beforeSave() и
  * @see \Magento\Framework\Model\AbstractModel::afterSave()
  * или же
  * @see \Magento\Framework\Model\ResourceModel\Db\AbstractDb::_beforeSave() и
  * @see \Magento\Framework\Model\ResourceModel\Db\AbstractDb::_afterSave()
  * или же
  * @see \Magento\Framework\Model\ResourceModel\Db\AbstractDb::_serializeFields() и
  * @see \Magento\Framework\Model\ResourceModel\Db\AbstractDb::unserializeFields()
  * однако меня смутило, что в случае исключительной ситуации
  * модель может остаться в несогласованном состоянии:
  * https://mage2.pro/t/283
  * https://mage2.pro/t/284
  * Поэтому разработал свои аналогичные методы.
  *
  * @override
  * @see \Magento\Framework\App\Config\Value::save()
  * @return $this
  * @throws \Exception
  */
 public function save()
 {
     try {
         $this->dfSaveBefore();
         parent::save();
     } catch (\Exception $e) {
         df_log($e);
         throw df_le($e);
     } finally {
         $this->dfSaveAfter();
     }
     return $this;
 }
예제 #2
0
파일: exception.php 프로젝트: mage2pro/core
/**
 * 2016-03-17
 * @param callable $function
 * @return mixed
 * @throws LE
 */
function df_leh(callable $function)
{
    /** @var mixed $result */
    try {
        $result = $function();
    } catch (E $e) {
        throw df_le($e);
    }
    return $result;
}