Muitos desenvolvedores de WordPress anseiam por recursos como Eloquent, Blade, Service Container e Service Provider para ajudá-los a construir plug-ins poderosos. Falcon está aqui para mudar o jogo e trazer esses recursos ao seu alcance.
Atenção: Este plugin fornece uma série de serviços e não se destina a ser usado como base para a criação de novos plugins.
Versão mínima do PHP: 8.2
Criar diretório: Na pasta wp-content
, se a pasta mu-plugins
não existir, crie-a. Coloque a pasta falcon-base-services
dentro dela.
Criar arquivo Loader: Na raiz da pasta mu-plugins
, crie um arquivo PHP com um nome de sua preferência e adicione o seguinte código:
<?php
require ' falcon-base-services/falcon-base-services.php ' ;
Observe que o conteúdo da pasta mu-plugins
não precisa ser ativado no administrador do WordPress e é executado antes de todos os outros plugins. Além disso, o WordPress não verifica as pastas dentro mu-plugins
a menos que seja explicitamente instruído.
Instale dependências: Abra o terminal na pasta falcon-base-services
e execute o seguinte comando:
composer install
Se você não instalou o Composer, você pode baixá-lo e instalá-lo neste link.
O plugin agora está pronto para uso. Vamos explorar seus recursos e como usá-los.
Caso precise colocar o site em modo de manutenção, basta renomear o arquivo maintenance.example.php
na pasta storage
para maintenance.php
. Você também pode editar o conteúdo do arquivo conforme necessário.
Os itens mencionados no arquivo .env.example
são importantes. Renomeie o arquivo para .env
.
Você pode definir suas variáveis no arquivo .env
e usá-las em qualquer lugar do seu código, assim:
$ _ENV [ ' item ' ];
//or
env ( ' item ' )
Para definir um item na var global $_ENV, você pode usar:
setEnv ( $ key , $ value );
Você também pode usar arquivos de configuração em seu projeto que retornem um array. Coloque o arquivo de configuração na pasta config e acesse os valores desejados usando a função falconConfig($file, $key = null, $folder_path = null)
.
$file
: O nome do arquivo de configuração.
$key
: A chave do array solicitado. Se for nulo, todo o conteúdo do arquivo será retornado.
$folder_path
: Por padrão, o caminho para os arquivos de configuração está na pasta de configuração. Se quiser ter novas configurações em seu projeto, você também pode especificar o caminho para a nova pasta.
O plug-in usa um contêiner de serviço poderoso com recursos de conexão automática.
Serviços Singleton: registre um serviço singleton usando:
FALCON_CONTAINER -> singleton (Test::class);
// or
FALCON_CONTAINER -> singleton ( ' test ' , Test::class);
Serviços não singleton: registre um serviço não singleton usando:
FALCON_CONTAINER -> bind (Test::class);
// or
FALCON_CONTAINER -> bind ( ' test ' , Test::class);
Usando fechamentos: Você também pode usar fechamentos:
FALCON_CONTAINER -> bind ( ' test ' , function () { return Test::class; });
Usando os serviços: Use o método get
para recuperar os serviços:
FALCON_CONTAINER -> get ( ' test ' );
FALCON_CONTAINER -> get (Test::class);
Resolvendo Métodos: Resolva um método de uma classe usando:
FALCON_CONTAINER -> getMethod (Test::class, ' run ' );
Isso resolverá automaticamente quaisquer dependências exigidas pela classe e pelo método.
Para criar um provedor de serviços, crie uma classe na pasta app/providers
e estenda a classe ServiceProvider
. Use os métodos register
e boot
conforme necessário. Em seguida, adicione o endereço do provedor no arquivo providers.php
localizado na pasta bootstrap
.
Todas as tabelas padrão do WordPress estão disponíveis como modelos na pasta app/Model
. As tabelas WooCommerce
serão adicionadas em breve. Você pode usar o poderoso Query Builder e o Eloquent para interagir com essas tabelas.
( new FalconBaseServices Model Post ())-> published ()-> with ( ' author ' )-> get ();
falconDB ():: table ( ' wp_posts ' )
-> where ( ' post_status ' , ' publish ' )
-> leftJoin ( ' wp_users ' , ' wp_posts.post_author ' , ' = ' , ' wp_users.ID ' )
-> select ( ' wp_posts.* ' , ' wp_users.user_nicename ' )
-> get ();
Se você quiser usar uma nova tabela como modelo, crie sua classe estendendo a classe FalconBaseServicesModelBaseModel
. Se a tabela não usar o prefixo padrão, defina $with_prefix
como false:
protected $ with_prefix = false ;
As regras e uso de modelos e Query Builder/Eloquent são exatamente como a documentação do Laravel.
Por padrão, o Blade é usado como mecanismo de modelo, cujo uso é um pouco diferente do padrão. Preste atenção ao exemplo:
falconTemplate ()-> setViewDir ( ' path to dir ' )-> setView ( ' name of file without extension ' )
-> share ([ ' item ' => ' value ' ])-> render ();
Você também pode usar o Twig. A classe derivada da interface app/Services/TemplateEngine/Template.php
está disponível no caminho app/Services/TemplateEngine/Implements/Twig.php
. Basta adicionar o Twig ao plugin via Composer e depois editar o arquivo app/Providers/TemplateServiceProvider.php
. O uso é semelhante ao exemplo acima.
Para usar o logger, use falconLogger():
falconLogger ()-> error ( ' message ' , [ ' data ' => ' value ' ]);
Se você deseja que ProcessIdProcessor
, GitProcessor
e MemoryUsageProcessor
sejam incluídos no log, defina os itens relacionados no arquivo .env como true.
Para usar email, você pode usar falconEmail():
falconEmail ()-> send ( $ to , $ subject , $ content , $ from = null , $ bcc = null );
Para obter mais informações sobre como usar o email, consulte o arquivo app/Services/Sender/Implements/Email/PHPMailer.php
.
Boa codificação!