class vfsStreamStructureVisitor
Visitor which traverses a content structure recursively to create an array structure from it.
@since 0.10.0
Hierarchy
- class \org\bovigo\vfs\visitor\vfsStreamAbstractVisitor implements \org\bovigo\vfs\visitor\vfsStreamVisitor
- class \org\bovigo\vfs\visitor\vfsStreamStructureVisitor extends \org\bovigo\vfs\visitor\vfsStreamAbstractVisitor
Expanded class hierarchy of vfsStreamStructureVisitor
See also
https://github.com/mikey179/vfsStream/issues/10
File
-
vendor/
mikey179/ vfsstream/ src/ main/ php/ org/ bovigo/ vfs/ visitor/ vfsStreamStructureVisitor.php, line 21
Namespace
org\bovigo\vfs\visitorView source
class vfsStreamStructureVisitor extends vfsStreamAbstractVisitor {
/**
* collected structure
*
* @type array
*/
protected $structure = array();
/**
* poiting to currently iterated directory
*
* @type array
*/
protected $current;
/**
* constructor
*
* @api
*/
public function __construct() {
$this->reset();
}
/**
* visit a file and process it
*
* @param vfsStreamFile $file
* @return vfsStreamStructureVisitor
*/
public function visitFile(vfsStreamFile $file) {
$this->current[$file->getName()] = $file->getContent();
return $this;
}
/**
* visit a block device and process it
*
* @param vfsStreamBlock $block
* @return vfsStreamStructureVisitor
*/
public function visitBlockDevice(vfsStreamBlock $block) {
$this->current['[' . $block->getName() . ']'] = $block->getContent();
return $this;
}
/**
* visit a directory and process it
*
* @param vfsStreamDirectory $dir
* @return vfsStreamStructureVisitor
*/
public function visitDirectory(vfsStreamDirectory $dir) {
$this->current[$dir->getName()] = array();
$tmp =& $this->current;
$this->current =& $tmp[$dir->getName()];
foreach ($dir as $child) {
$this->visit($child);
}
$this->current =& $tmp;
return $this;
}
/**
* returns structure of visited contents
*
* @return array
* @api
*/
public function getStructure() {
return $this->structure;
}
/**
* resets structure so visitor could be reused
*
* @return vfsStreamStructureVisitor
*/
public function reset() {
$this->structure = array();
$this->current =& $this->structure;
return $this;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
vfsStreamAbstractVisitor::visit | public | function | visit a content and process it | Overrides vfsStreamVisitor::visit |
vfsStreamStructureVisitor::$current | protected | property | poiting to currently iterated directory | |
vfsStreamStructureVisitor::$structure | protected | property | collected structure | |
vfsStreamStructureVisitor::getStructure | public | function | returns structure of visited contents | |
vfsStreamStructureVisitor::reset | public | function | resets structure so visitor could be reused | |
vfsStreamStructureVisitor::visitBlockDevice | public | function | visit a block device and process it | Overrides vfsStreamAbstractVisitor::visitBlockDevice |
vfsStreamStructureVisitor::visitDirectory | public | function | visit a directory and process it | Overrides vfsStreamVisitor::visitDirectory |
vfsStreamStructureVisitor::visitFile | public | function | visit a file and process it | Overrides vfsStreamVisitor::visitFile |
vfsStreamStructureVisitor::__construct | public | function | constructor |