Classe App - 4.x
Encontrando Classes
Localizando Caminhos para Namespaces
Localizando Plugins
Localizando Temas
Carregando Arquivos do Fornecedor
A classe App é responsável pela localização dos recursos e pelo gerenciamento de caminhos.
Encontrando Classes¶
Este método é usado para resolver nomes de classes no CakePHP. Resolve os nomes abreviados do CakePHP e retorna o nome da classe totalmente resolvido:
// Resolva um nome de classe curto com o namespace + sufixo.
// Retorna Cake\Controller\Component\AuthComponent
// Resolve o nome do plugin
// Retorna DebugKit\Controller\Component\ToolbarComponent
// Os nomes com \ serão retornados inalterados.
// Retorna App\Cache\ComboCache
Ao resolver as classes, o namespace App será tentado e, se a classe não existir, o espaço para nome Cake será tentado. Se ambos os nomes de classe não existirem, false será retornado.
Localizando Caminhos para Namespaces¶
Usado para obter locais para caminhos com base em convenções:
// Obtenha o caminho para o Controller / no seu aplicativo
Isso pode ser feito para todos os namespaces que fazem parte do seu aplicativo. Você também pode buscar caminhos para um plug-in:
// Retorna os caminhos do componente no DebugKit
App::path() retornará apenas o caminho padrão e não poderá fornecer informações sobre caminhos adicionais para os quais o carregador automático está configurado.
Usado para encontrar o caminho para um pacote dentro do CakePHP:
// Obtenha o caminho para os mecanismos de cache.
Localizando Plugins¶
Os plug-ins podem ser localizados com o Plugin. Usar Plugin::path('DebugKit'); por exemplo, fornecerá o caminho completo para o plug-in DebugKit:
Localizando Temas¶
Como os temas são plugins, você pode usar os métodos acima para obter o caminho para um tema.
Carregando Arquivos do Fornecedor¶
O ideal é que os arquivos do fornecedor sejam carregados automaticamente com o Composer, se você tiver arquivos que não possam ser carregados ou instalados automaticamente com o Composer, será necessário usar o require para carregá-los.
Se você não conseguir instalar uma biblioteca com o Composer, é melhor instalar cada biblioteca em um diretório, seguindo a convenção do Composer de vendor/$author/$ package. Se você tiver uma biblioteca chamada AcmeLib, poderá instalá-la em vendor/Acme/AcmeLib. Supondo que ele não usasse nomes de classe compatíveis com PSR-0, você poderia carregar automaticamente as classes dentro dele usando classmap no composer.json do seu aplicativo:
"App\\Test\\": "tests/"
Se a sua biblioteca de fornecedores não usa classes e, em vez disso, fornece funções, você pode configurar o Composer para carregar esses arquivos no início de cada solicitação usando a estratégia de carregamento automático files:
Depois de configurar as bibliotecas do fornecedor, você precisará regenerar o carregador automático do seu aplicativo usando:
Se você não estiver usando o Composer em seu aplicativo, precisará carregar manualmente todas as bibliotecas de fornecedores.