Where to put plain object classes? |
In your opinion, what's the correct place to put a plain object class file? The class I need is something similar to
PHP Code: class PlainObject { and I want to use this class wherever I need it (a controller or a model or a helper or a library, etc). Any suggestion?
Rufnex is correct, just as a side note thou:
You would of course use $this->load->library('PlainObject'); to load this class and of course this would automatically attach it to the CI super object as a singleton. $this->plainobject->method(); etc... If you need to create multiple "plain objects". You can then always $foo = new plainobject(); after calling $this->load->library('PlainObject'); because of course $this->load->library('PlainObject'); already loaded the class. You of course have the singleton still attached to the super object thou. (12-02-2014, 06:48 AM)dmyers Wrote: Rufnex is correct, just as a side note thou: Thank you all! There's an alternative way to instantiate multiple objects without calling first $this->load->library('PlainObject') ?
(12-02-2014, 11:50 AM)geekita Wrote: There's an alternative way to instantiate multiple objects without calling first $this->load->library('PlainObject') ? You can just include the file with require_once or use the loader class : http://www.codeigniter.com/user_guide/li...oader.html (12-02-2014, 11:50 AM)geekita Wrote:(12-02-2014, 06:48 AM)dmyers Wrote: Rufnex is correct, just as a side note thou: Why would you want to do it any way other than how it was designed to work?
12-02-2014, 03:36 PM
(This post was last modified: 12-02-2014, 03:37 PM by ivantcholakov. Edit Reason: A typo. )
But when the target class is static... What then?
I have another way by using an autoloader, based on the function spl_autoload_register(). Have a look at this project as an example: https://github.com/ivantcholakov/codeigniter-utf8 These classes I place within a separate folder application/classes/. Then, the autoloader may be declared and registered within a 'pre_system' hook: https://github.com/ivantcholakov/codeign...toload.php . This is just a non-standard example, you can tweak and extend the autoloader. If the third-party class is available as a Composer package - that would be the preferred choice, of course.
|
Welcome Guest, Not a member yet? Register Sign In |