Preciso fazer um loop de muitas matrizes de maneiras diferentes e exibi-las em uma página. As matrizes são geradas por uma classe de módulo. Eu sei que é melhor não incluir funções em 'views' e quero saber onde inserir o arquivo de funções.
Sei que posso 'estender' os ajudantes, mas não quero estender um ajudante. Eu quero criar um ajudante com minhas funções de loop. Vamos chamá-lo de loops_helper.php
php
codeigniter
codeigniter-helpers
Jonathan
fonte
fonte
Respostas:
Um auxiliar do CodeIgniter é um arquivo PHP com várias funções. Não é uma classe
Crie um arquivo e coloque o seguinte código nele.
Salve isso em application / helpers / . Vamos chamá-lo de "new_helper.php"
A primeira linha existe para garantir que o arquivo não possa ser incluído e executado fora do escopo do CodeIgniter. Tudo depois disso é auto-explicativo.
Usando o Auxiliar
Isso pode estar no seu controlador , modelo ou visualização (não é preferível)
Se você usar esse auxiliar em vários locais, poderá carregá-lo automaticamente adicionando-o ao arquivo de configuração de carregamento automático, por exemplo
<your-web-app>\application\config\autoload.php
.-Mathew
fonte
$this
como uma propriedade dela ... Tudo, se você quiser.cool_helper
) e, se você esquecer disso e ligar manualmente$this->load->helper('cool_helper')
depois que ele foi carregado automaticamente, você receberá um erro PHP "já definido" ou algo assim. Isso impede o carregamento do mesmo código duas vezes (é algo como ainclude_once()
função PHP, mas para os auxiliares do CodeIgniter, para evitar problemas). Basicamente, traduzindo um pouco: se a função não existe, significa que o auxiliar não foi carregado antes. Vamos definir isso.Algum código que permite usar a instância do IC dentro do auxiliar:
fonte
Bem, para mim só funciona adicionando o texto
"_helper"
depois no arquivo php como:E para carregar automaticamente o auxiliar na pasta aplication -> file autoload.php, adicione o nome do auxiliar no array sem "_helper" como:
E com isso eu posso usar todas as funções do ajudante
fonte
_helper
no final do nome do arquivo.Para criar um novo auxiliar, você pode seguir as instruções do The Pixel Developer , mas meu conselho é não criar um auxiliar apenas para a lógica exigida por uma parte específica de um aplicativo específico. Em vez disso, use essa lógica no controlador para definir as matrizes para seus valores finais pretendidos. Depois de obtê-lo, você os passa para a view usando a classe Template Parser e (espero) você pode manter a view limpa de qualquer coisa que se pareça com o PHP usando variáveis simples ou pares de tags variáveis em vez de ecos e foreachs. ou seja:
ao invés de
Outro benefício dessa abordagem é que você não precisa se preocupar em adicionar a instância do IC, como faria se usasse ajudantes personalizados para fazer todo o trabalho.
fonte
Crie um arquivo com o nome do seu ajudante em / application / helpers e adicione-o ao arquivo de configuração de carregamento automático / carregue-o manualmente.
Por exemplo, coloque um arquivo chamado user_helper.php em / application / helpers com este conteúdo:
Agora você pode carregar o auxiliar via
$this->load->helper(‘user’);
ou adicioná-lo ao aplicativo / config / autoload.php config.fonte
Basta definir um auxiliar no diretório auxiliar do aplicativo e chamar do seu controlador apenas o nome da função como
no controlador carregar o ajudante
saída será
fonte
Para recuperar um item do seu arquivo de configuração, use a seguinte função:
$this->config->item('item name');
Onde o nome do item é o índice da matriz $ config que você deseja recuperar. Por exemplo, para buscar sua escolha de idioma, faça o seguinte:$lang = $this->config->item('language');
A função retornará FALSE (booleano) se o item que você está tentando buscar não existir.Se você estiver usando o segundo parâmetro da função $ this-> config-> load para atribuir seus itens de configuração a um índice específico, poderá recuperá-lo especificando o nome do índice no segundo parâmetro do $ this-> config- > função item (). Exemplo:
// Carrega um arquivo de configuração chamado blog_settings.php e o atribui a um índice chamado "blog_settings"
// Recupera um item de configuração chamado site_name contido na matriz blog_settings
// Uma maneira alternativa de especificar o mesmo item:
$ site_name = $ blog_config ['site_name'];
fonte