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


PHP AttributeType::getDescription方法代码示例

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


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

示例1: SchemaAttributes

 /**
  * Gets an associative array of AttributeType objects for the specified
  * server. Each array entry's key is the name of the attributeType
  * in lower-case and the value is an AttributeType object.
  *
  * @param string $dn (optional) It is easier to fetch schema if a DN is provided
  *             which defines the subschemaSubEntry attribute (all entries should).
  *
  * @return array An array of AttributeType objects.
  */
 public function SchemaAttributes($method = null, $dn = '')
 {
     if (DEBUG_ENABLED && (($fargs = func_get_args()) || ($fargs = 'NOARGS'))) {
         debug_log('Entered (%%)', 25, 0, __FILE__, __LINE__, __METHOD__, $fargs);
     }
     # Set default return
     $return = null;
     if ($return = get_cached_item($this->index, 'schema', 'attributes')) {
         if (DEBUG_ENABLED) {
             debug_log('(): Returning CACHED [%s] (%s)', 25, 0, __FILE__, __LINE__, __METHOD__, $this->index, 'attributes');
         }
         return $return;
     }
     $raw = $this->getRawSchema($method, 'attributeTypes', $dn);
     if ($raw) {
         # build the array of attribueTypes
         $syntaxes = $this->SchemaSyntaxes($method, $dn);
         $attrs = array();
         /**
          * bug 856832: create two arrays - one indexed by name (the standard
          * $attrs array above) and one indexed by oid (the new $attrs_oid array
          * below). This will help for directory servers, like IBM's, that use OIDs
          * in their attribute definitions of SUP, etc
          */
         $attrs_oid = array();
         foreach ($raw as $line) {
             if (is_null($line) || !strlen($line)) {
                 continue;
             }
             $attr = new AttributeType($line);
             if (isset($syntaxes[$attr->getSyntaxOID()])) {
                 $syntax = $syntaxes[$attr->getSyntaxOID()];
                 $attr->setType($syntax->getDescription());
             }
             $attrs[$attr->getName()] = $attr;
             /**
              * bug 856832: create an entry in the $attrs_oid array too. This
              * will be a ref to the $attrs entry for maintenance and performance
              * reasons
              */
             $attrs_oid[$attr->getOID()] =& $attrs[$attr->getName()];
         }
         # go back and add data from aliased attributeTypes
         foreach ($attrs as $name => $attr) {
             $aliases = $attr->getAliases();
             if (is_array($aliases) && count($aliases) > 0) {
                 /* foreach of the attribute's aliases, create a new entry in the attrs array
                  * with its name set to the alias name, and all other data copied.*/
                 foreach ($aliases as $alias_attr_name) {
                     $new_attr = clone $attr;
                     $new_attr->setName($alias_attr_name);
                     $new_attr->addAlias($attr->getName(false));
                     $new_attr->removeAlias($alias_attr_name);
                     $new_attr_key = strtolower($alias_attr_name);
                     $attrs[$new_attr_key] = $new_attr;
                 }
             }
         }
         # go back and add any inherited descriptions from parent attributes (ie, cn inherits name)
         foreach ($attrs as $key => $attr) {
             $sup_attr_name = $attr->getSupAttribute();
             $sup_attr = null;
             if (trim($sup_attr_name)) {
                 /* This loop really should traverse infinite levels of inheritance (SUP) for attributeTypes,
                  * but just in case we get carried away, stop at 100. This shouldn't happen, but for
                  * some weird reason, we have had someone report that it has happened. Oh well.*/
                 $i = 0;
                 while ($i++ < 100) {
                     if (isset($attrs_oid[$sup_attr_name])) {
                         $attr->setSupAttribute($attrs_oid[$sup_attr_name]->getName());
                         $sup_attr_name = $attr->getSupAttribute();
                     }
                     if (!isset($attrs[strtolower($sup_attr_name)])) {
                         error(sprintf('Schema error: attributeType "%s" inherits from "%s", but attributeType "%s" does not exist.', $attr->getName(), $sup_attr_name, $sup_attr_name), 'error', 'index.php');
                         return;
                     }
                     $sup_attr = $attrs[strtolower($sup_attr_name)];
                     $sup_attr_name = $sup_attr->getSupAttribute();
                     # Does this superior attributeType not have a superior attributeType?
                     if (is_null($sup_attr_name) || strlen(trim($sup_attr_name)) == 0) {
                         /* Since this attribute's superior attribute does not have another superior
                          * attribute, clone its properties for this attribute. Then, replace
                          * those cloned values with those that can be explicitly set by the child
                          * attribute attr). Save those few properties which the child can set here:*/
                         $tmp_name = $attr->getName(false);
                         $tmp_oid = $attr->getOID();
                         $tmp_sup = $attr->getSupAttribute();
                         $tmp_aliases = $attr->getAliases();
                         $tmp_single_val = $attr->getIsSingleValue();
                         $tmp_desc = $attr->getDescription();
//.........这里部分代码省略.........
开发者ID:kangaroot,项目名称:phpldapadmin,代码行数:101,代码来源:ds_ldap.php


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