Quando vi o autoload pensei que ele fazia justamente o contrário kkk. Eu estou acostumado a desenvolver em C#, java, mas não muito a parte web então fico meio perdido nesse mundo. Valeu pela explicação. =)
Eu iria abrir outro post para perguntar isso, mas já que surgiu o assunto qual IDE vcs utilizam, pois não consigo debugar. Então tudo fica meio na base da "mãe dina" kkkk. Eu utilizo o netbeans para desenvolver o codigo, mas o "executar" dele abre um localhost que não tem nada. Então como não sei onde altero as configurações do servidor do "dito cujo" eu optei por salvar o projeto no www do Wamp. grup_helper é um help que eu criei para fazer os CRUDs automaticamente. Não peguei muito bem a diferença entre o help e o library ainda. Att, *Álvaro Vilobaldo Rios da Silva* mail to: [email protected] <[email protected]> *Analyst Programmer* *São Paulo and Region, Brazil* Em 1 de março de 2012 11:10, Nando Araujo <[email protected]>escreveu: > Olhando pro meu caso eu posso dizer que não tem diretamente a ver com o > nome, pois eu tenho na minha core o seguinte: > > MY_Controller.php (class MY_Controller extends CI_Controller{}) > Site.php (class Site extends MY_Controller{}) > Sistema.php (class Sistema extends MY_Controller{}) > > Pelo que entendi desse __autoload ele adiciona tudo que não tenha o prefixo > CI_, só não depurei pra ter certeza do contexto em que ele se aplica então > não sei dizer ao certo se ele faz isso somente pra pasta core ou para todas > pastas do CI (por ex.: pra helpers ou libraries). > > E falando nisso uma coisa me intrigou no teu código, o que seria o > grud_helper? > Pergunto isso pq se for uma classe poderia ser usada como library e > carregada usando $this->load->library() e vc colocou "helper" no nome então > pode ter confundido os conceitos. > > Em 1 de março de 2012 10:57, Nino Baldo <[email protected]> escreveu: > > > Muito obrigado pessoal, funcionou muito bem! > > > > Só tive que colocar o meu MY_Controller no application/core e adicionar > > essa função no config.php: > > > > *function __autoload($class) { > > if (strpos($class, 'CI_') !== 0) { > > @include_once( APPPATH . 'core/' . $class . EXT ); > > } > > } > > * > > Exatamente como explica o site passado: > > > > > http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY > > > > Tudo funcionou, mas surgiu uma duvida. Se minha classe tem o nome > > MY_Controller, pq o autoload funciona com CI_? Sou novo em php então isso > > me soou meio estranho. > > > > Att, > > > > *Álvaro Vilobaldo Rios da Silva* > > > > mail to: [email protected] <[email protected]> > > *Analyst Programmer* > > > > *São Paulo and Region, Brazil* > > > > > > > > > > Em 1 de março de 2012 10:09, Jairo <[email protected]> escreveu: > > > > > Valeu Álvaro, > > > > > > Seguinte, coloquei a minha em /application/core/MY_Controller.php . > > > > > > class MY_Controller extends CI_Controller { > > > } > > > > > > Atente para o nome MY_Controller ( o case, o underscore ) no arquivo e > > > no nome da classe, parece que tem que seguir o padrão. Acho que faltou > > > um "underscore" aí. > > > > > > -- > > > Abs, > > > > > > Jairo > > > Sao Paulo / SP - Brasil > > > > > > > > > On Thu, 2012-03-01 at 09:45 -0300, Nino Baldo wrote: > > > > Muito obrigados amigos, esse foi o meu primeiro post e não esperava > ter > > > > recebido uma tão calorosa recepção. > > > > > > > > Já tinha analisado essa solução do My_controller nos post antigos do > > > grupo > > > > e se não me engano foi o próprio Nando que postou. > > > > > > > > Achei que seria melhor fazer tudo pelo hook, pois programava em java > e > > > nele > > > > tem os Filter que funcionam mais ou menos como um hook, mas de forma > > > > melhorada. Contudo vocês me convenceram! Vou usar um Controller > > próprio. > > > > > > > > Fiz dessa forma: > > > > > > > > // CONTROLE PROPRIO > > > > *class MyController extends CI_Controller { > > > > > > > > function __construct() { > > > > parent::__construct(); > > > > > > > > validador(); > > > > } > > > > > > > > function validador(){ > > > > > > > > } > > > > } * > > > > > > > > // IMPLEMENTAÇÃO > > > > > > > > *class Usuario extends MyController { > > > > > > > > function __construct() { > > > > parent::__construct(); > > > > $this->grud_helper = new Grud_helper("usuario"); > > > > } > > > > }* > > > > > > > > Mas ele não carrega automaticamente esse controller e retorna esse > > erro: > > > > Fatal error: Class 'MyController' not found in > > > > C:\wamp\www\CodeIgniter\application\controllers\usuario.php on line 3 > > > > > > > > Para carregar automaticamente o meu controller como faço? Coloco ele > no > > > > autoload.php como library? > > > > > > > > Att, > > > > > > > > *Álvaro Vilobaldo Rios da Silva* > > > > > > > > mail to: [email protected] <[email protected]> > > > > *Analyst Programmer* > > > > > > > > *São Paulo and Region, Brazil* > > > > > > > > > > > > > > > > > > > > Em 28 de fevereiro de 2012 17:06, Rafael V. de Oliveira < > > > > [email protected]> escreveu: > > > > > > > > > Muito boa a tua solução (Y). > > > > > > > > > > A respeito do $this->uri->uri_string(), bem lembrado Nando, porém > > > depende > > > > > do caso. Até onde eu me lembro, a função não retorna o base_url. > > > > > Mas não estou falando com certeza, minha cabeça dói e vou vazar > > daqui. > > > > > > > > > > Abraços ;) > > > > > > > > > > Em 28/02/2012, às 19:35, Nando Araujo escreveu: > > > > > > > > > > > Opa, muito bem explicado Rafael, é exatamente assim que eu fiz > > > também. :) > > > > > > > > > > > > Só uma dica: a "$pagina_atual = base_url() . > > > $this->uri->uri_string();" > > > > > > pode usar diretamente a função "uri_string()"! > > > > > > > > > > > > Gostei do jeito que vc verifica o loop infinito; eu fiz assim: > > > > > > http://pastebin.com/nxziwS0u > > > > > > > > > > > > Em 28 de fevereiro de 2012 16:15, Rafael V. de Oliveira < > > > > > > [email protected]> escreveu: > > > > > > > > > > > >> Existem diversas formas, como hooks (o teu problema é quase > certo > > a > > > > > falta > > > > > >> de carregar o helper), pelo construtor da classe, etc… > > > > > >> > > > > > >> A solução mais elegante que encontrei foi essa: > > > > > >> > > > > > > > > > > > http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY > > > > > >> > > > > > >> Resumindo em miúdos, ao invés de todos os controllers herdarem o > > > > > >> MY_Controller, eles podem ou herdar o Admin_controller ou > > > > > Public_controller > > > > > >> (ambos os nomes podem ser alterados). E estas duas classes > (podem > > > ser > > > > > mais) > > > > > >> herdam o MY_Controller. > > > > > >> > > > > > >> No Admin_controller eu coloquei assim (no constructor): > > > > > >> > > > > > >> //Páginas que não necessitam estar logado > > > > > >> $paginas_login = array('admin/login', 'admin/logout'); > > > > > >> //Dê uma olhada no user_guide > > > > > >> $pagina_atual = base_url() . $this->uri->uri_string(); > > > > > >> > > > > > >> //Evita o loop eterno > > > > > >> if ( ! in_array($pagina_atual, $paginas_login) ) > > > > > >> { > > > > > >> if ( ! $this->session->userdata('login_id') ) > > > > > >> { > > > > > >> //Atenção ao $paginas_login > > > > > >> redirect('admin/login'); > > > > > >> } > > > > > >> } > > > > > >> > > > > > >> É por isso que quando vejo o pessoal reclamando que o CI não tem > > > > > controle > > > > > >> de acesso, eu dou risada. É tão simples implementar que a melhor > > > opção é > > > > > >> deixar a critério do desenvolvedor. > > > > > >> > > > > > >> É só prestar atenção a nome de sessions e o que está no autoload > > ou > > > não. > > > > > >> Como o helper url eu utilizo quase sempre, ele está no autoload. > > > > > >> > > > > > >> Em 28/02/2012, às 16:51, Nino Baldo escreveu: > > > > > >> > > > > > >>> Ola pessoal, > > > > > >>> > > > > > >>> Gostaria de saber como validar se o usuário está logado ou não > em > > > todas > > > > > >> as > > > > > >>> telas e caso não esteja direcionar para o controller de login? > > > > > >>> > > > > > >>> Até agora já fiz um hook de "pre_controller", mas não consigo > > > > > >> redirecionar, > > > > > >>> pois quando uso o "redirect('pagina')" ele me exibe esse erro: > > > Fatal > > > > > >> error: > > > > > >>> Call to undefined function redirect() > > > > > >>> > > > > > >>> > > > > > >>> Att, > > > > > >>> > > > > > >>> *Álvaro Vilobaldo Rios da Silva* > > > > > >>> > > > > > >>> mail to: [email protected] <[email protected]> > > > > > >>> *Analyst Programmer* > > > > > >>> > > > > > >>> *São Paulo and Region, Brazil* > > > > > >>> _______________________________________________ > > > > > >>> [email protected] > > > > > >>> http://www.codeigniter.com.br > > > > > >>> > > > > > > > > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > > >>> > > > > > >>> --------------------------- > > > > > >>> Oportunidade de negócio > > > > > >>> http://www.franquiasargohost.net > > > > > >>> --------------------------- > > > > > >> > > > > > >> _______________________________________________ > > > > > >> [email protected] > > > > > >> http://www.codeigniter.com.br > > > > > >> > > > > > > > > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > > >> > > > > > >> --------------------------- > > > > > >> Oportunidade de negócio > > > > > >> http://www.franquiasargohost.net > > > > > >> --------------------------- > > > > > >> > > > > > > _______________________________________________ > > > > > > [email protected] > > > > > > http://www.codeigniter.com.br > > > > > > > > > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > > > > > > > > > --------------------------- > > > > > > Oportunidade de negócio > > > > > > http://www.franquiasargohost.net > > > > > > --------------------------- > > > > > > > > > > > > > > > _______________________________________________ > > > > > [email protected] > > > > > http://www.codeigniter.com.br > > > > > > > > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > > > > > > > --------------------------- > > > > > Oportunidade de negócio > > > > > http://www.franquiasargohost.net > > > > > --------------------------- > > > > > > > > > _______________________________________________ > > > > [email protected] > > > > http://www.codeigniter.com.br > > > > > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > > > > > --------------------------- > > > > Oportunidade de negócio > > > > http://www.franquiasargohost.net > > > > --------------------------- > > > > > > > > > _______________________________________________ > > > [email protected] > > > http://www.codeigniter.com.br > > > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > > > --------------------------- > > > Oportunidade de negócio > > > http://www.franquiasargohost.net > > > --------------------------- > > > > > _______________________________________________ > > [email protected] > > http://www.codeigniter.com.br > > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > > > --------------------------- > > Oportunidade de negócio > > http://www.franquiasargohost.net > > --------------------------- > > > _______________________________________________ > [email protected] > http://www.codeigniter.com.br > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > > --------------------------- > Oportunidade de negócio > http://www.franquiasargohost.net > --------------------------- > _______________________________________________ [email protected] http://www.codeigniter.com.br http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net ---------------------------

