Ok Eric.

 

Na verdade, tu podes extender com o nome que bem quiser!

 

Um outro exemplo (este mais prático, eu uso e recomendo)

 

Dentro da minha pasta libraries, eu tenho um ficheiro chamado Template.php

Eu faço autoload nele, um vez que ao invés de usar a porcaria do
$this->load->view(‘view_name’, array $data) eu uso

$this->template->load(‘templates/default.php’, ‘view_name’, array $data);

E a view_name eu já não faço mais nada. O template completo está dentro de
templates/default.php

Vantagens?

Eu posso ter n templates. Inclusive para gestor de conteúdos e site.
Inclusive posso trocar o template para época de festas, por exemplo if
(date(‘m’) == 12 ) $template = ‘ho_ho_ho.php’;

 

Acredito que desta forma vá resolver teu problema.

 

Abraços!

 

De: [email protected]
[mailto:[email protected]] Em nome de Eric Saboia
Enviada em: terça-feira, 4 de maio de 2010 18:38
Para: CodeIgniter Brasil
Assunto: Re: [CodeIgniter] RES: estendendo classes do core

 

Rafael,

Eu preciso exatamente do exemplo que você deu do MY_Blog, mas eu tinha
entendido uma vez que eu tinha que seguir a nomeclatura da classe que eu
queria estender.

Por exemplo, se eu fosse estender o Controller do core, teria que usar
My_Controller, sendo assim não poderia criar MY_Blog e estender de
Controller, mas se isso realmente funcionar, ta resolvido o problema.. eu só
quero poder criar N estensões de classes do core.

2010/5/4 Rafael V. de Oliveira <[email protected]>

Eric, confesso que não estou a conseguir entender o que queres.

 

Nós aqui desenvolvemos n sites por mês. E muitos deles têm muita coisa em
comum, sejam no Controller ou no Model.

Eu extendo o controller e uso o que preciso nele. O resto é o próprio
framework. Assim como nos helpers.

Por exemplo, o url_title não trabalha com acentuação. Extende ele e
modifique apenas a function url_title. Se bem que parece-me que na versão
2.0 eles já estão a desenvolver uma solução para acentuação.

 

Tente uma coisa do gênero:

- Na pasta libraries, crie a classe com o nome que queres. Por exemplo:
MY_Blog.php

- Quando precisares no controller funções de blog, faças algo assim: class
Blog extends MY_Blog {

 

Talvez dê jeito para ti.

 

Abraços

 

 

De: [email protected]
[mailto:[email protected]] Em nome de Eric Saboia
Enviada em: terça-feira, 4 de maio de 2010 14:42
Para: CodeIgniter Brasil
Assunto: Re: [CodeIgniter] estendendo classes do core

 

+-.. eu não queria deixar na pasta controllers, queria seguir o padrão do CI
de colocar dentro da pasta libraries, sendo que ele me obriga a usar a
nomeclatura Prefixo_Classe, no caso seria MY_Controller, mas se eu for
seguir a nomeclatura, só consigo criar uma estensão de core..

Talvez no caso de Controllers até funcione do jeito que você ta falando..
mas se fosse outras classes, como o CI_Input por exemplo?

2010/5/4 Edinho Almeida <[email protected]>

Oi Eric,

 

Já fiz na correria:

Na pasta controllers mesmo.

base.php:

class Base extends Controller {

function Base(){ parent::Controller(); }

}

-------------------------------------------

include_once('base.php');

class Public extends Base {

function Public(){ parent::Base(); }

}

-------------------------------------------

include_once('base.php');

class Admin extends Base {

function Admin(){ parent::Base(); }

}

-------------------------------------------

include_once('admin.php');

class Users extends Admin {

function Users(){ parent::Admin(); }

}

------------------------------------------

 

é isso ?

 

Abs

Edinho Almeida
11 8018-8019


_______________________________________________
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