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
---------------------------

Responder a