【问题标题】:CodeIgniter Third party class not loadingCodeIgniter 第三方类未加载
【发布时间】:2014-06-06 11:21:33
【问题描述】:

我正在尝试实现仪表板小部件类(可在此处找到:http://harpanet.com/programming/php/codeigniter/dashboard/index#installation),但它给了我错误Unable to load the requested class

我试图在自动加载中添加这个类以及在我的控制器$this->load->library('dash') 中添加这个类,但这也给出了同样的错误。

我检查了dash.php 并找到下面的方法private function __example__() 但无法理解开发人员在评论中所说的内容。

class Dash
{
    private function __example__()
    {
        /*
         * This function is purely to show an example of a dashboard method to place
         * within your own controller.
         */

        // load third_party hArpanet dashboard library
        $this->load->add_package_path(APPPATH.'third_party/hArpanet/hDash/');
        $dash =& $this->load->library('dash');
        $this->load->remove_package_path(APPPATH.'third_party/hArpanet/hDash/');

        // configure dashboard widgets - format: type, src, title, cols, alt (for images)
        $dash->widgets = array(

                    array('type'=>'oop',     'src'=>'test_dash',         'title'=>'Test OOP Widget',    'cols'=>3),

                    // if 'title' is set to FALSE, the title block is omitted entirely
                    // note: this is an 'html' widget but is being fed content from a local method
                    array('type'=>'html',     'src'=>self::test_method(), 'title'=>false,    'cols'=>3),

                    array('type'=>'file',     'src'=>'saf_inv.htm',         'title'=>'Safety Investigation'),

                    // multi-content widget - set widget title in outer array (also note use of CI anchor to create a link)
                    array('title'=>anchor('tz', 'TARGET ZERO'),
                            // sub-content follows same array format as single content widget
                            // 'img' content can also have an 'alt' text
                            array('type'=>'img',    'src'=>'saf_tzout.gif',      'alt'=>'Action Completed'),
                            array('type'=>'file',    'src'=>'saf_tz.htm'),
                            array('type'=>'file',    'src'=>'ave_close.htm',     'title'=>'Average Time to Close')
                            ),

                    array('type'=>'file',    'src'=>'saf_meet.htm',        'title'=>'Safety Meeting'),
                    array('type'=>'file',    'src'=>'saf_acc.htm',        'title'=>'Accident Investigation'),
                    array('type'=>'file',    'src'=>'saf_hazmat.htm',     'title'=>anchor('hazmat', 'HAZMAT')),
                    array('type'=>'file',    'src'=>'saf_cont.htm',         'title'=>'Loss of Containment'),
                    array('type'=>'file',    'src'=>'saf_worksinfo.htm',    'title'=>'Works Information'),

                    // an action widget - 'clear' will generate a blank widget with a style of clear:both
                    array('type'=>'clear'),

                    // multi-content widget - width can be set using the 'cols' param in outer array
                    array('title'=>'RAG Report', 'cols' => 2,

                            array('type'=>'file',    'src'=>'saf_rag.htm'),
                            array('type'=>'img',    'src'=>'ProcSaf.gif')),

                    array('type'=>'file',    'src'=>'saf_chrom.htm',        'title'=>'Chrome checks'),
                );

        // populate the view variable
        $widgets = $dash->build('safety');

        // render the dashboard
        $this->load->view('layout_default', $widgets);

    }
...................

} // end of Dash class

安装路径为root/application/third_party/hArpanet/hDash/libraries/dash.php

如何将此类加载到我的系统并使用小部件?

【问题讨论】:

  • 你试过库类名CI_Dash

标签: php codeigniter


【解决方案1】:

你必须创建一个初始化第三方类的库:

例如:

--在库中创建一个名为mydash.php的文件--

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MyDash
{
    public function __construct()
    {
        require_once APPPATH.'third_party/hArpanet/hDash/libraries/dash.php';
    }
}

使用加载库:

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

那么你就可以使用 Dash 类了。还可以在自动加载中加载库。

谢谢...

【讨论】:

  • 是的,我也是这样做的。感谢您的支持。
【解决方案2】:

很抱歉听到您遇到问题,(我刚刚注意到这个 SO 条目)。感谢 ReNiSh 的解决方法,非常感谢。

您确实需要使用库方法来实现 hDash 的“require_once”。我现在写了一个安装和运行 hDash 的演练,你可以在这里找到:http://harpanet.com/programming/php/codeigniter/dashboard/walkthrough

另外,请注意,截至 2014 年 2 月 3 日,hDash 已更新至 1.2 版。

【讨论】:

    【解决方案3】:

    我正在使用来自http://pdfparser.org/的PDF Parser

    我创建文件 application/libraries/pdf.php

    class Pdf
    {
        public function __construct()
        {
            require_once APPPATH."/third_party/pdfparser.php";
        }
    }
    

    然后我创建文件 application\third_party\pdfparser.php

    if (!defined('pdfparser')) {
        define('pdfparser', dirname(__FILE__) . '/');
        require(pdfparser . 'pdfparser/autoload.php');
    }
    

    最后,我在 Directory 中包含 PDF Parser Library => application\third_party\pdfparser

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-02
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    相关资源
    最近更新 更多