vemt/jasper

jasper reports soap api 的面向对象包装器

dev-master 2013-08-23 14:22 UTC

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

    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);