PHP Class Puli\Repository\FilesystemRepository

Resources can be read using their absolute file system paths: php use Puli\Repository\FilesystemRepository; $repo = new FilesystemRepository(); $resource = $repo->get('/home/puli/.gitconfig'); The returned resources implement {@link FilesystemResource}. Optionally, a root directory can be passed to the constructor. Then all paths will be read relative to that directory: php $repo = new FilesystemRepository('/home/puli'); $resource = $repo->get('/.gitconfig'); While "." and ".." segments are supported, files outside the root directory cannot be read. Any leading ".." segments will simply be stripped off.
Since: 1.0
Author: Bernhard Schussek ([email protected])
Inheritance: implements Puli\Repository\Api\EditableRepository
Mostra file Open project: puli/repository Class Usage Examples

Public Methods

Method Description
__construct ( string $baseDir = '/', boolean $symlink = true, boolean $relative = true, Puli\Repository\Api\ChangeStream\ChangeStream $changeStream = null ) Creates a new repository.
add ( $path, $resource )
clear ( )
contains ( $query, $language = 'glob' )
find ( $query, $language = 'glob' )
get ( $path )
hasChildren ( $path )
isSymlinkSupported ( ) : boolean Returns whether symlinks are supported in the local environment.
listChildren ( $path )
remove ( $query, $language = 'glob' )

Private Methods

Method Description
addResource ( $path, Puli\Repository\Api\Resource\PuliResource $resource, $checkParentsForSymlinks = true )
createResource ( $filesystemPath, $path )
ensureDirectoryExists ( $path )
getDirectoryIterator ( $filesystemPath )
getFilesystemPath ( $path )
getGlobIterator ( $query, $language )
getPath ( $filesystemPath )
iteratorToCollection ( Iterator $iterator )
readLink ( $filesystemPath )
removeResource ( $filesystemPath, &$removed )
replaceLinkByCopy ( $path, array $dirsToKeep = [] )
replaceParentSymlinksByCopies ( $path )
symlinkMirror ( $origin, $target, array $dirsToKeep = [] )
trySymlink ( $origin, $target )

Method Details

__construct() public method

Creates a new repository.
public __construct ( string $baseDir = '/', boolean $symlink = true, boolean $relative = true, Puli\Repository\Api\ChangeStream\ChangeStream $changeStream = null )
$baseDir string The base directory of the repository on the file system.
$symlink boolean Whether to use symbolic links for added files. If symbolic links are not supported on the current system, the repository will create hard copies instead.
$relative boolean Whether to create relative symbolic links. If relative links are not supported on the current system, the repository will create absolute links instead.
$changeStream Puli\Repository\Api\ChangeStream\ChangeStream If provided, the repository will log resources changes in this change stream.

add() public method

public add ( $path, $resource )

clear() public method

public clear ( )

contains() public method

public contains ( $query, $language = 'glob' )

find() public method

public find ( $query, $language = 'glob' )

get() public method

public get ( $path )

hasChildren() public method

public hasChildren ( $path )

isSymlinkSupported() public static method

Returns whether symlinks are supported in the local environment.
public static isSymlinkSupported ( ) : boolean
return boolean Returns `true` if symlinks are supported.

listChildren() public method

public listChildren ( $path )

remove() public method

public remove ( $query, $language = 'glob' )