Back to LibraryAdapter class

Method removeExtensionFiles

protected void
removeExtensionFiles
()
Removes this extension's files
Returns
  • void
Since
  • 4.0.0
-
  • \RuntimeException

Method removeExtensionFiles - Source code

/**
 * Removes this extension's files
 *
 * @return  void
 *
 * @since   4.0.0
 * @throws  \RuntimeException
 */
protected function removeExtensionFiles()
{
    $this->parent->removeFiles($this->getManifest()->files, -1);
    File::delete(JPATH_MANIFESTS . '/libraries/' . $this->extension->element . '.xml');
    // @todo: Change this so it walked up the path backwards so we clobber multiple empties
    // If the folder is empty, let's delete it
    if (Folder::exists($this->parent->getPath('extension_root'))) {
        if (is_dir($this->parent->getPath('extension_root'))) {
            $files = Folder::files($this->parent->getPath('extension_root'));
            if (!\count($files)) {
                Folder::delete($this->parent->getPath('extension_root'));
            }
        }
    }
    $this->parent->removeFiles($this->getManifest()->media);
    $this->parent->removeFiles($this->getManifest()->languages);
    $elementParts = explode('/', $this->extension->element);
    // Delete empty vendor folders
    if (2 === \count($elementParts)) {
        $folders = Folder::folders(JPATH_PLATFORM . '/' . $elementParts[0]);
        if (empty($folders)) {
            Folder::delete(JPATH_MANIFESTS . '/libraries/' . $elementParts[0]);
            Folder::delete(JPATH_PLATFORM . '/' . $elementParts[0]);
        }
    }
}