Back to InstallerAdapter class

Method checkExtensionInFilesystem

protected void
checkExtensionInFilesystem
()
Method to check if the extension is present in the filesystem, flags the route as update if so
Returns
  • void
Since
  • 3.4
-
  • \RuntimeException

Method checkExtensionInFilesystem - Source code

/**
 * Method to check if the extension is present in the filesystem, flags the route as update if so
 *
 * @return  void
 *
 * @since   3.4
 * @throws  \RuntimeException
 */
protected function checkExtensionInFilesystem()
{
    if (file_exists($this->parent->getPath('extension_root')) && (!$this->parent->isOverwrite() || $this->parent->isUpgrade())) {
        // Look for an update function or update tag
        $updateElement = $this->getManifest()->update;
        // Upgrade manually set or update function available or update tag detected
        if ($updateElement || $this->parent->isUpgrade() || $this->parent->manifestClass && method_exists($this->parent->manifestClass, 'update')) {
            // Force this one
            $this->parent->setOverwrite(true);
            $this->parent->setUpgrade(true);
            if ($this->currentExtensionId) {
                // If there is a matching extension mark this as an update
                $this->setRoute('update');
            }
        } elseif (!$this->parent->isOverwrite()) {
            // We didn't have overwrite set, find an update function or find an update tag so lets call it safe
            throw new \RuntimeException(Text::sprintf('JLIB_INSTALLER_ABORT_DIRECTORY', Text::_('JLIB_INSTALLER_' . $this->route), $this->type, $this->parent->getPath('extension_root')));
        }
    }
}