soheilrt / laravel-adobe-connect-client
适用于基于Laravel应用的Adobe Connect客户端包
Requires
- php: >=7.2
- ext-curl: *
- ext-fileinfo: *
- ext-json: *
- ext-simplexml: *
- laravel/framework: ~5.8 || ^6 || ^7 || ^8
Requires (Dev)
- fzaninotto/faker: ^1.4
- orchestra/testbench: ~3.8||~4.0||~5.0
- phpunit/phpunit: ^8.0
README
简介
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
快速开始
- 通过Composer安装包
composer require soheilrt/laravel-adobe-connect-client
- 在.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 类运行。
以下列出了所有可用的命令
查询
有时您可能想要筛选(排序)您的数据或结果,您可以通过 Filter 和 Sort 类来实现。
筛选结果
以下是一个示例,说明如何使用接受筛选的命令的 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服务提供者处理,并从配置文件中注入提供的实体。
挂起
- 为客户端命令添加队列支持