xref: /plugin/approve/action/migration.php (revision 1989ee26e4c10d9fe322c2a0aa4ae990f031b47b)
14474ed8aSSzymon Olewniczak<?php
24474ed8aSSzymon Olewniczak
3*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\ActionPlugin;
4*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\EventHandler;
5*1989ee26SSzymon Olewniczakuse dokuwiki\Extension\Event;
64474ed8aSSzymon Olewniczak
7*1989ee26SSzymon Olewniczakclass action_plugin_approve_migration extends ActionPlugin
84474ed8aSSzymon Olewniczak{
94474ed8aSSzymon Olewniczak    /**
104474ed8aSSzymon Olewniczak     * @inheritDoc
114474ed8aSSzymon Olewniczak     */
12*1989ee26SSzymon Olewniczak    public function register(EventHandler $controller)
134474ed8aSSzymon Olewniczak    {
144474ed8aSSzymon Olewniczak        $controller->register_hook('PLUGIN_SQLITE_DATABASE_UPGRADE', 'AFTER', $this, 'handle_migrations');
154474ed8aSSzymon Olewniczak    }
164474ed8aSSzymon Olewniczak
174474ed8aSSzymon Olewniczak    /**
18*1989ee26SSzymon Olewniczak     * Call our custom migrations when defined.
194474ed8aSSzymon Olewniczak     *
20*1989ee26SSzymon Olewniczak     * @param Event $event
21*1989ee26SSzymon Olewniczak     * @param mixed $param
224474ed8aSSzymon Olewniczak     */
23*1989ee26SSzymon Olewniczak    public function handle_migrations(Event $event, $param)
244474ed8aSSzymon Olewniczak    {
254474ed8aSSzymon Olewniczak        if ($event->data['sqlite']->getAdapter()->getDbname() !== 'approve') {
264474ed8aSSzymon Olewniczak            return;
274474ed8aSSzymon Olewniczak        }
284474ed8aSSzymon Olewniczak        $to = $event->data['to'];
294474ed8aSSzymon Olewniczak        if (is_callable([$this, "migration$to"])) {
30*1989ee26SSzymon Olewniczak            $event->preventDefault();
31*1989ee26SSzymon Olewniczak            $event->result = call_user_func([$this, "migration$to"], $event->data['adapter']);
324474ed8aSSzymon Olewniczak        }
334474ed8aSSzymon Olewniczak    }
344474ed8aSSzymon Olewniczak}
35