apility/workiva-laravel 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

apility/workiva-laravel

最新稳定版本:v1.0.0

Composer 安装命令:

composer require apility/workiva-laravel

包简介

Workiva Platform API client for Laravel

README 文档

README

Install

composer require apility/workiva-laravel

Publish the config

php artisan vendor:publish --provider="Apility\Workiva\WorkivaServiceProvider" --tag="config"

Usage

Listing documents

<?php

use Apility\Workiva\Types\Document;

$documents = Document::list();

Listing sections in a document

$sections = $documents->first()->sections;

Exporting a document

Document export happens asynchronous. This example uses polling to wait for the document to get exported.

In a production system, it's highly recommended that you instead dispatches a job to handle this, as it could take several minutes for the export to be completed.

use Apility\Workiva\Facades\Workiva;
use Apility\Workiva\Enums\OperationStatus;
use Exception;

$request = [
    'format' => 'xhtml',
    'sections' => [
        $sections->first()->id, // Example, just pass in the ID's of the sections you want to export
    ],
    'xhtmlOptions' => [
        'editableXhtml' => true,
    ],
];

$response = Workiva::withoutRedirecting()->post(sprintf('documents/%s/export', $document->id), $request);
$location = $response->header('Location');
$retryAfter = $response->header('Retry-After') ?? 0;

sleep($retryAfter);

$export = null;

while ($export === null) {
    $response = Workiva::get($location);

    if ($response->json()['status'] === OperationStatus::Completed->value) {
        $documentUrl = $response->json()['resourceUrl'];
        try {
            $exportResponse = Workiva::dontThrow()
                ->http()
                ->get($documentUrl);

            $export = $exportResponse->body();
        } catch (Exception $e) {
            throw new Exception('Failed to export document:' . $e->getMessage());
        }
    }

    sleep($response->header('Retry-After') ?? 0);
}

Storage::put($document->name . '.html', $export);

Copyright Apility AS © 2025

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-02-20

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固