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

Por que se preocupar com o carregamento automático no WordPress, parte 3

41

No último post, eu disse que não poderíamos ter alguns dos mesmos luxos que as linguagens compiladas e estaticamente tipadas têm. Especificamente, eu estava falando sobre a ideia de não ter que lidar com autoloaders.

Em vez disso, linguagens compiladas podem pegar todos os arquivos que compõem o programa, processá-los e agrupá-los em um único binário.

Mas para fazer isso, ele precisa de um tipo específico de programa para fazer isso.

Autoloading no WordPress: Linkers e Autoloaders

Ou seja, ele usa um utilitário chamado linker. Abordarei isso brevemente, mas ver o papel que desempenha no contexto de linguagens compiladas pode ajudar a fazer uma analogia com o funcionamento do carregamento automático no WordPress (e PHP).

O que é um Linker?

Dependendo da linguagem com a qual você está trabalhando, especialmente com linguagens de programação orientadas a objetos, é provável que o código se espalhe por vários arquivos.

Além disso, cada um desses arquivos será empacotado em seus pacotes (nos referimos a eles como namespaces como PHP, e a maioria das linguagens compiladas também faz o mesmo). Portanto, para fins de demonstração, suponha que os arquivos estejam incluídos em seus namespaces.

Então, em toda a base de código, você tem todos esses arquivos relacionados por meio de namespaces, mas espalhados por arquivos separados.

Quando chega a hora de compilar tudo isso em um único binário executável, um programa chamado linker analisa o código e faz mágica para ajudar a criar um único binário executável (em vez de uma coleção de arquivos como estamos acostumados a ver em projetos baseados em PHP).

E carregamento automático?

Então, quais são as semelhanças entre carregamento automático e vinculação? Como mencionado, os projetos que construímos no WordPress (e PHP) residem consistentemente em arquivos separados. Ou seja, eles nunca serão compilados em um arquivo.

Eu diria que era uma vez (embora isso ainda aconteça), usamos include_once ou require_once para trazer todas as dependências que precisamos. Mas o carregamento automático nega a necessidade de fazer isso.

Por que se preocupar com o carregamento automático no WordPress, parte 3

Escrevendo manualmente um autoloader (sem usar o PSR4).

Em vez disso, um autoloader pode pegar o código que temos sempre que, digamos, instanciar uma classe e então carregar automaticamente (daí seu nome) o arquivo sem a necessidade de incluir manualmente o arquivo.

A analogia

Enquanto um linker analisará a base de código de um programa e montará automaticamente o binário, um autoloader precisará de algum tipo de configuração para saber onde estão as classes, como localizar um arquivo no sistema de arquivos dado seu namespace e nome de classe e em breve.

Além disso, existem diferentes maneiras de fazer isso, dependendo se você optar por usar algo como PSR-4 ou outra estratégia de carregamento. Mas isso está além do escopo deste post.

É isso

A ideia por trás de tudo isso é entender como linguagens estaticamente tipadas, que são frequentemente – embora nem sempre – linguagens compiladas e como dinamicamente tipadas – que muitas vezes não são compiladas (pense em JavaScript, PHP, etc.) jeitos diferentes.

Resumidamente:

  • linguagens compiladas usam linkers,
  • linguagens dinâmicas usam carregadores automáticos.

E isso é tudo o que há para isso, realmente.

Mas por que isso é importante? Para entender os benefícios do carregamento automático no WordPress e ter uma base para tópicos mais avançados, acho importante entender como e por que fazemos certas coisas.

E se nada mais, pode nos ajudar a sermos melhores desenvolvedores.

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