Back to FileAdapter class

Method removeExtensionFiles

protected void
removeExtensionFiles
()
Removes this extension's files
Returns
  • void
Since
  • 4.0.0
-
  • \RuntimeException
Class: FileAdapter
Project: Joomla

Method removeExtensionFiles - Source code

/**
 * Removes this extension's files
 *
 * @return  void
 *
 * @since   4.0.0
 * @throws  \RuntimeException
 */
protected function removeExtensionFiles()
{
    // Loop through all elements and get list of files and folders
    foreach ($this->getManifest()->fileset->files as $eFiles) {
        $target = (string) $eFiles->attributes()->target;
        // Create folder path
        if (empty($target)) {
            $targetFolder = JPATH_ROOT;
        } else {
            $targetFolder = JPATH_ROOT . '/' . $target;
        }
        $folderList = [];
        // Check if all children exists
        if (\count($eFiles->children()) > 0) {
            // Loop through all filenames elements
            foreach ($eFiles->children() as $eFileName) {
                if ($eFileName->getName() === 'folder') {
                    $folderList[] = $targetFolder . '/' . $eFileName;
                } else {
                    $fileName = $targetFolder . '/' . $eFileName;
                    File::delete($fileName);
                }
            }
        }
        // Delete any folders that don't have any content in them.
        foreach ($folderList as $folder) {
            $files = Folder::files($folder);
            if ($files !== false && !\count($files)) {
                Folder::delete($folder);
            }
        }
    }
    // Lastly, remove the extension_root
    $folder = $this->parent->getPath('extension_root');
    if (Folder::exists($folder)) {
        Folder::delete($folder);
    }
    $this->parent->removeFiles($this->getManifest()->languages);
}