示例#1
0
 public function getName()
 {
     $aPath = explode('_', install_func_underscore(get_class($this)));
     array_shift($aPath);
     array_shift($aPath);
     $sName = ucfirst(install_func_camelize(join('_', $aPath)));
     $sName[0] = strtolower($sName[0]);
     return $sName;
 }
示例#2
0
/**
 * Загрузка классов инсталлятора
 * пример - InstallCore, InstallStepInit
 *
 * @param $sClassName
 * @return bool
 */
function install_autoload($sClassName)
{
    $aPath = explode('_', install_func_underscore($sClassName));
    if (count($aPath) >= 2 and $aPath[0] == 'install') {
        array_shift($aPath);
        if ($aPath[0] == 'step' and count($aPath) > 1) {
            array_shift($aPath);
            $sDir = 'step';
            $sName = ucfirst(install_func_camelize(join('_', $aPath)));
            $sName[0] = strtolower($sName[0]);
        } else {
            $sName = array_pop($aPath);
            $sDir = join(DIRECTORY_SEPARATOR, $aPath);
        }
        $sPath = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'backend' . DIRECTORY_SEPARATOR . ($sDir ? $sDir . DIRECTORY_SEPARATOR : '') . $sName . '.php';
        if (file_exists($sPath)) {
            require_once $sPath;
            return true;
        }
    }
    /**
     * Проверяем соответствие PSR-0 для библиотек фреймворка
     */
    $sClassName = ltrim($sClassName, '\\');
    $sFileName = '';
    $sNameSpace = '';
    if ($iLastNsPos = strrpos($sClassName, '\\')) {
        $sNameSpace = substr($sClassName, 0, $iLastNsPos);
        $sClassName = substr($sClassName, $iLastNsPos + 1);
        $sFileName = str_replace('\\', DIRECTORY_SEPARATOR, $sNameSpace) . DIRECTORY_SEPARATOR;
    }
    $sFileName .= str_replace('_', DIRECTORY_SEPARATOR, $sClassName) . '.php';
    $sFileName = dirname(dirname(INSTALL_DIR)) . DIRECTORY_SEPARATOR . 'framework' . DIRECTORY_SEPARATOR . 'libs' . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . $sFileName;
    if (file_exists($sFileName)) {
        require_once $sFileName;
        return true;
    }
    return false;
}
示例#3
0
/**
 * Получаем параметры
 */
$aArgs = isset($_SERVER['argv']) ? $_SERVER['argv'] : array();
if (count($aArgs) == 1) {
    console_echo(InstallCore::getLang('console.command_empty'), true);
}
/**
 * Ищем команду
 */
$sCommand = strtolower($aArgs[1]);
if ($sCommand == 'run') {
    if (!isset($aArgs[2])) {
        console_echo(InstallCore::getLang('console.command.run.params_step_empty'), true);
    }
    $sStep = install_func_camelize($aArgs[2]);
    $sClass = 'InstallStep' . ucfirst($sStep);
    if (!class_exists($sClass)) {
        console_echo(InstallCore::getLang('Not found step ' . $sStep), true);
    }
    /**
     * Хардкодим параметр для шага обновления
     * TODO: убрать и переделать на нормальную консольную утилиту
     */
    $_REQUEST['from_version'] = isset($aArgs[3]) ? $aArgs[3] : '';
    /**
     * Создаем объект шага и запускаем его
     */
    $oStep = new $sClass('fake', array());
    if ($oStep->process()) {
        console_echo(InstallCore::getLang('console.command_successful'));