CodeIgniter 第三方类未加载

CodeIgniter Third party class not loading

提问人:Code Lover 提问时间:1/9/2014 更新时间:6/6/2014 访问量:38649

问:

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

我试图在自动加载和菜单中将此类添加到我的控制器中,但这也给出了相同的错误。$this->load->library('dash')

我已经检查并找到了以下方法,但无法理解开发人员在评论中所说的内容。dash.phpprivate 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

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

php codeigniter

评论

0赞 Kumar V 1/9/2014
您是否尝试过库类名称CI_Dash

答:

28赞 ReNiSh AR 1/10/2014 #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赞 Code Lover 1/10/2014
是的,我以同样的方式做了。.感谢您的支持。
4赞 Stackman 2/4/2014 #2

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

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

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

2赞 user3713530 6/6/2014 #3

我正在使用 http://pdfparser.org/ 的 PDF 解析器

我创建文件应用程序/库/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 => application\third_party\pdfparser 中包含 PDF 解析器库

评论

0赞 John 12/20/2016
Andy,你能看看我的问题,关于PDFParser和CodeIgniter吗?我已经尝试了你的解决方案,遇到了麻烦......stackoverflow.com/q/41238075/2278301