v23 fredag – Gårdagens lösningsförslag som OOP Plugins

Gårdagens lösningsförslag som OOP Plugins

För att införa en mer översiktlig struktur och städa upp vår pluginkod använder vi Objektorientering genom PHP klasser. Vi kör fortfarande samma kod i grund och botten men nu uppdelat i olika klasser enligt ansvarsområde.

Alla tre plugins nedan går fortfarande igenom exakt samma process om våra tidigare versioner:
1. Registrerar activation och uninstall hooks som påverkar databas
2. Använder add_action(’wp_ajax_X’) för att skapa en ajax-route och koppla den till en callback som hämtar och skriver data till databas
3. Använder add_action(’wp_enqueue_scripts’) och add_filter(’the_content’) för att skicka JS och HTML till frontend så att användare kan favoritmarkera inlägg.

Thomas lösningsförslag ”fav_posts” i OOP

Ladda ner kod som .zip fil

/fav_posts_oop
    fav_posts_oop.php 
    fav_posts.js
    /classes
        FPORegister.class.php
        FPOAjax.class.php
        FPOContent.class.php

fav_posts_oop.php är fortfarande vår huvudpluginfil men innehåller nu endast kod som laddar och instantierar klasser.\
Det finns tre klasser i denna plugin
* FPORegister: Hanterar activation och uninstall hooks.
* FPOAjax: Hanterar alla wp_ajax_ anrop
* FPOContent: Hanterar allt innehåll pluginnen genererar (lägger till JS och knapp i ’the_content’ filtret.

Hugos lösningsförslag ”user-favourites” i OOP

Ladda ner kod som .zip fil

/user-favourites-oop
    user-favourites-oop.php 
    /js
        user-favourites.js
    /classes
        UFORegister.class.php
        UFOModel.class.php
        UFOAjax.class.php
        UFOContent.class.php

user-favourites-oop.php är fortfarande vår huvudpluginfil men innehåller nu endast kod som laddar och instantierar klasser.\
Det finns fyra klasser i denna plugin
* UFORegister: Hanterar activation och uninstall hooks.
* UFOModel: Hanterar data som pluginnen använder. Både för user favourites och inloggad user data.
* UFOAjax: Hanterar alla wp_ajax_ anrop
* UFOContent: Hanterar allt innehåll pluginnen genererar (lägger till JS och knapp i ’the_content’ filtret.

Hugos lösningsförslag ”user-favourites” i OOP med PHP namespaces

För att slippa prefixa alla klasser med namnet på pluginnen kan vi istället använda PHP namespaces.
Ladda ner kod som .zip fil

/user-favourites-oop-namespaced
    user-favourites-oop-namespaced.php 
    /js
        user-favourites.js
    /classes
        Register.class.php
        Model.class.php
        Ajax.class.php
        Content.class.php

user-favourites-oop-namespaced.php är fortfarande vår huvudpluginfil men innehåller nu endast kod som laddar och instantierar klasser. Alla PHP filer i vår plugin bor nu i ett eget PHP namespace ’UFO’\
Det finns fyra klasser i denna plugin, alla inuti ’UFO’ PHP namespace.
* Register: Hanterar activation och uninstall hooks.
* Model: Hanterar data som pluginnen använder. Både för user favourites och inloggad user data.
* Ajax: Hanterar alla wp_ajax_ anrop
* Content: Hanterar allt innehåll pluginnen genererar (lägger till JS och knapp i ’the_content’ filtret.

0 votes