Bom dia Marcus, enfim temos um texto para inaugurar o site ! :)
Tem gente por lá fazendo testes, mas acho que estão meio acanhados 
porque até o momento não publicaram nada :D

Abs

Muita sorte para nós!

Marco Telles

#############
# Pier de Ipanema ( http://www.pierdeipanema.com.br/ )
# Pier de Ipanema no Orkut ( http://www.orkut.com/Community.aspx?cmm=2923344 )
# CodeIgniter PHP framework ( http://www.codeigniter.com.br/ )
# Ubuntu The power of free software ( http://www.ubuntu-br.org/ )
# Python Programming Language ( http://www.pythonbrasil.com.br/ )



Marcus Cavalcanti escreveu:
> Na verdade esse thread não é para tirar dúvidas, e sim para dividir 
> conhecimento, como estou vendo a galera animada com site, tutoriais, 
> artigos e etc, penso que pode ser uma boa contribuição, pois com 
> certeza outras pessoas passarão por essa situação.
>
> A questão toda é, na minha aplicação eu tenho uma estrutura um pouco 
> diferente da proposta por default pelo CI.
>
> Dentro do diretório 'application' eu tenho outros 4 diretórios: 
> frontend, backend, services e models.
>
> Tanto o 'frontend' quanto o 'backend' são as aplicações em si - no 
> caso o site e o admin - com todos os diretórios comuns as aplicações, 
> como: config, controllers, helpers, libraries, models, hooks, views, 
> etc...
>
> E o diretórios 'models' e 'services' são os que guardam as informações 
> do dóminio da minha aplicação. O 'models' guarda os modelos, e o 
> 'services' é  como uma fachada (façade pattern) para a minha 
> aplicação, ou seja, nele eu tenho ruma interface comum de acesso que 
> implementam rotina de N ou mais classes, no meu caso modelos.
>
> Eu preciso deixar o 'models' e os 'services' no mesmo nível do 
> diretório das aplicações, justamente para eles poderem ser 
> compartilhados entre elas.
>
> Eis que surge o problema.
>
> Para carregar os modelos, dessa forma, basta eu usar: 
> $this->CI->load->model('../../models/Foto_Model', 'Photo', TRUE);
>
> Mas e para carregar as classes, que são como Libraries em sua 
> essência? Nesse formato acima não consigo, pois o framework retorna um 
> erro como se eu estivesse tentando istanciar o meu controller duas vezes.
>
> Solução: criei um helper, que serve como loader dessas classes.
>
> <?php
> /**
>  * ci_class_loader - load class in 'services' path
>  *
>  * @access    public
>  * @param    string
>  * @return    object
>  */   
> function ci_class_loader( $path ) {
>     require_once( $path.'.php' );
>
>     $name      = end( explode( '/', $path ) );
>     $class     = ucfirst( $name );       
>     $ci        =& get_instance();       
>     $ci->$name =& new $class();       
>    
>     return $ci->$name;
> }
> ?>
>
> Partindo do princípio que suas classes começam com letra maiúscula, de 
> acordo com os coding stardads, e que o nome do arquivo é o nome da 
> classe, mas em minúsculo (padrão CI).
>
> Exemplo de uma chamada de um service em um Controller:
>
> <?php
>
> require_once('base.php');
>
> class Test extends BaseController {
>
>     function Test()    {
>         parent::BaseController();   
>     }
>    
>     function index() {       
>         $ret = ci_class_loader(ROOTPATH."/services/teste");       
>         echo "<pre>";       
>         print_r(get_class_methods($ret));
>         echo "</pre>";               
>         die;
>     }
> }
> ?>
>
> Só para ressaltar, que esse ROOTPATH é uma constante que eu defini no 
> meu index.php, para retornar apenas o PATH e não o FULLPATH da aplicação.
>
> Se quiserem adicionar esse conteúdo ao site, sintam-se a vontade, só 
> gostaria que me mantivessem como autor.
>
> No mais, qualquer dúvida estamos aí.
>
> Boa sorte a todos no processo de implementação do site.
>
> Abraço,
>
> Marcus Cavalcanti
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>   

_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a