get() публичный статический Метод

Gets the property value.
public static get ( $object, $path ) : mixed
Результат mixed property value.
Пример #1
0
 public function replaceDynamicParameter($sql, $parameter)
 {
     foreach ($this->_mappings as $property) {
         $value = TPropertyAccess::get($parameter, $property);
         $sql = preg_replace('/' . TSimpleDynamicParser::DYNAMIC_TOKEN . '/', str_replace('$', '\\$', $value), $sql, 1);
     }
     return $sql;
 }
Пример #2
0
 /**
  * @param mixed object to obtain the property from.
  * @param TParameterProperty parameter property.
  * @return mixed property value.
  * @throws TSqlMapException if property access is invalid.
  */
 protected function getObjectValue($object, $property)
 {
     try {
         return TPropertyAccess::get($object, $property->getProperty());
     } catch (TInvalidPropertyException $e) {
         throw new TSqlMapException('sqlmap_unable_to_get_property_for_parameter', $this->getID(), $property->getProperty(), is_object($object) ? get_class($object) : gettype($object));
     }
 }
Пример #3
0
 /**
  * Apply the result to an object.
  * @param array a result set row retrieved from the database
  * @param object result object, array or list
  * @return object result filled with data.
  */
 protected function fillResultObjectProperty($row, $resultObject)
 {
     $index = 0;
     $registry = $this->getManager()->getTypeHandlers();
     foreach ($row as $k => $v) {
         $property = new TResultProperty();
         if (is_string($k) && strlen($k) > 0) {
             $property->setColumn($k);
         }
         $property->setColumnIndex(++$index);
         $type = gettype(TPropertyAccess::get($resultObject, $k));
         $property->setType($type);
         $value = $property->getPropertyValue($registry, $row);
         TPropertyAccess::set($resultObject, $k, $value);
     }
     return $resultObject;
 }
Пример #4
0
 /**
  * Returns true if the result property {@link Type getType()} is of \ArrayAccess
  * or that the actual result object is an array or implements \ArrayAccess
  * @param object result object
  * @return boolean true if the result object is an instance of \ArrayAccess or is an array.
  */
 public function instanceOfArrayType($target)
 {
     if ($this->getType() === null) {
         $prop = TPropertyAccess::get($target, $this->getProperty());
         if (is_object($prop)) {
             return $prop instanceof \ArrayAccess;
         }
         return is_array($prop);
     }
     return $this->getPropertyValueType() == self::ARRAY_TYPE;
 }
Пример #5
0
 public function testArrayAccess()
 {
     $thingamajig = array('a' => 'foo', 'b' => 'bar', 'c' => new _PropertyAccessTestHelperPublicVar(), 'd' => new _PropertyAccessTestHelperStaticProperties(), 'e' => new _PropertyAccessTestHelperDynamicProperties());
     $testobj = new _PropertyAccessTestHelperPublicVar();
     TPropertyAccess::set($testobj, 'a', $thingamajig);
     $tmp = TPropertyAccess::get($testobj, 'a');
     self::assertTrue(is_array($tmp));
     self::assertEquals($thingamajig, $tmp);
     self::assertEquals('foo', TPropertyAccess::get($testobj, 'a.a'));
     self::assertEquals('bar', TPropertyAccess::get($testobj, 'a.b'));
     self::assertTrue(TPropertyAccess::get($testobj, 'a.c') instanceof _PropertyAccessTestHelperPublicVar);
     self::assertTrue(TPropertyAccess::get($testobj, 'a.d') instanceof _PropertyAccessTestHelperStaticProperties);
     self::assertTrue(TPropertyAccess::get($testobj, 'a.e') instanceof _PropertyAccessTestHelperDynamicProperties);
     TPropertyAccess::set($testobj, 'a.c.a', 10);
     TPropertyAccess::set($testobj, 'a.d.a', 10);
     TPropertyAccess::set($testobj, 'a.e.a', 10);
     self::assertEquals(10, TPropertyAccess::get($testobj, 'a.c.a'));
     self::assertEquals(10, TPropertyAccess::get($testobj, 'a.d.a'));
     self::assertEquals(10, TPropertyAccess::get($testobj, 'a.e.a'));
     TPropertyAccess::set($testobj, 'a.c.c', 30);
     TPropertyAccess::set($testobj, 'a.d.c', 30);
     TPropertyAccess::set($testobj, 'a.e.c', 30);
     self::assertEquals(30, TPropertyAccess::get($testobj, 'a.c.c'));
     self::assertEquals(30, TPropertyAccess::get($testobj, 'a.d.c'));
     self::assertNull(TPropertyAccess::get($testobj, 'a.e.c'));
     self::assertNull(TPropertyAccess::get($testobj, 'a.e.C'));
     self::setExpectedException('Prado\\Data\\SqlMap\\DataMapper\\TInvalidPropertyException');
     TPropertyAccess::get($testobj, 'a.c.C');
     self::setExpectedException('Prado\\Data\\SqlMap\\DataMapper\\TInvalidPropertyException');
     TPropertyAccess::get($testobj, 'a.d.C');
 }
 /**
  * Set the object properties for all the child nodes visited.
  * @param string parent node id
  * @param array list of child nodes visited.
  */
 protected function onChildNodesVisited($parent, $nodes)
 {
     if (empty($parent) || empty($this->_entries[$parent])) {
         return;
     }
     $parentObject = $this->_entries[$parent]['object'];
     $property = $this->_entries[$nodes[0]]['property'];
     $list = TPropertyAccess::get($parentObject, $property);
     foreach ($nodes as $node) {
         if ($list instanceof TList) {
             $parentObject->{$property}[] = $this->_entries[$node]['object'];
         } else {
             if (is_array($list)) {
                 $list[] = $this->_entries[$node]['object'];
             } else {
                 throw new TSqlMapExecutionException('sqlmap_property_must_be_list');
             }
         }
     }
     if (is_array($list)) {
         TPropertyAccess::set($parentObject, $property, $list);
     }
     if ($this->_entries[$parent]['property'] === null) {
         $this->_list[] = $parentObject;
     }
 }