Tailor\Classes\Blueprint\HasOperations
Overview
HasOperations implements editor-side CRUD operations against a Tailor blueprints directory. Pulled out of Editor\Traits\FileSystemFunctions so the Blueprint class is the single seam for any future cross-cutting concerns (shared storage publishing, audit logging, events, etc.).
Consuming class must provide the blueprints base path via {@link getBasePath()}.
Public Methods
public createDirectory()
public createDirectory($newName, $parent): void
createDirectory creates a directory under a parent path within the blueprints root.
public deletePaths()
public deletePaths($fileList): void
deletePaths removes the given list of files or directories under the blueprints root. Directories must be empty.
public move()
public move($selectedList, $destinationDir): void
move relocates a list of files or directories into a destination directory under the blueprints root.
public rename()
public rename($newName, $originalPath): void
rename renames a single file or directory within the blueprints root.
public upload()
public upload($uploadedFile, $destinationDir): void
upload accepts a single uploaded file into a destination directory under the blueprints root.
Protected Methods
protected assertNoDatabaseCollision()
protected assertNoDatabaseCollision(
$source,
$basePath,
$newPath,
$name = null
): void
assertNoDatabaseCollision throws when the target path is already occupied by an active row or an unsuppressed filesystem file.
protected deletePathsWithDatabase()
protected deletePathsWithDatabase($fileList): void
deletePathsWithDatabase deletes against the database layer
protected getOperationExtensions()
protected getOperationExtensions(): array
getOperationExtensions returns allowed extensions for upload/rename operations. Blueprints are always YAML.
protected moveWithDatabase()
protected moveWithDatabase($selectedList, $destinationDir): void
moveWithDatabase relocates files and directories against the database layer
protected normalizeOperationPath()
protected normalizeOperationPath($path): string
normalizeOperationPath produces the canonical relative path used as the SourceFile path key, matching the normalization in Blueprint::getInternal().
protected renameWithDatabase()
protected renameWithDatabase($newName, $originalPath): void
renameWithDatabase performs a rename against the database layer
protected rewriteRowPathPrefixes()
protected rewriteRowPathPrefixes($oldPrefix, $newPrefix): void
rewriteRowPathPrefixes moves every row, including tombstones, from the old directory prefix to the new one.
protected validateOperationFileExtension()
protected validateOperationFileExtension($name, $allowedExtensions): bool
validateOperationFileExtension checks a filename against the allowed extension list.
protected validateOperationName()
protected validateOperationName($name): bool
validateOperationName ensures a single file or directory name contains only safe characters.
protected validateOperationPath()
protected validateOperationPath($path): bool
validateOperationPath ensures a relative path does not escape the blueprints root or contain unsafe characters.