如何扩展自己的库?

Glu*_*ger 2 codeigniter extend libraries

我是 codeigniter 的新手,想在我的第一个扩展另一个库的 ci 应用程序中添加一个库

class Mylib {}
Run Code Online (Sandbox Code Playgroud)

/application/libraries/Mynewlib.php:

class Mynewlib extends Mylib{}
Run Code Online (Sandbox Code Playgroud)

我必须将 Mylib.php 放在哪里以及如何加载 Mylib?

谢谢!

thi*_*405 5

在这种情况下,我仍在寻找最佳实践。

就我而言,我有 2 个类应该从父类扩展。(Payment - 父类;Payment_paypal - 与Paypal 交互; Payment_nganluong - 与我的国内网关Ngan Luong 交互)每个支付网关,我都必须编写一些属性,处理方法,但基本属性和主题方法几乎相同。

我的解决方案:我创建了 4 个文件:

  1. Payment_base.php

    class Payment_base { // base properties and method }

  2. 付款.php

    require_once (APPPATH.'/libraries/Payment_base.php'); // this is an instance of payment_base, // when you want to use base method and properties // just call $payment->... // class Payment extends Payment_base { public function __construct(){ parent::__construct() } }

  3. Payment_paypal.php

    require_once (APPPATH.'/libraries/Payment_base.php'); class Payment_paypal extends Payment_base{} ////////////////////////////////////////// require_one 'Payment_base.php'; class Payment_paypal extends Payment_base { // properties and method }

4、支付_nganluong.php

require_once (APPPATH.'/libraries/Payment_base.php');
class Payment_nganluong extends Payment_base { 
// properties and method
}
Run Code Online (Sandbox Code Playgroud)

就是这样,在控制器中:

$this->load->library('payment');
$this->load->library('payment_paypal');
$this->load->library('payment_nganluong');
$this->payment->myMethod(); // base method
$this->payment_paypal->charge(); // call to paypal to charge money
$this->payment_nganluong->checkout(); // check out with Ngan Luong
// no need to load and use payment_base
Run Code Online (Sandbox Code Playgroud)

希望对你有所帮助。