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


PHP Resource::getType方法代码示例

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


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

示例1: initResource

 /**
  * @param null $key
  * @throws \Exception
  */
 public function initResource($key = null)
 {
     $myClass = get_class($this);
     $resource = null;
     if (!$key) {
         // check for a resource in the cache
         if (array_key_exists($myClass, self::$resourceClassCache)) {
             $resource = self::$resourceClassCache[$myClass];
         } else {
             $classes = $this->getParentClasses($myClass);
             foreach ($classes as $class) {
                 $delimiter = "_";
                 // old prefixed class style
                 if (strpos($class, "\\")) {
                     $delimiter = "\\";
                     // that's the new with namespaces
                 }
                 $classParts = explode($delimiter, $class);
                 $length = count($classParts);
                 $className = null;
                 for ($i = 0; $i < $length; $i++) {
                     // check for a general DBMS resource adapter
                     $tmpClassName = implode($delimiter, $classParts) . $delimiter . "Resource";
                     if ($className = $this->determineResourceClass($tmpClassName)) {
                         break;
                     }
                     // this is just for compatibility anymore, this was before the standard way
                     // but as there will not be a specialized implementation anymore eg. Oracle, PostgreSQL, ...
                     // we can move that below the general resource adapter as a fallback
                     $tmpClassName = implode($delimiter, $classParts) . $delimiter . "Resource" . $delimiter . ucfirst(Resource::getType());
                     if ($className = $this->determineResourceClass($tmpClassName)) {
                         break;
                     }
                     array_pop($classParts);
                 }
                 if ($className && $className != "Pimcore\\Resource") {
                     //\Logger::debug("Found resource implementation " . $className . " for " . $myClass);
                     $resource = $className;
                     self::$resourceClassCache[$myClass] = $resource;
                     break;
                 }
             }
         }
     } else {
         // check in cache
         $cacheKey = $myClass . "-" . $key;
         if (array_key_exists($cacheKey, self::$resourceClassCache)) {
             $resource = self::$resourceClassCache[$cacheKey];
         } else {
             $delimiter = "_";
             // old prefixed class style
             if (strpos($key, "\\") !== false) {
                 $delimiter = "\\";
                 // that's the new with namespaces
             }
             // check for a specialized resource adapter for the current DBMS
             $resourceClass = $key . $delimiter . "Resource" . $delimiter . ucfirst(Resource::getType());
             if (!($resource = $this->determineResourceClass($resourceClass))) {
                 $resource = $key . $delimiter . "Resource";
             }
             self::$resourceClassCache[$cacheKey] = $resource;
         }
     }
     if (!$resource) {
         \Logger::critical("No resource implementation found for: " . $myClass);
         throw new \Exception("No resource implementation found for: " . $myClass);
     }
     $resource = "\\" . ltrim($resource, "\\");
     $this->resource = new $resource();
     $this->resource->setModel($this);
     $db = Resource::get();
     $this->resource->configure($db);
     if (method_exists($this->resource, "init")) {
         $this->resource->init();
     }
 }
开发者ID:yonetici,项目名称:pimcore-coreshop-demo,代码行数:80,代码来源:AbstractModel.php


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