当前位置: 首页>>代码示例>>PHP>>正文


PHP xPDOObject::_loadInstance方法代码示例

本文整理汇总了PHP中xPDOObject::_loadInstance方法的典型用法代码示例。如果您正苦于以下问题:PHP xPDOObject::_loadInstance方法的具体用法?PHP xPDOObject::_loadInstance怎么用?PHP xPDOObject::_loadInstance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在xPDOObject的用法示例。


在下文中一共展示了xPDOObject::_loadInstance方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _loadCollectionInstance

 /**
  * Custom instance loader for collections that respects policy checking.
  *
  * {@inheritdoc}
  */
 protected static function _loadCollectionInstance(xPDO &$xpdo, array &$objCollection, $className, $criteria, $row, $fromCache, $cacheFlag = true)
 {
     $loaded = false;
     if ($obj = xPDOObject::_loadInstance($xpdo, $className, $criteria, $row)) {
         if (($cacheKey = $obj->getPrimaryKey()) && !$obj->isLazy()) {
             if (is_array($cacheKey)) {
                 $pkval = implode('-', $cacheKey);
             } else {
                 $pkval = $cacheKey;
             }
             if ($obj->checkPolicy('load')) {
                 if ($xpdo->getOption(xPDO::OPT_CACHE_DB_COLLECTIONS, array(), 1) == 2 && $xpdo->_cacheEnabled && $cacheFlag) {
                     if (!$fromCache) {
                         $pkCriteria = $xpdo->newQuery($className, $cacheKey, $cacheFlag);
                         $xpdo->toCache($pkCriteria, $obj, $cacheFlag);
                     } else {
                         $obj->_cacheFlag = true;
                     }
                 }
                 $objCollection[$pkval] = $obj;
                 $loaded = true;
             }
         } else {
             if ($obj->checkPolicy('load')) {
                 $objCollection[] = $obj;
                 $loaded = true;
             }
         }
     }
     return $loaded;
 }
开发者ID:JoeBlow,项目名称:revolution,代码行数:36,代码来源:modaccessibleobject.class.php

示例2: _loadInstance

 /**
  * Custom instance from row loader that respects policy checking
  *
  * {@inheritdoc}
  */
 public static function _loadInstance(& $xpdo, $className, $criteria, $row) {
     $instance = xPDOObject :: _loadInstance($xpdo, $className, $criteria, $row);
     if ($instance instanceof modAccessibleObject && !$instance->checkPolicy('load')) {
         if ($xpdo instanceof modX) {
             $userid = $xpdo->getLoginUserID();
             if (!$userid) $userid = '0';
             $xpdo->log(xPDO::LOG_LEVEL_INFO, "Principal {$userid} does not have permission to load object of class {$instance->_class} with primary key: " . (is_object($instance) && method_exists($instance,'getPrimaryKey') ? print_r($instance->getPrimaryKey(), true) : ''));
         }
         $instance = null;
     }
     return $instance;
 }
开发者ID:raf3600,项目名称:revolution,代码行数:17,代码来源:modaccessibleobject.class.php

示例3: load

 /**
  * Load an instance of an xPDOObject or derivative class.
  *
  * @static
  * @param xPDO &$xpdo A valid xPDO instance.
  * @param string $className Name of the class.
  * @param mixed $criteria A valid primary key, criteria array, or
  * xPDOCriteria instance.
  * @param boolean|integer $cacheFlag Indicates if the objects should be
  * cached and optionally, by specifying an integer value, for how many
  * seconds.
  * @return object|null An instance of the requested class, or null if it
  * could not be instantiated.
  */
 public static function load(xPDO &$xpdo, $className, $criteria, $cacheFlag = true)
 {
     $instance = null;
     $fromCache = false;
     if ($className = $xpdo->loadClass($className)) {
         if (!is_object($criteria)) {
             $criteria = $xpdo->getCriteria($className, $criteria, $cacheFlag);
         }
         if (is_object($criteria)) {
             $criteria = $xpdo->addDerivativeCriteria($className, $criteria);
             $row = null;
             if ($xpdo->_cacheEnabled && $criteria->cacheFlag && $cacheFlag) {
                 $row = $xpdo->fromCache($criteria, $className);
             }
             if ($row === null || !is_array($row)) {
                 if ($rows = xPDOObject::_loadRows($xpdo, $className, $criteria)) {
                     $row = $rows->fetch(PDO::FETCH_ASSOC);
                     $rows->closeCursor();
                 }
             } else {
                 $fromCache = true;
             }
             if (!is_array($row)) {
                 if ($xpdo->getDebug() === true) {
                     $xpdo->log(xPDO::LOG_LEVEL_DEBUG, "Fetched empty result set from statement: " . print_r($criteria->sql, true) . " with bindings: " . print_r($criteria->bindings, true));
                 }
             } else {
                 $instance = xPDOObject::_loadInstance($xpdo, $className, $criteria, $row);
                 if (is_object($instance)) {
                     if (!$fromCache && $cacheFlag && $xpdo->_cacheEnabled) {
                         $xpdo->toCache($criteria, $instance, $cacheFlag);
                         if ($xpdo->getOption(xPDO::OPT_CACHE_DB_OBJECTS_BY_PK) && ($cacheKey = $instance->getPrimaryKey()) && !$instance->isLazy()) {
                             $pkCriteria = $xpdo->newQuery($className, $cacheKey, $cacheFlag);
                             $xpdo->toCache($pkCriteria, $instance, $cacheFlag);
                         }
                     }
                     if ($xpdo->getDebug() === true) {
                         $xpdo->log(xPDO::LOG_LEVEL_DEBUG, "Loaded object instance: " . print_r($instance->toArray('', true), true));
                     }
                 }
             }
         } else {
             $xpdo->log(xPDO::LOG_LEVEL_ERROR, 'No valid statement could be found in or generated from the given criteria.');
         }
     } else {
         $xpdo->log(xPDO::LOG_LEVEL_ERROR, 'Invalid class specified: ' . $className);
     }
     return $instance;
 }
开发者ID:e-gob,项目名称:apps.gob.cl,代码行数:63,代码来源:xpdoobject.class.php


注:本文中的xPDOObject::_loadInstance方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。