src/Biz/CloudPlatform/CloudAPIFactory.php

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Biz\CloudPlatform;

use Biz\CloudPlatform\Client\AbstractCloudAPI;
use Biz\CloudPlatform\Client\CloudAPI;
use Biz\CloudPlatform\Client\EventCloudAPI;
use Biz\CloudPlatform\Client\FailoverCloudAPI;
use Biz\System\Service\SettingService;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Topxia\Service\Common\ServiceKernel;

class CloudAPIFactory
{
    private static $api;  //单元测试用

    public static function create($type = 'root', $apiVersion = AbstractCloudAPI::DEFAULT_API_VERSION)
    {
        if (empty(self::$api)) {
            /**
             * @var SettingService
             */
            $setting = ServiceKernel::instance()->getBiz()->service('System:SettingService');

            $storage = $setting->get('storage', array());
            $developer = $setting->get('developer', array());

            $logger = new Logger('CloudAPI');
            $logger->pushHandler(new StreamHandler(ServiceKernel::instance()->getParameter('kernel.logs_dir').'/cloud-api.log', Logger::DEBUG));

            if ('tui' == $type) {
                $api = new CloudAPI(array(
                    'accessKey' => empty($storage['cloud_access_key']) ? '' : $storage['cloud_access_key'],
                    'secretKey' => empty($storage['cloud_secret_key']) ? '' : $storage['cloud_secret_key'],
                    'apiUrl' => empty($storage['cloud_api_tui_server']) ? 'http://estui.edusoho.net' : $storage['cloud_api_tui_server'],
                    'debug' => empty($developer['debug']) ? false : true,
                ));
                $api->setLogger($logger);
            } elseif ('event' == $type) {
                $api = new EventCloudAPI(array(
                    'accessKey' => empty($storage['cloud_access_key']) ? '' : $storage['cloud_access_key'],
                    'secretKey' => empty($storage['cloud_secret_key']) ? '' : $storage['cloud_secret_key'],
                    'apiUrl' => empty($storage['cloud_api_event_server']) ? 'http://event.edusoho.net' : $storage['cloud_api_event_server'],
                    'debug' => empty($developer['debug']) ? false : true,
                ));
                $api->setLogger($logger);
            } else {
                if (empty($developer['private_cloud_mode'])) {
                    $api = new FailoverCloudAPI(array(
                        'accessKey' => empty($storage['cloud_access_key']) ? '' : $storage['cloud_access_key'],
                        'secretKey' => empty($storage['cloud_secret_key']) ? '' : $storage['cloud_secret_key'],
                        'apiUrl' => empty($storage['cloud_api_server']) ? '' : $storage['cloud_api_server'],
                        'debug' => empty($developer['debug']) ? false : true,
                        'apiVersion' => $apiVersion,
                    ));
                    $api->setLogger($logger);

                    $serverConfigFile = ServiceKernel::instance()->getParameter('kernel.root_dir').'/data/api_server.json';
                    $api->setApiServerConfigPath($serverConfigFile);

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。