Todaymade\Daux\Tree\Builder::getOrCreateDir PHP Method

getOrCreateDir() public static method

public static getOrCreateDir ( Directory $parent, string $title ) : Directory
$parent Directory
$title string
return Directory
    public static function getOrCreateDir(Directory $parent, $title)
    {
        $slug = DauxHelper::slug($title);
        if (array_key_exists($slug, $parent->getEntries())) {
            return $parent->getEntries()[$slug];
        }
        $dir = new Directory($parent, $slug);
        $dir->setTitle($title);
        return $dir;
    }

Usage Example

示例#1
0
 public function testGetOrCreateDirExisting()
 {
     $config = new Config();
     $config->setDocumentationDirectory('');
     $root = new Root($config);
     $directory = new Directory($root, 'directory');
     $directory->setTitle('directory');
     $dir = Builder::getOrCreateDir($root, 'directory');
     $this->assertSame($root, $dir->getParent());
     $this->assertEquals('directory', $dir->getTitle());
     $this->assertEquals('directory', $dir->getUri());
     $this->assertSame($directory, $dir);
 }