fundo
Alguns dias atrás, eu estava puxando meu cabelo simplesmente porque não conseguia obter meus dados de configuração . Criar pacotes no Laravel 4 não é tão difícil quanto pode parecer à primeira vista, especialmente se você seguir a documentação corretamente. Não o fiz, então basicamente perdi algumas horas pensando no que fiz de errado, o que acabou me deixando preguiçoso na frente da TV.
De qualquer maneira.
Eu li a documentação novamente, mas ainda não resolvi meu problema. Abaixo, vou compartilhar como consegui obter meus dados de configuração. Note que esta dica cobrirá principalmente notas não encontradas na documentação do Laravel. Portanto, não continue lendo a menos que você tenha lido a documentação ou concluído os pacotes.
Criando Nosso Pacote
Ao fazer pacotes destinados ao Laravel, você executaria algo como php artisan workbench Zejesago/Laravel-Social --resources
. Arrumado. Isso cria uma estrutura de pacote inicial para você em sua workbench
pasta.
Daqui em diante, vou me referir aos caminhos do diretório do pacote workbench/zejesago/laravel-social/
,.
Depois disso, você pode começar a codificar e incluir configurações. Para carregar dados de configuração de config/facebook.php
, você pode usar Config::get('laravel-social::facebook.appId');
. Normalmente, isso funcionaria como deveria , mas não funcionou no meu caso.
O culpado
Eu estava tentando ser espirituoso, então mudei meu namespace de para ; Eu só gosto de organizar dessa forma. Aparentemente, não deve haver nenhum problema com essa abordagem. No entanto, também acabei mudando meu provedor de serviços de para .ZejesagoLaravelSocial
ZejesagoLaravelSocial
ZejesagoLaravelSocialSocialServiceProvider
ZejesagoLaravelSocialSocialServiceProvider
Solução
Descobri que a Config
classe não conseguiu encontrar nenhum arquivo de configuração do caminho do pacote, porque a ServiceProvider
classe pai adivinha o caminho a partir da localização do provedor de serviços. No meu caso SocialServiceProvider
,. Tudo o que tive que fazer foi declarar explicitamente o caminho do pacote na função.boot()
public function boot()
{
$this->package(
'zejesago/laravel-social', null, __DIR__.'/../../..');
}
Isso me levou muito tempo para finalmente descobrir. O fato de a Config
aula ser apenas uma fachada torna ainda mais difícil dissecar como o Laravel faz isso. Acho que comecei do lado errado, inicialmente olhando para Config
a ServiceProvider
classe dos pais em vez de primeiro.
Laravel Social (agora chamado de Laravel Facebook ) é um pacote que criei para praticar com o Laravel e usar em projetos.