• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Where to put plain object classes?

#1
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 {

    private 
$id;

    public function 
getID() {
        return 
$this->id;
    }



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?
Reply

#2
You have to put it into /application/library because its your own class.

Reply

#3
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.
Reply

#4
(12-02-2014, 07:48 AM)dmyers Wrote: 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.

Thank you all! There's an alternative way to instantiate multiple objects without calling first $this->load->library('PlainObject') ?
Reply

#5
(12-02-2014, 12:50 PM)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
Reply

#6
(12-02-2014, 12:50 PM)geekita Wrote:
(12-02-2014, 07:48 AM)dmyers Wrote: 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.

Thank you all! There's an alternative way to instantiate multiple objects without calling first $this->load->library('PlainObject') ?

Why would you want to do it any way other than how it was designed to work?
Reply

#7
(12-02-2014, 03:21 PM)Chroma Wrote: Why would you want to do it any way other than how it was designed to work?

Why would you create a singleton if you don't need it?
Reply

#8
(12-02-2014, 03:24 PM)includebeer Wrote:
(12-02-2014, 03:21 PM)Chroma Wrote: Why would you want to do it any way other than how it was designed to work?

Why would you create a singleton if you don't need it?

That's the point!
Reply

#9
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.
Reply

#10
(12-02-2014, 04:36 PM)ivantcholakov Wrote: But when the target class is static... What then?

What's wrong with require_once ?
We don't need to reinvent the wheel just because we use a framework. Tongue
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Users browsing this thread:
1 Guest(s)


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2019 MyBB Group.