/**
* 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]);
}
}
}