관리-도구
편집 파일: InstallerFactory.php
<?php /** * @copyright Copyright 2003-2023 Zen Cart Development Team * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0 * @version $Id: Scott C Wilson 2022 Oct 16 Modified in v1.5.8a $ */ namespace Zencart\PluginSupport; use Zencart\Exceptions\PluginInstallerException; class InstallerFactory { /** * $dbConn is a database object * @var object */ protected $dbConn; /** * $errorContainer is a PluginErrorContainer object * @var object */ protected $errorContainer; /** * $errorContainer is a pluginInstaller object * @var object */ protected $pluginInstaller; public function __construct($dbConn, $pluginInstaller, $errorContainer) { $this->dbConn = $dbConn; $this->pluginInstaller = $pluginInstaller; $this->errorContainer = $errorContainer; } public function make($plugin, $version) { $pluginDir = DIR_FS_CATALOG . 'zc_plugins/' . $plugin . '/'; $versionDir = $pluginDir . $version . '/'; if (!is_dir($pluginDir)) { throw new PluginInstallerException('NO PLUGIN DIRECTORY'); } if (!is_dir($versionDir)) { throw new PluginInstallerException('NO PLUGIN VERSION DIRECTORY'); } if (!file_exists($versionDir . 'manifest.php')) { throw new PluginInstallerException('NO VERSION MANIFEST'); } if (!file_exists($versionDir . 'installer/' . 'Installer.php')) { $installer = new BasePluginInstaller($this->dbConn, $this->pluginInstaller, $this->errorContainer); return $installer; } require_once($versionDir . 'Installer'); $installer = new Installer($this->dbConn, $this->pluginInstaller, $this->errorContainer); return $installer; } }