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


PHP E::getInstance方法代码示例

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


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

示例1: __get

 public function __get($sName)
 {
     // LS compatibility
     if ($sName === 'oEngine') {
         $this->oEngine = E::getInstance();
     }
     return $this->oEngine;
 }
开发者ID:hard990,项目名称:altocms,代码行数:8,代码来源:LsObject.class.php

示例2: __get

 public function __get($sName)
 {
     // LS compatibility
     if ($sName === 'oEngine') {
         $this->oEngine = E::getInstance();
         return $this->oEngine;
     }
     $trace = debug_backtrace();
     $sError = 'Undefined property via __get(): ' . $sName . ' in ' . $trace[0]['file'] . ' on line ' . $trace[0]['line'];
     F::SysWarning($sError);
     return null;
 }
开发者ID:anp135,项目名称:altocms,代码行数:12,代码来源:LsObject.class.php

示例3: __construct

 /**
  * Конструктор
  *
  * @param Engine $oEngine Объект ядра
  * @param string $sAction Название экшена
  */
 public function __construct($oEngine, $sAction = null)
 {
     if (func_num_args() == 1 && is_string($oEngine)) {
         // Передан только экшен
         $this->oEngine = E::getInstance();
         $sAction = $oEngine;
     } else {
         // LS-compatible
         $this->oEngine = $oEngine;
     }
     $this->_prepareRequestData();
     //Engine::getInstance();
     $this->sCurrentAction = $sAction;
     $this->aParams = R::GetParams();
     $this->RegisterEvent();
     //Config::ResetLevel(Config::LEVEL_ACTION);
     // Get current config level
     $iConfigLevel = C::GetLevel();
     // load action's config if exists
     if ($sFile = F::File_Exists('/config/actions/' . $sAction . '.php', Config::Get('path.root.seek'))) {
         // Дополняем текущий конфиг конфигом экшена
         if ($aConfig = F::File_IncludeFile($sFile, true, true)) {
             // Текущий уровень конфига может быть как меньше LEVEL_ACTION,
             // так и больше. Нужно обновить все уровни
             if ($iConfigLevel <= Config::LEVEL_ACTION) {
                 $iMinLevel = $iConfigLevel;
                 $iMaxLevel = Config::LEVEL_ACTION;
             } else {
                 $iMinLevel = Config::LEVEL_ACTION;
                 $iMaxLevel = $iConfigLevel;
             }
             for ($iLevel = $iMinLevel; $iLevel <= $iMaxLevel; $iLevel++) {
                 if ($iLevel > $iConfigLevel) {
                     Config::ResetLevel(Config::LEVEL_ACTION);
                 }
                 Config::Load($aConfig, false, null, $iLevel, $sFile);
             }
         }
     } elseif ($iConfigLevel < Config::LEVEL_ACTION) {
         Config::ResetLevel(Config::LEVEL_ACTION);
     }
 }
开发者ID:anp135,项目名称:altocms,代码行数:48,代码来源:Action.class.php

示例4: checkCustomRules

 /**
  * Проверяет массив правил. В качестве правил может быть задана колбэк-функция
  * или указан метод владельца сущности, который должен быть реализован заранее
  *
  * @param $aRules
  * @param bool $bConcatenateResult
  * @param bool $sOwnerClassName
  * @return bool
  */
 public function checkCustomRules($aRules, $bConcatenateResult = FALSE, $sOwnerClassName = FALSE)
 {
     // Ключ кэша
     $sCacheKey = md5(serialize($aRules) . (string) $bConcatenateResult . (string) $sOwnerClassName);
     if (!(FALSE === ($data = E::ModuleCache()->GetTmp($sCacheKey)))) {
         return $data;
     }
     // Правило жёстко задано - вернем его
     if (is_bool($aRules)) {
         return $aRules;
     }
     // Правило жёстко задано - вернем его
     if (is_string($aRules)) {
         return $aRules;
     }
     /** @var callable[]|[][] $aActiveRule Правило вычисления активности */
     // Нет правила, кнопка вообще не активна будет
     if (!$aRules) {
         return FALSE;
     }
     // Правило задается методаом меню
     if (!is_array($aRules)) {
         return FALSE;
     }
     if (!$sOwnerClassName) {
         $aOwnerClassName = E::getInstance()->GetClassInfo($this, Engine::CI_MODULE);
         $sOwnerClassName = reset($aOwnerClassName);
     }
     // Все проверки пройдены, запускаем вычисление активности
     $bResult = FALSE;
     foreach ($aRules as $sMethodName => $xRule) {
         if (is_bool($xRule)) {
             if ($bConcatenateResult) {
                 $bResult .= $xRule;
             } else {
                 $bResult = $bResult || $xRule;
             }
             if ($bResult && !$bConcatenateResult) {
                 break;
             }
             continue;
         }
         if (is_string($xRule) && $bConcatenateResult) {
             if (strpos($xRule, 'hook:') === 0) {
                 $bResult .= E::ModuleHook()->Run(substr($xRule, 5));
             } elseif (strpos($xRule, 'text:') === 0) {
                 $bResult .= substr($xRule, 5);
             } elseif (strpos($xRule, 'func:') === 0) {
                 $bResult .= call_user_func(substr($xRule, 5));
             } else {
                 $bResult .= $xRule;
             }
             continue;
         }
         // Передан колбэк
         if (is_callable($xRule)) {
             $bResult = $bResult || $xRule();
             if ($bResult && !$bConcatenateResult) {
                 break;
             }
             continue;
         }
         /**
          * Передан вызов функции, например
          * $xRule = array('compare_action' => array('index'))
          */
         $sTmpMethodName = FALSE;
         $aTmpMethodParams = FALSE;
         // Метод передан строкой
         if (is_int($sMethodName) && is_string($xRule)) {
             $sTmpMethodName = $xRule;
             $aTmpMethodParams = array();
         }
         // Метод передан массивом
         if (is_string($sMethodName) && is_array($xRule)) {
             $sTmpMethodName = $sMethodName;
             $aTmpMethodParams = $xRule;
         }
         // Вызовем метод
         if ($sTmpMethodName && $aTmpMethodParams !== FALSE) {
             if (strpos($sTmpMethodName, 'hook:') === 0) {
                 $xCallResult = E::ModuleHook()->Run(substr($sTmpMethodName, 5), $aTmpMethodParams, false);
             } elseif (strpos($sTmpMethodName, 'text:') === 0) {
                 $xCallResult = substr($sTmpMethodName, 5);
             } elseif (strpos($sTmpMethodName, 'func:') === 0) {
                 $xCallResult = call_user_func_array(substr($sTmpMethodName, 5), $aTmpMethodParams);
             } else {
                 $sTmpMethodName = $sOwnerClassName . '_' . F::StrCamelize($sTmpMethodName);
                 $xCallResult = call_user_func_array(array($this, $sTmpMethodName), $aTmpMethodParams);
             }
             if ($bConcatenateResult) {
//.........这里部分代码省略.........
开发者ID:AntiqS,项目名称:altocms,代码行数:101,代码来源:Entity.class.php

示例5: Exec

 /**
  * Запускает весь процесс :)
  *
  */
 public function Exec()
 {
     $this->ParseUrl();
     $this->DefineActionClass();
     // Для возможности ДО инициализации модулей определить какой action/event запрошен
     $this->oEngine = E::getInstance();
     $this->oEngine->Init();
     // Подгружаем предыдущий URL, если он был
     $sData = E::ModuleSession()->GetCookie(static::BACKWARD_COOKIE);
     if ($sData) {
         $aData = F::Unserialize($sData);
         if (is_array($aData)) {
             $this->aBackwardUrl = $aData;
         }
     }
     // И сохраняем текущий, если это не ajax-запрос
     if (!F::AjaxRequest()) {
         E::ModuleSession()->SetCookie(static::BACKWARD_COOKIE, F::Serialize($this->aCurrentUrl, true));
     }
     $this->ExecAction();
     $this->Shutdown(false);
 }
开发者ID:hard990,项目名称:altocms,代码行数:26,代码来源:Router.class.php

示例6: GetTableName

 /**
  * Возвращает имя таблицы для сущности
  *
  * @param EntityORM $oEntity    Объект сущности
  *
  * @return string
  */
 public static function GetTableName($oEntity)
 {
     /**
      * Варианты таблиц:
      *    prefix_user -> если модуль совпадает с сущностью
      *    prefix_user_invite -> если модуль не сопадает с сущностью
      */
     $sClass = E::getInstance()->Plugin_GetDelegater('entity', is_object($oEntity) ? get_class($oEntity) : $oEntity);
     $sModuleName = F::StrUnderscore(E::GetModuleName($sClass));
     $sEntityName = F::StrUnderscore(E::GetEntityName($sClass));
     if (strpos($sEntityName, $sModuleName) === 0) {
         $sTable = F::StrUnderscore($sEntityName);
     } else {
         $sTable = F::StrUnderscore($sModuleName) . '_' . F::StrUnderscore($sEntityName);
     }
     /**
      * Если название таблиц переопределено в конфиге, то возвращаем его
      */
     if (Config::Get('db.table.' . $sTable)) {
         return Config::Get('db.table.' . $sTable);
     } else {
         return Config::Get('db.table.prefix') . $sTable;
     }
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:31,代码来源:MapperORM.class.php

示例7: __construct

 /**
  * Конструктор
  *
  * @param Engine $oEngine Объект ядра
  * @param string $sAction Название экшена
  */
 public function __construct($oEngine, $sAction = null)
 {
     if (func_num_args() == 1 && is_string($oEngine)) {
         // Передан только экшен
         $this->oEngine = E::getInstance();
         $sAction = $oEngine;
     } else {
         // LS-compatible
         $this->oEngine = $oEngine;
     }
     //Engine::getInstance();
     $this->sCurrentAction = $sAction;
     $this->aParams = R::GetParams();
     $this->RegisterEvent();
     // load action's config if exists
     Config::ResetLevel(Config::LEVEL_ACTION);
     if ($sFile = F::File_Exists('/config/actions/' . $sAction . '.php', Config::Get('path.root.seek'))) {
         // Дополняем текущий конфиг конфигом экшена
         Config::LoadFromFile($sFile, false, Config::LEVEL_ACTION);
     }
 }
开发者ID:ZeoNish,项目名称:altocms,代码行数:27,代码来源:Action.class.php

示例8: __call


//.........这里部分代码省略.........
  * @return mixed
  */
 public function __call($sName, $aArgs)
 {
     $sType = substr($sName, 0, strpos(F::StrUnderscore($sName), '_'));
     if (!strpos($sName, '_') && in_array($sType, array('get', 'set', 'reload'))) {
         $sKey = F::StrUnderscore(preg_replace('/' . $sType . '/', '', $sName, 1));
         if ($sType == 'get') {
             if (isset($this->_aData[$sKey])) {
                 return $this->_aData[$sKey];
             } else {
                 $sField = $this->_getField($sKey);
                 if ($sField != $sKey && isset($this->_aData[$sField])) {
                     return $this->_aData[$sField];
                 }
             }
             /**
              * Проверяем на связи
              */
             if (array_key_exists($sKey, $this->aRelations)) {
                 $sEntityRel = $this->aRelations[$sKey][1];
                 $sRelationType = $this->aRelations[$sKey][0];
                 $sRelationKey = $this->aRelations[$sKey][2];
                 $sRelationJoinTable = null;
                 $sRelationJoinTableKey = 0;
                 // foreign key в join-таблице для текущей сущности
                 if ($sRelationType == self::RELATION_TYPE_MANY_TO_MANY && array_key_exists(3, $this->aRelations[$sKey])) {
                     $sRelationJoinTable = $this->aRelations[$sKey][3];
                     $sRelationJoinTableKey = isset($this->aRelations[$sKey][4]) ? $this->aRelations[$sKey][4] : $this->_getPrimaryKey();
                 }
                 /**
                  * Если связь уже загруженна, то возвращаем сразу результат
                  */
                 if (array_key_exists($sKey, $this->aRelationsData)) {
                     return $this->aRelationsData[$sKey];
                 }
                 $sRelModuleName = E::GetModuleName($sEntityRel);
                 $sRelEntityName = E::GetEntityName($sEntityRel);
                 $sRelPluginPrefix = E::GetPluginPrefix($sEntityRel);
                 $sRelPrimaryKey = 'id';
                 if ($oRelEntity = E::GetEntity($sEntityRel)) {
                     $sRelPrimaryKey = $oRelEntity->_getPrimaryKey();
                 }
                 $iPrimaryKeyValue = $this->getProp($this->_getPrimaryKey());
                 $sCmd = '';
                 $mCmdArgs = array();
                 switch ($sRelationType) {
                     case self::RELATION_TYPE_BELONGS_TO:
                         $sCmd = "{$sRelPluginPrefix}{$sRelModuleName}_get{$sRelEntityName}By" . F::StrCamelize($sRelPrimaryKey);
                         $mCmdArgs = $this->getProp($sRelationKey);
                         break;
                     case self::RELATION_TYPE_HAS_ONE:
                         $sCmd = "{$sRelPluginPrefix}{$sRelModuleName}_get{$sRelEntityName}By" . F::StrCamelize($sRelationKey);
                         $mCmdArgs = $iPrimaryKeyValue;
                         break;
                     case self::RELATION_TYPE_HAS_MANY:
                         $sCmd = "{$sRelPluginPrefix}{$sRelModuleName}_get{$sRelEntityName}ItemsByFilter";
                         $mCmdArgs = array($sRelationKey => $iPrimaryKeyValue);
                         break;
                     case self::RELATION_TYPE_MANY_TO_MANY:
                         $sCmd = "{$sRelPluginPrefix}Module{$sRelModuleName}_get{$sRelEntityName}ItemsByJoinTable";
                         $mCmdArgs = array('#join_table' => Config::Get($sRelationJoinTable), '#relation_key' => $sRelationKey, '#by_key' => $sRelationJoinTableKey, '#by_value' => $iPrimaryKeyValue, '#index-from-primary' => true);
                         break;
                     default:
                         break;
                 }
                 // Нужно ли учитывать дополнительный фильтр
                 $bUseFilter = is_array($mCmdArgs) && array_key_exists(0, $aArgs) && is_array($aArgs[0]);
                 if ($bUseFilter) {
                     $mCmdArgs = array_merge($mCmdArgs, $aArgs[0]);
                 }
                 $aCallArgs = array($mCmdArgs);
                 $res = E::GetInstance()->_CallModule($sCmd, $aCallArgs);
                 // Сохраняем данные только в случае "чистой" выборки
                 if (!$bUseFilter) {
                     $this->aRelationsData[$sKey] = $res;
                 }
                 // Создаём объекты-обёртки для связей MANY_TO_MANY
                 if ($sRelationType == self::RELATION_TYPE_MANY_TO_MANY) {
                     $this->_aManyToManyRelations[$sKey] = new LS_ManyToManyRelation($res);
                 }
                 return $res;
             }
             return null;
         } elseif ($sType == 'set' && array_key_exists(0, $aArgs)) {
             if (array_key_exists($sKey, $this->aRelations)) {
                 $this->aRelationsData[$sKey] = $aArgs[0];
             } else {
                 $this->_aData[$this->_getField($sKey)] = $aArgs[0];
             }
         } elseif ($sType == 'reload') {
             if (array_key_exists($sKey, $this->aRelationsData)) {
                 unset($this->aRelationsData[$sKey]);
                 return $this->__call('get' . F::StrCamelize($sKey), $aArgs);
             }
         }
     } else {
         return E::getInstance()->_CallModule($sName, $aArgs);
     }
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:101,代码来源:EntityORM.class.php


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