0

我在一个 ZF1 项目中工作,我创建了一个空控制器:

application/controllers/AgreementController.php

class AgreementController
{
    public function index()
    {
        // code goes here 
    }
}

我正在尝试使用Guriddo jqGridPHP作为我项目的一部分。他们在这里有一些文档(转到快速安装),并且显示如下:

require_once 'jq-config.php';
require_once "php/jqGrid.php";
require_once "php/jqGridPdo.php";

$conn = new PDO(DB_DSN,DB_USER,DB_PASSWORD);

$grid = new jqGridRender($conn);
$grid->SelectCommand = 'SELECT field1, field2, field3  FROM mytable';
$grid->dataType = 'json';
$grid->setColModel();
$grid->setUrl('myfirstgrid.php');
$grid->setGridOptions(array(
    "caption"=>"This is custom Caption",
    "rowNum"=>10,
    "sortname"=>"field1",
    "rowList"=>array(10,20,50)
    ));

$grid->setColProperty("field1", array("label"=>"ID", "width"=>60));
$grid->renderGrid('#grid','#pager',true, null, null, true,true);

他们现在仍在使用require_once,这对我和项目都不利。我正在尝试找到一种方法来自动加载此类库以避免使用require_once.

我确实知道:

但我不确定如何处理这个问题。我能得到一些关于如何实现这一目标的想法吗?

4

2 回答 2

2

是的你可以。

phpgrid zf integration,一个类似的 datagrid 库中,您需要修改 composer.json 以自动加载任何“旧式”库:

在开始编码之前,我们需要在 Zend Framework 自动加载器中注册我们的 phpGrid 库。这是通过在“composer.json”中添加自动加载文件键来完成的。自动加载器确保任何 PHP 外部库和组件都可以在 PHP 代码中的任何位置轻松引用,而无需使用传统的“require”或“php include”函数。

作曲家.json

{
    ...

    "autoload":{
        "files": ["vendor/phpcontrols/phpGrid/conf.php"]
    }
}
于 2017-02-08T10:33:24.447 回答
0

你绝对可以使用 composer 来做到这一点。

查看composer 上的自动加载类映射,您会发现它基本上可以从文件夹中自动加载任何类。

我建议创建一个/opt文件夹(/作为您自己项目的根目录),并将任何非作曲家库放入其中。然后你可以classmap在这个文件夹上使用。

最后,您需要将 composer 添加到您index.php的应用程序的任何其他入口点。

于 2017-02-01T10:33:54.807 回答