optimeconsulting / pentaho-report
Requires
- php: >=8.0
- guzzlehttp/guzzle: ^7.5
This package is auto-updated.
Last update: 2024-09-05 18:36:17 UTC
README
一个允许轻松配置连接到PRD服务器以下载报告(就像本地报告一样)的包
安装
composer require optimeconsulting/pentaho-report
配置
我们需要正确配置以下参数,这些参数随后将由我们用于下载的类接收
PENTAHO_URL_AUTH: 发送认证请求的URL,例如 https://servidorpentaho.com/pentaho/j_spring_security_check
PENTAHO_BASE_URI: 进行报告请求的基本URL,例如 https://servidorpentaho.com/pentaho/api/repos/:home:Reports:
PENTAHO_BI_USER: 有权从该服务器下载报告的用户
PENTAHO_BI_PASS: 该用户的密码
对于DNA,我们可以在config_var.php或parameters表中配置此设置,对于在symfony中的某个项目,我们应在.env中设置
在symfony中,我们还必须在config/bundles.php
中注册bundle
<?php return [ ... \Optime\PentahoReport\Bundle\OptimePentahoReportBundle::class => ['all' => true] ];
此外,我们必须在config/routes.yaml
中注册bundle的路由
pentahoreport: resource: "@OptimePentahoReportBundle/Bundle/Controller" type: annotation
使用
一旦在独立项目中完全配置好,我们只需实例化ReportBI.php类,并传递我们之前配置的4个参数,然后使用方法getBIServerReport()
,我们将传递以下内容
$report: 服务器上报告的名称
$subFolder: 存放报告的子文件夹名称(如果有的话)
$reportParams: 报告需要的额外参数,期望为查询字符串
<?php require_once '/vendor/autoload.php'; use Optime\PentahoReport\Lib\ReportBI; $report = (isset($_GET['report']) && !empty($_GET['report']))?$_GET['report']:null; $subFolder = (isset($_GET['subfolder']) && !empty($_GET['subfolder']))?$_GET['subfolder']:''; $urlAuth = PENTAHO_URL_AUTH; $baseURI = PENTAHO_BASE_URI; $biUser = PENTAHO_BI_USER; $biPass = PENTAHO_BI_PASS; $ObjReportBI = new ReportBI($urlAuth, $baseURI, $biUser, $biPass); $ObjReportBI->getBIServerReport($report, $subFolder, $_SERVER['QUERY_STRING']);
对于symfony,我们已经有了一个处理所有这些的控制器,我们只需使用定义在该控制器中的路由进行下载,至少传递报告的名称,例如 /pentahoreport/download?report=users
或 /pentahoreport/download?report=users&subfolder=Users&year2022
如果我们希望传递子文件夹和其他参数