vemt / jasper
jasper reports soap api 的面向对象包装器
dev-master
2013-08-23 14:22 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-14 11:46:49 UTC
README
#jasper-reports-php
jasper reports php 库
jasper reports SOAP Api 的面向对象实现
此库旨在将整个 Jasper 服务器 Api 完全封装,以便于使用对象
功能
- 仓库访问(列出资源、获取资源、运行报告)
- 管理访问(查找角色、查找用户、设置用户)
更多功能即将到来
##要求
- PHP 5.3
- SOAP pear 包(http://pear.php.net/package/SOAP/)
- Net_Dime pear 包(http://pear.php.net/package/Net_DIME/)
#用法 ##仓库操作
列出服务器上的资源
<?php use Vemt\Jasper\Transport\SoapTransport; use Vemt\Jasper\Request\Repository\ListResources; // setup the soap transport $cli = new SoapTransport($repositoryUrl, $user, $password); // executing the list resources request $request = new ListResources($cli); $request->setUri('/'); $resources = $request->execute(); echo "Listing resources Resources at " . $request->getUri(); foreach($resources as $resource) { echo $resource . "\n"; }
获取有关资源的信息
<?php use Vemt\Jasper\Transport\SoapTransport; use Vemt\Jasper\Request\Repository\GetResource; // setup the soap transport $cli = new SoapTransport($repositoryUrl, $user, $password); // executing the get resources request $request = new GetResource($cli); $request->setUri('/'); $resource = $request->execute(); // display data echo $resource . "\n"; echo "Attachments:\n"; if ($resource->hasAttachments()) { foreach ($resource->getAttachments() as $attachment) { // an attachment is another resource object echo "\t $attachment \n"; } } else { echo "none\n"; }
执行报告
<?php use Vemt\Jasper\Transport\SoapTransport; use Vemt\Jasper\Request\Repository\RunReport; // setup the soap transport $cli = new SoapTransport($repositoryUrl, $user, $password); // executing the get resources request $request = new RunReport($cli); $request->setUri('/report_unit_uri'); //setting the report type to html $request->addExtraArgument('RUN_OUTPUT_FORMAT', 'HTML'); //adding parameters to the report $request->addParameter('parameter 1', 'value 1'); $resource = $request->execute(); // display data if ($resource->hasAttachments()) { foreach ($resource->getAttachments() as $name => $attachment) { // the report itself has the key 'cid:report' // images are also attached echo "\t $name => $attachment \n"; } } else { echo "no report returned\n"; }
##管理操作 ###搜索用户
<?php use Vemt\Jasper\Transport\SoapTransport; use Vemt\Jasper\Request\Administration\FindUsers; use Vemt\Jasper\Resource\User\UserSearchCriteria; // setup the soap transport $cli = new SoapTransport($administrationUrl, $user, $password); // executing the get resources request $request = new FindUsers($cli); // this is the default behaviour, search for all users $request->setSearchCriteria(new UserSearchCriteria()); $resources = $request->execute();
###添加/修改用户
<?php use Vemt\Jasper\Transport\SoapTransport; use Vemt\Jasper\Request\Administration\PutUser; use Vemt\Jasper\Resource\User\User; // setup the soap transport $cli = new SoapTransport($administrationUrl, $user, $password); // executing the get resources request $request = new PutUser($cli); // specifying user to save $user = new User(); $user->setUsername('test'); $user->setPassword('test1234!'); $user->setFullName('test user'); $user->setEmailAddress('test@foo.com'); $user->setExternallyDefined(false); $user->setEnabled(true); $user->setTenantId(null); $role = new Role(); $role->setRoleName('ROLE_ANONYMOUS'); $role->setTenantId(null); $user->addRole($role); $request->setUser($user); $resource = $request->execute(); echo "Saved user : \n" . var_export($resource, true);
###搜索角色
<?php use Vemt\Jasper\Transport\SoapTransport; use Vemt\Jasper\Request\Administration\FindRoles; use Vemt\Jasper\Resource\Role\RoleSearchCriteria; // setup the soap transport $cli = new SoapTransport($administrationUrl, $user, $password); // executing the get resources request $request = new FindRoles($cli); // this is the default behaviour, search for all roles $request->setSearchCriteria(new RoleSearchCriteria()); $resources = $request->execute(); foreach ($resources as $role) { echo sprintf("%s\n", $role->getRoleName()); $users = $role->getUsers(); if (is_array($users)) { echo "Users:\n"; foreach ($users as $user) { echo sprintf(" Username: %s\nName: %s\n", $user->getUserName(), $user->getFullName()); } } }
###添加/修改角色
<?php use Vemt\Jasper\Transport\SoapTransport; use Vemt\Jasper\Request\Administration\PutRole; use Vemt\Jasper\Resource\Role\Role; // setup the soap transport $cli = new SoapTransport($administrationUrl, $user, $password); // executing the get resources request $request = new PutRole($cli); // specifying role to save $role = new Role(); $role->setRoleName('ROLE_TESTING'); $role->setTenantId(null); // alternative: // $role = new Role('ROLE_TESTING'); $request->setRole($role); $resource = $request->execute(); echo "Saved role : \n" . var_export($resource, true);