original_string: public function getProperty($id, $name, $directAccess = false)
      {
          if ($directAccess) {
              if (!isset($this->items[$id][$name])) {
                  return null;
              }
  
              return $this->items[$id][$name];
          }
  
          $id = $this->validateAndResolveId($id);
          if (!isset($this->items[$id][$name]) && !array_key_exists($name, $this->items[$id])) {
              throw new Exception\LogicException(
                  sprintf('The "%s" item does not have "%s" property.', $id, $name)
              );
          }
  
          return $this->items[$id][$name];
      }
code: public function getProperty($id, $name, $directAccess = false)
      {
          if ($directAccess) {
              if (!isset($this->items[$id][$name])) {
                  return null;
              }
  
              return $this->items[$id][$name];
          }
  
          $id = $this->validateAndResolveId($id);
          if (!isset($this->items[$id][$name]) && !array_key_exists($name, $this->items[$id])) {
              throw new Exception\LogicException(
                  sprintf('The "%s" item does not have "%s" property.', $id, $name)
              );
          }
  
          return $this->items[$id][$name];
      }
code_tokens: public function getProperty ( $ id , $ name , $ directAccess = false ) { if ( $ directAccess ) { if ( ! isset ( $ this -> items [ $ id ] [ $ name ] ) ) { return null ; } return $ this -> items [ $ id ] [ $ name ] ; } $ id = $ this -> validateAndResolveId ( $ id ) ; if ( ! isset ( $ this -> items [ $ id ] [ $ name ] ) && ! array_key_exists ( $ name , $ this -> items [ $ id ] ) ) { throw new Exception \ LogicException ( sprintf ( 'The "%s" item does not have "%s" property.' , $ id , $ name ) ) ; } return $ this -> items [ $ id ] [ $ name ] ; }
docstring: Gets a value of an additional property for the layout item
  
  @param string $id           The id or alias of the layout item
  @param string $name         The property name
  @param bool   $directAccess Indicated whether the item id and property name validation should be skipped.
  This flag can be used to increase performance of get operation,
  but use it carefully and only when you absolutely sure that:
  * the item with the specified id exists
  * the value passed as the item id is not an alias
  * the property with the specified name exists
  
  @return mixed
  
  @throws Exception\InvalidArgumentException if the id is empty
  @throws Exception\ItemNotFoundException if the layout item does not exist
  @throws Exception\LogicException if the layout item does not have the requested property
docstring_tokens: Gets a value of an additional property for the layout item