Acho que fugimos um pouco do assunto, mas gostaria de agradecer a todos. Qualquer coisa eu posto novamente.
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 13:33, Nando Araujo <[email protected]>escreveu: > Com certeza se formos desviar o assunto temos que criar outra thread, bem > lembrado; mas só pra concluir eu tb uso o netbeans tanto no win qnto no > linux e pra depurar eu uso o x-debug, mas claro que vc pode usar o próprio > debug do CI dependendo da situação pra não ser tão 'old school', apesar de > q vira e mexe e eu uso o var_dump msm... ^^ > > Helper e libraries são parecidos não te preocupa, mas até ja vi artigos em > inglês explicando a diferença, bem barbada. > No meu caso é parecido com o que Rafael falou, e pra complementar, uso > library geralmente qndo vejo que há necessidade de alguma abordagem via > orientação a objetos e pra coisas mais simples e que às vezes precisa não > depender do escopo de aonde será chamado daí uso helpers.. mas se vc criou > um helper tb pode chamar via $this->load->helper() e depois usar as funções > que tem dentro dele, mas como vc instanciou o grud_helper ele é uma Class, > e logo, é uma library (que vc pode estar imaginando que é um helper hehehe) > mas pra descobrir isso é simples, só ver qual o propósito dele, em qual > arquivo/pasta está e como vc chamou ele (se deu um include na unha em algum > lugar ou se usou o $this->load->algumacoisa).. > > No início é meio nebuloso mas não te preocupa que a curva de aprendizagem > do CI é muito pequena! :) > > > Em 1 de março de 2012 13:17, Jonatan Froes <[email protected] > >escreveu: > > > Nossa, eu sou meio que viciado em helpers... crio helpers pra tudo! > > arrumar datas, mensagens, vl em R$... > > > > Meu CI é todo "tunado" > > > > Em 1 de março de 2012 12:26, Rafael V. de Oliveira > > <[email protected]>escreveu: > > > > > 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 > > > --------------------------- > > > > > _______________________________________________ > > [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 ---------------------------

