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?
谢谢!
在这种情况下,我仍在寻找最佳实践。
就我而言,我有 2 个类应该从父类扩展。(Payment - 父类;Payment_paypal - 与Paypal 交互; Payment_nganluong - 与我的国内网关Ngan Luong 交互)每个支付网关,我都必须编写一些属性,处理方法,但基本属性和主题方法几乎相同。
我的解决方案:我创建了 4 个文件:
Payment_base.php
class Payment_base {
// base properties and method
}
付款.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()
}
}
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)
希望对你有所帮助。
| 归档时间: |
|
| 查看次数: |
6393 次 |
| 最近记录: |