【问题标题】:How to avoid usage of "require_once" in ZF1 project with _old style_ library?如何避免在带有 _old style_ 库的 ZF1 项目中使用“require_once”?
【发布时间】:2017-01-31 21:00:39
【问题描述】:

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

application/controllers/AgreementController.php

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

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

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

我确实知道:

但我不确定如何处理这个问题。我能否就如何实现这一目标提出一些想法?

【问题讨论】:

    标签: php zend-framework jqgrid composer-php zend-autoloader


    【解决方案1】:

    是的,你可以。

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

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

    composer.json

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-10
        • 2015-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-22
        • 2017-05-28
        • 2018-08-02
        相关资源
        最近更新 更多