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

Como usar plugins WordPress de carregamento automático PSR-4

16

Digamos que você está trabalhando em um projeto para alguém e o definiu, as tarefas são delegadas, você tem todas as bibliotecas e ferramentas necessárias para começar e separou qual será o tema ou apresentação, e qual será a funcionalidade ou os plugins.

Mas em vez de ter um punhado de plugins individuais, e se houvesse um pacote de plugins funcionais menores ou micro-plugins ou o que você quiser chamá-los trabalhando para alimentar o pacote?

Além disso, todos eles são construídos sobre a mesma base, mas que também compartilham código entre si e para tornar as coisas mais interessantes, você opta por usar um autoloader PSR-4 via Composer para cuidar de tudo isso?

Plugins WordPress de carregamento automático PSR-4

Primeiro, a maneira de pensar no que estou tentando dizer (porque quem sabe se estou claro 🙃) é que você tem seu trabalho no wp-content/pluginsdiretório. E seu plugin reside, digamos, acme-pluginse possui subdiretórios para seus micro-plugins.

Vamos manter isso simples para este exemplo e dizer que há o plugin principal e apenas um micro-plugin. O diretório seria algo assim;

Como usar plugins WordPress de carregamento automático PSR-4

Agora, há os arquivos que você espera ver em um plugin:

  • LEIA-ME,
  • LICENÇA,
  • CHANGELOG,
  • compositor.json
  • compositor.lock
  • fornecedor
  • o arquivo de inicialização do plugin,
  • etc.

Agora é o seguinte: se você estiver usando o PSR-2 e estiver usando um autoloader PSR-4, há duas coisas que você precisa saber:

  1. Os namespaces devem corresponder à organização do diretório. Falei um pouco sobre isso durante minha apresentação do WordCamp Atlanta 2017 (especificamente sob organização virtual e lógica).
  2. Como trabalhar composer.jsonpara definir seus autoloaders. Você pode ler muito sobre isso aqui, mas vou dar as notas do precipício no restante deste post.

Portanto, o problema é que o vendordiretório reside em um nível acima de onde existem alguns dos arquivos de origem. Assim, a maneira padrão de configurar um autoloader personalizado no Composer não funcionará.

Por exemplo, é muito comum ver isso :

{
  "name": "pressware/acme-plugins",
  "description": "A demo plugin",
  "autoload": {
    "psr-4": {
      "Acme": "src/",
    }
  },
  // ...
}

Mas para compensar nosso trabalho, precisamos fazer isso :

{
  "name": "pressware/acme-plugins",
  "description": "A demo plugin",
  "autoload": {
    "psr-4": {
      "Acme": "",
      "AcmeMicroPlugin": "MicroPlugin/src/"
    }
  },
  // ...
}

É uma mudança simples, mas é um exemplo simples, certo? Então, qual é a lição disso?

Observe que atualizamos algumas alterações no  local de carregamento automático. Especificamente, isso é o que está acontecendo:

  • O primeiro item é o namespace de nível superior ao qual pertencerão todos os plug-ins que pertencerão ao plug-in Acme.
  • A segunda entrada refere-se ao MicroPlugin que você vê no diretório acima. Isso representa o namespace para este plugin em particular e diz ao Composer para procurar arquivos de origem para carregar automaticamente usando o diretório de propriedades

A partir daqui, você adicionará uma nova entrada para o autoloader correspondente a cada micro-plugin que pertencerá ao plug-in de nível superior.

Organizando futuros microplugins

Existem algumas maneiras de organizar seu código para que você possa usar um carregador automático padrão.

Se você seguir o modelo de micro-plugin (por falta de um termo melhor), ele não funcionará, então você terá que reorganizar seus arquivos, e isso pode ser uma dor ao longo do tempo.

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