• CodeIgniter类库


    所有的类库文件存放在system/libraries 文件夹。大多数情况下你需要预先在controller中初始化后才能使用它们:

    $this->load->library('class name');

    class name是你想要使用的类名。例如,要载入“表单验证类”,你可以这样做:

    $this->load->library('form_validation');

    建立你的类库文件

    你的类库文件必须保存在 application/libraries 文件夹,CodeIgniter将在这个文件夹中寻找并初始化它们。

    命名约定
        文件名首字母大写。例如:  Myclass.php
        类声明首字母大写。例如:  class Myclass
        类的名字和文件名应相同。
    所有的类应有基础原型

    <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
    
    class Someclass {
    
        public function some_function()
        {
        }
    }
    
    /* End of file Someclass.php */
    在所有的Controller 函数中,你可以用以下的标准方式初始化你的类:
    $this->load->library('someclass');

    当 someclass 是文件名时,不用加上".php"扩展名.这里名字不分大小写.
    一旦你自定义的类加载完毕,你可以通过以下方式调用类,注意使用 小写 的名字:

    $this->someclass->some_function();  // 对象的实例名永远都是小写的
    当初始化类库时,你可以通过第二个参数动态的传递数组到类的构造函数中去:
    $params = array('type' => 'large', 'color' => 'red');
    $this->load->library('Someclass', $params);
    当你使用这个特性时,你必须为类的构造函数加上参数:
    <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
    
    class Someclass {
    
        public function __construct($params)
        {
            // Do something with $params
        }
    }
    
    ?>

    要在你自定义的类库中访问CodeIgniter的原始资源,你必须使用 get_instance() 函数。一般来说在你的控制器函数中你可以通过 $this 调用任何可用的CodeIgniter函数:

    $this->load->helper('url');
    $this->load->library('session');
    $this->config->item('base_url');

    当你在自定义类中想使用CodeIgniter原始类时,你可以这样做:
    首先,定义CodeIgniter对象赋给一个变量:

    $CI =& get_instance();

    一旦定义某个对象为一个变量,你就可以使用那个变量名取代 $this:

    $CI =& get_instance();
    
    $CI->load->helper('url');
    $CI->load->library('session');
    $CI->config->item('base_url');

    替换原始类

    简单的将你自己的类命名为与原始类一样就能使CodeIgniter使用这个新类.要使用这个特性,文件名与类声明必须与原始类完全一致。例如,要替换原始的 Email 类库。你必须创建一个文件application/libraries/Email.php, 并按如下方式声明类:

    class CI_Email 
    {
    
    }

    扩展现有类

    如果你需要在现有类库中加入一两个新的功能,那就完全不必要替换整个类库文件.你只需简单地扩展(继承)现有的类,扩展一个类就像在类中增加一些例外:
        扩展的类必须申明由父类扩展而来。
        新扩展的类所在的文件必须以 MY_ 为前缀(这个选项是可配置的)。
    例如,要扩展原始类Email类你要建立文件application/libraries/MY_Email.php,并按如下方式在文件中声明:

    class MY_Email extends CI_Email 
    {
    
    }

    要载入扩展子类,你应该使用标准字符名,请不要使用前缀,例如,要载入上文说过的email扩展子类,你应该这样写:

    $this->load->library('email');
  • 相关阅读:
    Log4net 在framework Client中编译失败
    (MVC)从客户端中检测到有潜在危险的 Request.Form 值
    RichText设置高亮 (未完)
    1转换为00001等
    简单的MDX案例及说明(3)
    兼容型Word 并带传统读法
    Visual Studio 2010添加新项缺失[ADO.NET 实体数据模型]解决方法
    SQL Server 的优化方法(续转)
    两个有用的委托:Func和Action
    SQL Server 的优化方法(转)
  • 原文地址:https://www.cnblogs.com/iamsupercola/p/4687858.html
Copyright © 2020-2023  润新知