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 installSe 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!