original_string: public function get($key, $a = null)
      {
          if ($a !== null) {
              $this->triggerError(
                  "Using deprecated API: use \$config->get('$key.$a') instead",
                  E_USER_WARNING
              );
              $key = "$key.$a";
          }
          if (!$this->finalized) {
              $this->autoFinalize();
          }
          if (!isset($this->def->info[$key])) {
              // can't add % due to SimpleTest bug
              $this->triggerError(
                  'Cannot retrieve value of undefined directive ' . htmlspecialchars($key),
                  E_USER_WARNING
              );
              return;
          }
          if (isset($this->def->info[$key]->isAlias)) {
              $d = $this->def->info[$key];
              $this->triggerError(
                  'Cannot get value from aliased directive, use real name ' . $d->key,
                  E_USER_ERROR
              );
              return;
          }
          if ($this->lock) {
              list($ns) = explode('.', $key);
              if ($ns !== $this->lock) {
                  $this->triggerError(
                      'Cannot get value of namespace ' . $ns . ' when lock for ' .
                      $this->lock .
                      ' is active, this probably indicates a Definition setup method ' .
                      'is accessing directives that are not within its namespace',
                      E_USER_ERROR
                  );
                  return;
              }
          }
          return $this->plist->get($key);
      }
code: public function get($key, $a = null)
      {
          if ($a !== null) {
              $this->triggerError(
                  "Using deprecated API: use \$config->get('$key.$a') instead",
                  E_USER_WARNING
              );
              $key = "$key.$a";
          }
          if (!$this->finalized) {
              $this->autoFinalize();
          }
          if (!isset($this->def->info[$key])) {
              // can't add % due to SimpleTest bug
              $this->triggerError(
                  'Cannot retrieve value of undefined directive ' . htmlspecialchars($key),
                  E_USER_WARNING
              );
              return;
          }
          if (isset($this->def->info[$key]->isAlias)) {
              $d = $this->def->info[$key];
              $this->triggerError(
                  'Cannot get value from aliased directive, use real name ' . $d->key,
                  E_USER_ERROR
              );
              return;
          }
          if ($this->lock) {
              list($ns) = explode('.', $key);
              if ($ns !== $this->lock) {
                  $this->triggerError(
                      'Cannot get value of namespace ' . $ns . ' when lock for ' .
                      $this->lock .
                      ' is active, this probably indicates a Definition setup method ' .
                      'is accessing directives that are not within its namespace',
                      E_USER_ERROR
                  );
                  return;
              }
          }
          return $this->plist->get($key);
      }
code_tokens: public function get ( $ key , $ a = null ) { if ( $ a !== null ) { $ this -> triggerError ( "Using deprecated API: use \$config->get('$key.$a') instead" , E_USER_WARNING ) ; $ key = "$key.$a" ; } if ( ! $ this -> finalized ) { $ this -> autoFinalize ( ) ; } if ( ! isset ( $ this -> def -> info [ $ key ] ) ) { // can't add % due to SimpleTest bug $ this -> triggerError ( 'Cannot retrieve value of undefined directive ' . htmlspecialchars ( $ key ) , E_USER_WARNING ) ; return ; } if ( isset ( $ this -> def -> info [ $ key ] -> isAlias ) ) { $ d = $ this -> def -> info [ $ key ] ; $ this -> triggerError ( 'Cannot get value from aliased directive, use real name ' . $ d -> key , E_USER_ERROR ) ; return ; } if ( $ this -> lock ) { list ( $ ns ) = explode ( '.' , $ key ) ; if ( $ ns !== $ this -> lock ) { $ this -> triggerError ( 'Cannot get value of namespace ' . $ ns . ' when lock for ' . $ this -> lock . ' is active, this probably indicates a Definition setup method ' . 'is accessing directives that are not within its namespace' , E_USER_ERROR ) ; return ; } } return $ this -> plist -> get ( $ key ) ; }
docstring: Retrieves a value from the configuration.
  
  @param string $key String key
  @param mixed $a
  
  @return mixed
docstring_tokens: Retrieves a value from the configuration .