soheilrt/laravel-adobe-connect-client

适用于基于Laravel应用的Adobe Connect客户端包

1.2.0 2021-05-01 07:56 UTC

This package is auto-updated.

Last update: 2024-09-27 13:43:01 UTC


README

Build Status Scrutinizer Code Quality

简介

Laravel Adobe Connect 为Laravel应用程序与Adobe Connect API通信提供了便捷的方式。此包最初灵感来源于 brunogasparetto的包,但进行了一些修改,以在开发过程中为开发者提供更多灵活性!

安装

您可以通过以下命令通过 packagist 安装此包。

composer require soheilrt/laravel-adobe-connect-client

最低要求

  • PHP 7.2
  • PHP-CURL 扩展
  • Adobe Connect API V9.4.5
  • Laravel 5.8

快速开始

  1. 通过Composer安装包
composer require soheilrt/laravel-adobe-connect-client
  1. 在.env文件中设置您的Adobe信息
ADOBE_CONNECT_HOST #your account host URL address with http:// OR https:// prefix
ADOBE_CONNECT_USER_NAME #your adobe connect account username
ADOBE_CONNECT_PASSWORD #your adobe connect account password

然后您就设置完成了 :-).

您也可以运行以下命令来确保一切正常工作

use Soheilrt\AdobeConnectClient\Facades\Client;
$commonInfo =Client::commonInfo();

命令

此包中的所有命令都通过 Client 类运行。

以下列出了所有可用的命令

查询

有时您可能想要筛选(排序)您的数据或结果,您可以通过 FilterSort 类来实现。

筛选结果

以下是一个示例,说明如何使用接受筛选的命令的 Filter 类。

    /**
     * @param  \Soheilrt\AdobeConnectClient\Client\Client  $client
     *
     * @throws \Exception
     * @return array
     */
    public function exampleScoContents(\Soheilrt\AdobeConnectClient\Client\Client $client): array 
    {
        $folderId = 12345;

        $filter = Soheilrt\AdobeConnectClient\Client\Filter::instance()
            ->like('name', 'Test')
            ->dateAfter('dateBegin', new \DateTimeImmutable());

        return $client->scoContents($folderId, $filter);
    }

排序结果

以下是一个示例,说明如何在接受排序的查询上对查询结果进行排序。

use Soheilrt\AdobeConnectClient\Client\Client;
use Soheilrt\AdobeConnectClient\Client\Filter;
use Soheilrt\AdobeConnectClient\Client\Sorter;

class ExampleClass
{
    /**
     * @param  Client  $client
     *
     * @throws \Exception
     * @return array 
     */
    public function exampleMethod(Client $client): array 
    {
        $folderId = 12345;

        $filter = Filter::instance()
            ->like('name', 'Test')
            ->dateAfter('dateBegin', new DateTimeImmutable());

        $sorter = Sorter::instance()
            ->asc('dateBegin');

        return $client->scoContents($folderId, $filter, $sorter);
    }
}

高级

实体

有时您可能希望实时更改数据!在这种情况下,您可以使用访问器和突变器来实现。您只需要扩展基本实体类(例如:SCO实体),并将访问器或突变器添加到扩展类中,并在包配置文件中将实体设置为主要的实体。

这里有一个示例,演示了如何通过访问器将描述转换为大写。

#An Example of accessor 
Class ExtendedSco extends \Soheilrt\AdobeConnectClient\Facades\SCO
{
    public function getDescription()
    {
        return strtoupper($this->attributes['description']);
    }
}

以下是突变器的示例,它可以在尝试设置实体中的属性时实时操纵数据。

class ExtendedSco extends \Soheilrt\AdobeConnectClient\Facades\SCO
{
    public function setDescription($value)
    {
        $this->attributes['description']=strtolower($value);
    }
}

注意:实体访问器不支持任何参数,突变器只支持一个参数,该参数接受用户想要设置到实体的数据!

发布配置

您还可以发布配置文件以根据您的需求自定义此包。

php artisan vendor:publish --tag=adobe-connect

批量赋值

有时您想向实体分配大量信息。我们通过fill方法实现了这一点,只需列出Eloquent模型即可!

use \Soheilrt\AdobeConnectClient\Client\Entities\SCO;
$data=[
    'sco-id'=>1,
    'name'=>'new name'
];
$sco=SCO::instance()->fill($data);

数组转换

如果您想一次性访问实体数据,可以调用toArray()命令来一次性访问整个实体数据。

会话缓存

默认情况下,我们缓存用户会话以防止在每次命令中额外的登录请求,但您可以选择禁用此功能,如果您希望手动管理会话。

注意:如果您禁用会话缓存,我们将不会执行自动登录请求,您应该手动执行。

外观

我们为实体提供了外观,以防您将来将默认实体更改为自定义实体,如果您已使用外观访问/实例化实例,则无需在您的代码中进行任何更改,因为这将由Adobe Connect服务提供者处理,并从配置文件中注入提供的实体。

挂起

  • 为客户端命令添加队列支持