在核心PHP中调用codeigniter helper函数


Call codeigniter helper function in core PHP

我制作了一个助手类authentication_helper,其中我制作了一个检查会话的单个函数varify_session()。我正在使用jquery,其中我使用setTimeout通过ajax调用调用一些函数,但这个函数的调用去一个核心PHP代码类,现在当我调用varify_session()在核心PHP然后它不工作,但当我在codeigniter类调用然后它的工作,所以我应该做什么调用它在核心PHP代码,这样它也检查会话1 setTimeout函数。我的帮助文件在

的方向
/www
  /sample
    /application
      /helpers
         /authentication_helper
    /controller
      /core_php.php
      /other php clases 

authentication_helper里面的代码是这样的

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
function varify_session(){
    $CI = &get_instance();
    $user_session_id = $CI->session->userdata('logged_in');
    if($user_session_id ==  '') {
        redirect('login');
    }
}
?>

CodeIgniter中的Helper文件只是嵌入函数的php文件。它们没有什么特别的"CodeIgniter"。

你只需要把这个特定的文件包含在你的"核心PHP代码类"中:

// inside your core php class
include('path/to/my/ci/application/helper/authentication_helper.php');

OK,在阅读了一些评论并更仔细地研究了你的问题之后,我注意到你的结构没有正确设置以使用CodeIgniter的方式来设计使用。

我的第一行问题是:"core_php.php文件实际做什么?"你想把它当作控制器吗?或者你只是把它当作一个对象?"

  • 如果你试图使用它作为一个控制器-然后不要。通过扩展CI_Controller将其转换为实际的CodeIgniter控制器类。然后,您将像任何其他帮助器一样加载身份验证帮助器:$this->load->helper('authentication');

  • 如果您只是将其用作对象(我假设是这种情况),然后将其放入libraries文件夹并从CodeIgniter加载的文件中调用它(这意味着您有可用的CI实例)。将该文件放入libraries文件夹后,可以使用$this->load->library('core_php');加载它——然后可以使用:$this->core_php->method_name();从该文件调用一个方法。在需要它的core_php方法中,您将加载身份验证助手:$this->load->helper('authentication');

以这种方式设置文件将利用CodeIgniter加载机制并让您访问CI实例-这就是当您获得Trying to get property of non-object错误时的问题所在(您试图从CI引导之外获得CI实例)。

如果这个设置没有帮助,那么我们需要查看相关文件的实际内容