Bom, ai só Programação Orientado a Aspecto. Nunca programei AOP em php, mas é a unica forma que conheço de "incluir" código num método sem mexer necessariamente na classe. Mas o paradigma é esse!
Reforçando que é totalmente desaconselhável não mexer no arquivo do core do framework. Att, Vinicius Cruz 71 8821-8799 http://www.zime.com.br/ Em 26 de fevereiro de 2011 03:44, Pablo Augusto <[email protected]>escreveu: > Desculpe, me enganei. > > Nao li direito seu email. > Nao e isso nao, extendendo o MY_Controller sim, funciona, mas ai estou nao > extendendo classe padrao. > Queria uma forma de fazer isso mas sem ter de extender a classe > MY_Controller e sim a classe CI_Controller > entendeu? > > Ou seja, adicionar de alguma forma pela Application essa funcao no > __Construct do CI_Controller original. > > Acho que agora deu pra entender ne? =) > > > > > * > * > *Pablo Augusto > SEO | SEM | Marketing Digital > > * > *Me siga no Twitter:* @pabloaugusto <http://twitter.com/pabloaugusto> > *Artigos sobre Otimização de sites <http://webtags.com.br/seo>, Marteking > Digital e Mídias Sociais:* WebTags <http://webtags.com.br> > MSN: [email protected] > SKYPE: [email protected] > EMAIL: [email protected] > > [image: Linkedin] <http://linkedin.com/in/pabloaugusto> [image: > Twitter]<http://twitter.com/pabloaugusto> > [image: Facebook] <http://facebook.com/pabloaugusto> [image: > Flickr]<http://flickr.com/photos/pabloaugusto> [image: > Youtube] <http://youtube.com/pabloaugustoo> [image: > FormSpring]<http://formspring.me/opabloaugusto> [image: > LastFM] <http://lastfm.com.br/user/pabloaugustoo> [image: > DeviantART]<http://deviantart.com/pabloaugustoo> [image: > Tumblr] <http://pabloaugusto.tumblr.com/> [image: > Vimeo]<http://vimeo.com/pabloaugusto> [image: > del.icio.us] <http://del.icio.us/pabloaugusto> [image: > Slideshare]<http://slideshare.net/pabloaugusto> [image: > Friendfeed] <http://friendfeed.com/pabloaugusto> > > > > 2011/2/26 Pablo Augusto <[email protected]> > > Entendeu perfeitamente, >> Ja tentei dessa forma e de diversas outras, colocando em outras pastas e >> pesquisando na net, o problema e que nao funciona =/ >> >> >> >> >> * >> * >> *Pablo Augusto >> SEO | SEM | Marketing Digital >> >> * >> *Me siga no Twitter:* @pabloaugusto <http://twitter.com/pabloaugusto> >> *Artigos sobre Otimização de sites <http://webtags.com.br/seo>, Marteking >> Digital e Mídias Sociais:* WebTags <http://webtags.com.br> >> MSN: [email protected] >> SKYPE: [email protected] >> EMAIL: [email protected] >> >> [image: Linkedin] <http://linkedin.com/in/pabloaugusto> [image: >> Twitter]<http://twitter.com/pabloaugusto> >> [image: Facebook] <http://facebook.com/pabloaugusto> [image: >> Flickr]<http://flickr.com/photos/pabloaugusto> [image: >> Youtube] <http://youtube.com/pabloaugustoo> [image: >> FormSpring]<http://formspring.me/opabloaugusto> [image: >> LastFM] <http://lastfm.com.br/user/pabloaugustoo> [image: >> DeviantART]<http://deviantart.com/pabloaugustoo> [image: >> Tumblr] <http://pabloaugusto.tumblr.com/> [image: >> Vimeo]<http://vimeo.com/pabloaugusto> [image: >> del.icio.us] <http://del.icio.us/pabloaugusto> [image: >> Slideshare]<http://slideshare.net/pabloaugusto> [image: >> Friendfeed] <http://friendfeed.com/pabloaugusto> >> >> >> >> 2011/2/26 Vinicius Cruz <[email protected]> >> >> Cara, desculpe se eu não entendi direito seu email, mas é devido ao >>> horário :p >>> >>> Bem, o principio é o mesmo usado na library lang. Você cria um arquivo >>> MY_Controller e extender o CI_Controller. Nos controllers de seu sistema, >>> você extende o MY_Controller. Ficaria algo assim: >>> >>> class Produtos extends *MY_Controller* { >>> function __construct() >>> { >>> parent::__construct(); >>> //a linha abaixo considera o lang e session carregando >>> automaticamente >>> $this->lang->change($this->session->userdata('language')); >>> } >>> } >>> >>> Veja o item *Extending Native Libraries* >>> http://codeigniter.com/user_guide/general/creating_libraries.html >>> >>> Entendi corretamente? >>> >>> Att, >>> Vinicius Cruz >>> 71 8821-8799 >>> http://www.zime.com.br/ >>> >>> >>> >>> Em 26 de fevereiro de 2011 03:25, Pablo Augusto >>> <[email protected]>escreveu: >>> >>>> >>>> Bom dia pessoal. >>>> >>>> Estou com a seguinte dificuldade. >>>> Quero executar uma funcao em qualquer controller do sistema, essa funcao >>>> deve ser repassada para todas >>>> as classe filhas que estenderem a classe CI_Controller >>>> >>>> ex: >>>> >>>> class Produtos extends CI_Controller { >>>> function __construct() >>>> { >>>> parent::__construct(); >>>> } >>>> } >>>> >>>> Ou seja, essa classe devera herdar um elemento adicional na funcao >>>> __construct vindo da modificacao >>>> que pretendo fazer na classe CI_Controller original. Que pode ser por >>>> exemplo uma verificacao se o usuario >>>> esta logado via sessions. >>>> >>>> Pois bem, a classe CI_Lang de manipulacao de idiomas eu consegui >>>> extender tranquilamente inserindo uma >>>> funcao extra na funcao principal quando criei o arquivo MY_Lang na pasta >>>> application/core. >>>> A nova funcao que inseri no arquivo MY_Lang.php e carregada >>>> automaticamente quando chamo $this->lang->nova_funcao(); >>>> >>>> Preciso fazer com que toda nova classe que extenda a classe >>>> CI_Controller herde a funcao abaixo no __construct por >>>> padrao alguem sabe como posso fazer isso? >>>> >>>> parent::__construct(); >>>> *$this->lang->change($this->session->userdata('language'));* >>>> * >>>> * >>>> * >>>> --------------------------------------------------------------------------------------------------------------------- >>>> * >>>> >>>> Tentei de todas as maneiras e nao consegui (sem alterar o arquivo >>>> CI_Controler.php e adicionar a funcao no __Construct) >>>> fazer mesmo processo que fiz com a classe CI_Lang na classe >>>> CI_Controller. >>>> >>>> A funcao nao carrega de forma alguma. Ja se eu altero diretamente o >>>> arquivo CI_Controller.php (pasta system/core) >>>> funciona perfeitamente. >>>> >>>> veja como fica o arquivo da pasta system modificado que funciona 100%: >>>> * >>>> >>>> class CI_Controller { >>>> >>>> private static $instance; >>>> >>>> /** >>>> * Constructor >>>> */ >>>> public function __construct() >>>> { >>>> self::$instance =& $this; >>>> >>>> // Assign all the class objects that were instantiated by the >>>> // bootstrap file (CodeIgniter.php) to local class variables >>>> // so that CI can run as one big super object. >>>> foreach (is_loaded() as $var => $class) >>>> { >>>> $this->$var =& load_class($class); >>>> } >>>> >>>> $this->load =& load_class('Loader', 'core'); >>>> >>>> $this->load->_base_classes =& is_loaded(); >>>> >>>> $this->load->_ci_autoloader(); >>>> >>>> log_message('debug', "Controller Class Initialized"); >>>> >>>> // FIXME: arrumar maneira de extender o construct de todos os controles >>>> na application de forma nativa para nao precisar alterar o system/core >>>> $this->lang->change($this->session->userdata('language')); >>>> >>>> } >>>> * >>>> >>>> * >>>> * >>>> *Pablo Augusto >>>> SEO | SEM | Marketing Digital >>>> >>>> * >>>> *Me siga no Twitter:* @pabloaugusto <http://twitter.com/pabloaugusto> >>>> *Artigos sobre Otimização de sites <http://webtags.com.br/seo>, >>>> Marteking Digital e Mídias Sociais:* WebTags <http://webtags.com.br> >>>> MSN: [email protected] >>>> SKYPE: [email protected] >>>> EMAIL: [email protected] >>>> >>>> [image: Linkedin] <http://linkedin.com/in/pabloaugusto> [image: >>>> Twitter] <http://twitter.com/pabloaugusto> [image: >>>> Facebook]<http://facebook.com/pabloaugusto> [image: >>>> Flickr] <http://flickr.com/photos/pabloaugusto> [image: >>>> Youtube]<http://youtube.com/pabloaugustoo> [image: >>>> FormSpring] <http://formspring.me/opabloaugusto> [image: >>>> LastFM]<http://lastfm.com.br/user/pabloaugustoo> [image: >>>> DeviantART] <http://deviantart.com/pabloaugustoo> [image: >>>> Tumblr]<http://pabloaugusto.tumblr.com/> [image: >>>> Vimeo] <http://vimeo.com/pabloaugusto> [image: >>>> del.icio.us]<http://del.icio.us/pabloaugusto> [image: >>>> Slideshare] <http://slideshare.net/pabloaugusto> [image: >>>> Friendfeed]<http://friendfeed.com/pabloaugusto> >>>> >>>> >>>> _______________________________________________ >>>> [email protected] >>>> http://www.codeigniter.com.br >>>> http://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://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://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://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br --------------------------- Oportunidade de negócio http://www.franquiasargohost.net ---------------------------

