• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Multiple Classes inside a library

#1
[eluser]DaveLittle[/eluser]
I'm quite new to codeigniter, and was wondering is it possible with Codeigniter to have a library which contain's multiple classes in?

I basically need to build a library to communicate with my merchant company's API. The provider has given me the code to incorporate into a hard coded site, there is basically 3 files containing multiple classes in each: PaymentSystem.php, SOAP.php and Common.php

Is it possible to create 3 libraries containing all of the classes, load them into the controller and inside my controller function and create new instance for example like this:

Code:
class Payment_controller extends CI_Controller
{
public function index()
    {
     $this->load->library('PaymentSystem');

        $rgeplRequestGatewayEntryPointList = new RequestGatewayEntryPointList();
        // Or maybe I would have to do it like this sorry I am abit of a n00b!
        $rgeplRequestGatewayEntryPointList = $this->PaymentSystem->new RequestGatewayEntryPointList();
    }

}

Or do I need to separate each class into individual libraries and load each one?

Or would i be better off just using require_once within the controller and leave the files as they are?

Or am i approaching this completely the wrong way!

#2
[eluser]Rolly1971[/eluser]
if it was me i would separate each class into it's own file. You could even drop these class files into a sub directory in the libraries folder. DOn't forget though that in order to load the lib's you would need to get the CI instance:

Code:
class someclass{
private $ci;

function __construct()
{
$this->ci =& get_instance();
}

then to load your libraries you would use:

Code:
$this->ci->load->library('subfolder/classname');

#3
[eluser]DaveLittle[/eluser]
Thanks so does that construct bit go in each of the library file?

or could i create a library which load's all of the other libraries and just put that in that file?

#4
[eluser]Rolly1971[/eluser]
which ever lib needs to load first, put your load->library call in the __construct() function. And if the libraries need access to CI classes then you put the private $ci; in it. as well i find it good practice to ensure each class has a __construct() function.

#5
[eluser]DaveLittle[/eluser]
Brilliant thank you for your help

#6
[eluser]Rolly1971[/eluser]
no problem, glad to help.


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


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