✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Interfaces de plugins do WordPress: trabalhando com ativos

16

Uma das vantagens de trabalhar com programação orientada a objetos é a capacidade de definir interfaces para que as classes que implementam essas interfaces tenham um conjunto estrito de funções que essas classes devem implementar.

Essa é a definição de uma interface de classe, de qualquer maneira:

Uma interface é um contrato que especifica um conjunto de métodos, campos e propriedades que estarão disponíveis em qualquer objeto de implementação

Mas como isso pode parecer se estivermos com o objetivo de criar uma solução com namespace para incluir interfaces de plug-in do WordPress (ou uma interface) para uma classe que pode ser usada para enfileirar folhas de estilo ou arquivos JavaScript?

Interfaces de plug-in do WordPress: ativos

Para os propósitos deste post, suponha que estamos definindo uma interface que será usada na área de administração do WordPress. Ou seja, estaremos criando uma interface que será usada para enfileirar folhas de estilo e arquivos JavaScript.

Precisaremos incorporar o seguinte:

  • um namespace que pode ser usado em todo o projeto,
  • uma função para inicializar a classe,
  • uma função para realmente enfileirar os ativos.

E como isso é genérico o suficiente para ser usado para JavaScript e folhas de estilo, optei por simplesmente chamá-lo de Asset.

O resultado final pode ser algo assim :

<?php

namespace AcmeAdminInterfaces;

interface Asset {

    public function init();
    public function enqueue();
}

Em seguida, precisamos realmente implementar a interface com uma classe. Deve ser relativamente simples, pois definimos os métodos que devem ser implementados.

Observe, no entanto, que forneço algumas propriedades que são definidas no construtor da classe. Eles são específicos para essa classe e facilitam um pouco o ato de enfileirar um arquivo.

<?php

namespace AcmeAdmin;
use AcmeAdminInterfaces;

class JavaScript_Assets implements InterfacesAsset {

    private $assets_dir;

    private $js_dir;

    public function __construct() {

        $this->assets_dir = trailingslashit(
            plugin_dir_url( __FILE__ ). 'assets'
        );

        $this->js_dir = trailingslashit( $this->assets_dir. 'js' );
    }

    public function init() {

        add_action(
            'admin_enqueue_scripts',
            array( $this, 'enqueue') );
    }

    public function enqueue() {

        wp_enqueue_script(
            'toggle-admin-notices',
            $this->js_dir. 'admin.js',
            array( 'jquery' ),
            false
        );
    }
}

Algumas coisas a serem observadas sobre o código acima:

  • ele usa a  palavra-chave use para que o PHP saiba que trabalharemos com a interface Asset ,
  • Eu prefixei o nome com JavaScript para que fique claro com que tipo de ativo estou trabalhando.

Finalmente, para instanciar a classe que implementa a interface, você simplesmente faz isso :

<?php

$assets = new AdminJavaScript_Assets();
$assets->init();

Claro, este exemplo em particular é simples e deixei os comentários de código usuais de fora, mas isso geralmente é para facilitar a leitura. Se você quiser ver algo assim em ação, revise o código-fonte para

Se você quiser ver algo assim em ação, revise o código-fonte desse plug-in específico.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação