CodeIgniter:如何将我自己的静态函数类加载到 Controller 中?

标签 codeigniter codeigniter-3

我有一类静态函数(通用实用函数),我希望将其加载到 codeigniter 中。目前,我使用 include_once(...) 正常加载它,并且它按预期工作。

但是,我想使用 codeigniter 的方法加载它。我知道我应该将我的类文件保存到third_party目录中;我应该创建一个需要我的类的库类(将其保存在库目录中)。

下面是三个组件,但是不起作用。

1

// my class, saved at: APPPATH.'third_party/My_Class.php'
class My_Class  
  {
    public static function my_static_utility_method (  )
      {
        return "booger" ;
      }

    // ...
  }

2 - 我知道我应该创建一个遵守“库”实例化 CI 规则的包装器:

// saved at: APPPATH.'libraries/Library_Wrapper.php'
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Library_Wrapper 
  {
    public function __construct()
      {
        require_once APPPATH.'third_party/My_Class.php';
      }
  }

3 - 现在我想从我的 Controller 访问 My_Class 的静态方法:

// saved at: APPPATH.'controllers/my_controller.php'
class My_Controller extends CI_Controller
  { 

    public function __constructor( )
      {
        parent::__construct();
        $this->load->library( 'Library_Wrapper' ) ; 
      }

    public function some_function()
      {
        echo $this->My_Class->my_static_utility_method( ) ;
      }

  }

最佳答案

尝试以下步骤:

  1. 创建一个新的 Controller 文件:application/core/MY_Controller.php。在该文件中,您可以添加静态函数。

    <?php
    
    class MY_Controller extends CI_Controller {
    
        protected function static_fn1() {
            //code
        }
    }
    
  2. 需要访问静态函数的 Controller 可以扩展此类,如下所示: 文件:application/controllers/Welcome.php:

    <?php
    
    class Welcome extends MY_Controller {
    
        public function fnname() {
            //code
        }
    }
    

关于CodeIgniter:如何将我自己的静态函数类加载到 Controller 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36275172/

相关文章:

php - Codeigniter insert_batch 限制问题

php - 停用用户从 ajax 请求重定向到登录

php - 传递 javascript/ajax 参数时不会显示 codeigniter View

php - Codeigniter 3 显示所有在线用户

PHP 版本 5.4.13 错误?代码点火器错误?或者,解释?

php - MySQL Codeigniter - $this->db->query 和 CLI 结果不匹配

php - 在 MySQL 中,通过对 JSON 列执行联接从两个表中获取数据时出现问题

php - 如果没有公共(public)字段,如何使用 Codeigniter 连接三个表?

forms - Codeigniter - 设置复选框选中状态的值

php - 使用 SimpleXML 读取 RSS 提要时出现问题