Codeigniter 扩展核心类

在项目中我们通常需要一个自己的基类控制器,一般命名为 BaseController,在其他框架如 Laravel 框架中,我们只需要新建一个 BaseController 让他继承项目初始的基类就可以了,示例

 但在 Codeigniter 中,这种方式是行不通的,在 CI 中有另外一套扩展核心类库的方法, CI_Controller 默认不属于原生类库,它是一个系统类库,是一个核心类,不能使用创建类库中的扩展原生类库的方法去扩展,而是应该使用创建核心系统类中的扩展核心类的方法去扩展这个类.将需要扩展的核心类放入目录 application/core下,示例

 代码示例

<?php

    /**
     * Created by PhpStorm.
     * User: nwei
     * Date: 2018/10/9
     * Time: 10:11
     *
     *    .--,       .--,
     *   ( (  \.---./  ) )
     *    '.__/o   o\__.'
     *       {=  ^  =}
     *        >  -  <
     *       /       \
     *      //       \\
     *     //|   .   |\\
     *     "'\       /'"_.-~^`'-.
     *        \  _  /--'         `
     *      ___)( )(___
     *     (((__) (__)))    高山仰止,景行行止.虽不能至,心向往之.
     *
     */
    class MY_Controller extends CI_Controller {

        /**
         * MY_Controller constructor.
         */
        public function __construct() {
            parent::__construct();
        }
    }

 扩展的核心类会自动加载,不需要手动加载,使用示例

<?php

    /**
     * Created by PhpStorm.
     * User: nwei
     * Date: 2018/9/27
     * Time: 15:28
     *
     *    .--,       .--,
     *   ( (  \.---./  ) )
     *    '.__/o   o\__.'
     *       {=  ^  =}
     *        >  -  <
     *       /       \
     *      //       \\
     *     //|   .   |\\
     *     "'\       /'"_.-~^`'-.
     *        \  _  /--'         `
     *      ___)( )(___
     *     (((__) (__)))    高山仰止,景行行止.虽不能至,心向往之.
     *
     */
    class CustomHttp extends MY_Controller {

        public function index() {
            echo "customhttp--index";
        }
    }

 

参考

https://stackoverflow.com/questions/21399248/class-my-controller-not-found-after-download-from-webserver

https://codeigniter.org.cn/user_guide/general/core_classes.html

https://codeigniter.org.cn/user_guide/general/creating_libraries.html

 

猜你喜欢

转载自blog.csdn.net/xiaobinqt/article/details/82995540