/** * Initialize Accessor. * * @param string $id element identifier (if null - "0" will be used) * @param array $relations relations array array('near' => accessor, 'under' => accessor) * @param Connection $con Sahi connection */ public function __construct($id, array $relations, Connection $con) { parent::__construct($con); foreach ($relations as $relation => $accessor) { $this->{$relation}($accessor); } $this->id = $id; }
protected function assertRelations(Accessor\AbstractRelationalAccessor $accessor, $selectorStart) { $con = $accessor->getConnection(); $accessor1 = new Accessor\ByClassNameAccessor('some_class1', 'p', array(), $con); $accessor2 = new Accessor\ByClassNameAccessor('some_class2', 'span', array(), $con); $accessor3 = new Accessor\ByClassNameAccessor('some_class3', 'div', array(), $con); $accessor->near($accessor1)->in($accessor3)->under($accessor2); $this->assertEquals( $selectorStart . '_sahi._near(_sahi._byClassName("some_class1", "p")), ' . '_sahi._in(_sahi._byClassName("some_class3", "div")), ' . '_sahi._under(_sahi._byClassName("some_class2", "span")))', $accessor->getAccessor() ); }
/** * Initialize Accessor. * * @param string $class tag class name * @param string $tag tag name * @param array $relations relations * @param Connection $con Sahi connection */ public function __construct($class, $tag, array $relations, Connection $con) { parent::__construct($con); foreach ($relations as $relation => $accessor) { $this->{$relation}($accessor); } $this->class = $class; $this->tag = $tag; }
/** * Initialize Accessor. * * @param string $xpath XPath expression * @param array $relations Relations * @param Connection $con Sahi connection */ public function __construct($xpath, array $relations, Connection $con) { parent::__construct($con); foreach ($relations as $relation => $accessor) { $this->$relation($accessor); } $this->xpath = $xpath; }