Eric,

          Vamos supor que você queira complementar uma classe do core,
por exemplo a classe Output, nesse caso você criaria a classe
MY_Output e os métodos dessa sua nova classe estariam disponíveis
sempre quando a classe output estiver instanciada.

         Por exemplo: se na sua classe MY_Output você criou um método
formata_texto($str). voce poderá chamar o seu método da seguinte
forma: $this->output->$formata_texto($string);

         Outra situação é quando você quer criar uma nova nova
classe(com um nome diferente) que estenda uma classe do core, ou seja
que herde seus métodos e atributos, nesse caso você precisará
instanciar(load) essa nova classe antes de aplicar seus métodos e essa
nova classe ira herdar os métodos e atributos da classe que extendeu.

Isso responde a sua pergunta, ou eu tb entendi errado?


[]s
Rafael Bomfim



2010/5/4 Eric Saboia <[email protected]>:
> 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
>
>

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

Responder a