Vi ste ovdje: start » hr » Interna dokumentacija » DokuWiki proširenja (WvdS) » Core » Brzi početak: prijava prve usluge i njezino dohvaćanje

Brzi početak: prijava prve usluge i njezino dohvaćanje

Najkraći put od „dodatak je instaliran“ do „vlastita usluga stoji u registru i pronalazi se s drugog mjesta“. Tri koraka, otprilike petnaest minuta. Ova je stranica namijenjena programerima vlastitih dodataka.

Preduvjeti

  • wkcore je instaliran i uključen u upravitelju proširenja.
  • Vlastiti dodatak s komponentom radnje (action.php), ili mjesto na kojem je možete dodati.
  • PHP 8.2 ili noviji.
  • Za korak 3 (provjeru): smijete uređivati conf/local.php.

Korak 1: prijavite se na događaj registracije

WKCORE_REGISTER_SERVICES jedini je trenutak u kojem registar očekuje upis.

use dokuwiki\Extension\ActionPlugin;
use dokuwiki\Extension\Event;
use dokuwiki\Extension\EventHandler;
 
class action_plugin_mojdodatak extends ActionPlugin
{
    public function register(EventHandler $controller)
    {
        $controller->register_hook('WKCORE_REGISTER_SERVICES', 'BEFORE', $this, 'onRegisterServices');
    }
 
    public function onRegisterServices(Event $event)
    {
        $registry = $event->data;
        $registry->register('mojdodatak.pozdrav', new Pozdrav());
    }
}

Odaberite oznaku koja počinje prefiksom vašeg dodatka. Oznake su ravan imenski prostor bez provjere sudara; prefiks je jedino što razdvaja dva dodatka.

Je li usluga skupa za izgradnju ili potrebna rijetko, prijavite umjesto nje tvornicu. Ona se izvodi pri prvom get() i nikada više:

$registry->registerFactory('mojdodatak.izvjestaj', static function () {
    return new SkupiIzvjestaj();
});

Korak 2: dohvatite je s drugog mjesta

Preko DokuWiki učitavača dodataka — ne uvozom razreda iz wkcore:

$core = plugin_load('helper', 'wkcore');
if (is_object($core) && method_exists($core, 'get')) {
    $pozdrav = $core->get('mojdodatak.pozdrav');
    if ($pozdrav !== null) {
        echo $pozdrav->reci();
    }
}

Dvije provjere kućni su običaj i zaslužuju svoje mjesto: vaš se dodatak i dalje učitava kada wkcore nedostaje i i dalje radi kada očekivana usluga nikada nije prijavljena. Nijedan od ta dva slučaja ne opravdava prekid.

Korak 3: pogledajte što je prijavljeno

Dijagnostički je prikaz isključen dok DokuWiki postavka allowdebug nije uključena — tada javlja samo wkcore diagnostics require $conf['allowdebug'] = 1. Postavite u conf/local.php:
$conf['allowdebug'] = 1;

i uklonite redak nakon provjere. Prikaz otkriva unutrašnjost instalacije.

Zatim otvorite /doku.php?do=wkcore_diag.

Provjera rezultata

Prikaz nabraja svaku prijavljenu oznaku, je li vrijednost ili tvornica te je li tvornica u ovom pozivu već razriješena.

  • mojdodatak.pozdrav stoji ondje kao vrijednost.
  • mojdodatak.izvjestaj stoji ondje kao još nerazriješena tvornica. Pozovite get('mojdodatak.izvjestaj') jednom i ponovno učitajte: sada je razriješena.

Upravo je zato prikaz tu. Krivo napisana oznaka nigdje nije pogreška — ona je null iz get(). Ovdje vidite kako se doista zove.

Sljedeći korak

  • wkstorage — prva usluga koju ćete vjerojatno trošiti.
  • wkcore (njemački) — stranica paketa: sve metode registra, tri događaja i njihova postojanost.
hr/wiki/dwe/wkcore/quickstart.txt · Zadnja izmjena: od 0.0.0.0