示例#1
0
 /**
  * Parses the schema of the given Subschema entry
  *
  * @access public
  * @param Net_LDAP_Entry $entry Subschema entry
  */
 function parse(&$entry)
 {
     foreach ($this->types as $type => $attr) {
         // initialize map type to entry
         $type_var = '_' . $attr;
         $this->{$type_var} = array();
         // get values for this type
         $values = $entry->get_value($attr);
         if (is_array($values)) {
             foreach ($values as $value) {
                 unset($schema_entry);
                 // this was a real mess without it
                 // get the schema entry
                 $schema_entry = $this->_parse_entry($value);
                 // set the type
                 $schema_entry['type'] = $type;
                 // save a ref in $_oids
                 $this->_oids[$schema_entry['oid']] =& $schema_entry;
                 // save refs for all names in type map
                 $names = $schema_entry['aliases'];
                 array_push($names, $schema_entry['name']);
                 foreach ($names as $name) {
                     $this->{$type_var}[strtolower($name)] =& $schema_entry;
                 }
             }
         }
     }
 }