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

Responder a