我正在一个 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
和应用程序的任何其他入口点。