如何避免在带有_old style_库的ZF1项目中使用"require_once"?



我正在一个 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

我确实知道:

  • ZF1 类加载
  • 作曲家自动加载

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

是的,你可以。

在phpgrid zf集成中,一个类似的datagrid库,你需要修改composer.json来自动加载任何"旧式"库:

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

作曲家.json

{
    ...
    "autoload":{
        "files": ["vendor/phpcontrols/phpGrid/conf.php"]
    }
}

你绝对可以使用作曲家来做到这一点。

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

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

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

相关内容

  • 没有找到相关文章

最新更新