Não há necessidade de carregar no autoload classes do core do CI (toda classe que tiver CI_). Antigamente as classes core não tinham prefixo nenhum. Essa modificação é recente, da versão 2.0 para frente. Ainda temos aqui sistema no 1.7.2 e 1.7.1
O MY_ pode ser modificado no config.php. Eu deixo como está pois não me faz confusão :) Entre helpers e libraries, eu faço assim (não quer dizer que está certo ou errado) Se estou na view, eu tento sempre utilizar um helper. Se estou no controller, tanto faz. Em relação a IDE, o Netbeans é uma das mais completas. Só acho muito pesado. Aqui eu trabalho com o Coda (Mac OSX). Se estiver no Windows, recomendo o Intype. Mas não faço debug's pelo Netbeans. Prefiro fazer o debug a la 'old school'. Vou debugando linha a linha. Para CRUD, tem o Grocery. Eu não uso, mesmo porque quase sempre temos que fazer o front-end e o back-end. Então um CRUD quase que não faz sentido. Mas isso é aqui. Atenção para não desviarmos demais do título do e-mail. Em 01/03/2012, às 14:34, Nino Baldo escreveu: > 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 > --------------------------- _______________________________________________ [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 ---------------------------

