Seditio Source
Root |
./othercms/xenForo 2.2.8/src/XF/AddOn/AbstractSetup.php
<?php

namespace XF\AddOn;

use
XF\Install\InstallHelperTrait;

abstract class
AbstractSetup
{
    use
InstallHelperTrait;

   
/**
     * @var \XF\AddOn\AddOn
     */
   
protected $addOn;

   
/**
     * @param array $stepParams
     *
     * @return null|StepResult
     */
   
abstract public function install(array $stepParams = []);

   
/**
     * @param array $stepParams
     *
     * @return null|StepResult
     */
   
abstract public function upgrade(array $stepParams = []);

   
/**
     * @param array $stepParams
     *
     * @return null|StepResult
     */
   
abstract public function uninstall(array $stepParams = []);

    public function
__construct(\XF\AddOn\AddOn $addOn, \XF\App $app)
    {
       
$this->addOn = $addOn;
       
$this->app = $app;
    }

   
/**
     * Perform additional requirement checks.
     *
     * @param array $errors Errors will block the setup from continuing
     * @param array $warnings Warnings will be displayed but allow the user to continue setup
     *
     * @return void
     */
   
public function checkRequirements(&$errors = [], &$warnings = [])
    {
        return;
    }

    public function
postInstall(array &$stateChanges)
    {
    }

    public function
postUpgrade($previousVersion, array &$stateChanges)
    {
    }

    public function
postRebuild()
    {
    }

    public function
onActiveChange($newActive, array &$jobList)
    {
    }

    public function
prepareForAction($action)
    {
        if (
$action == 'uninstall')
        {
            \
XF::db()->ignoreLegacyTableWriteError(true);
        }
    }

   
/**
     * @param $sql
     * @param array $bind
     * @param bool $suppressAll
     *
     * @return bool|\XF\Db\AbstractStatement
     * @throws \XF\Db\Exception
     */
   
protected function query($sql, $bind = [], $suppressAll = false)
    {
        return
$this->executeUpgradeQuery($sql, $bind, $suppressAll);
    }
}