Contents

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.