X7ROOT File Manager
Current Path:
/home/gfecatvj/sites/restate/platform/plugins/analytics/src
home
/
gfecatvj
/
sites
/
restate
/
platform
/
plugins
/
analytics
/
src
/
📁
..
📄
Analytics.php
(6.02 KB)
📄
AnalyticsClient.php
(2.43 KB)
📄
AnalyticsClientFactory.php
(2.06 KB)
📁
Cache
📁
Exceptions
📁
Facades
📄
GoogleClient.php
(1.84 KB)
📁
Http
📄
Period.php
(2.05 KB)
📄
Plugin.php
(850 B)
📁
Providers
Editing: AnalyticsClientFactory.php
<?php namespace Botble\Analytics; use Cache; use Google_Exception; use Google_Service_Analytics; use Illuminate\Contracts\Cache\Repository; use Botble\Analytics\Cache\CacheItemPool; class AnalyticsClientFactory { /** * @param array $analyticsConfig * @return AnalyticsClient * @throws Google_Exception */ public static function createForConfig(array $analyticsConfig): AnalyticsClient { $authenticatedClient = self::createAuthenticatedGoogleClient($analyticsConfig); $googleService = new Google_Service_Analytics($authenticatedClient); return self::createAnalyticsClient($analyticsConfig, $googleService); } /** * @param array $config * @return GoogleClient * @throws Google_Exception */ public static function createAuthenticatedGoogleClient(array $config): GoogleClient { $client = new GoogleClient; $client->setScopes([ Google_Service_Analytics::ANALYTICS_READONLY, ]); $client->setAuthConfig(setting('analytics_service_account_credentials')); self::configureCache($client, $config['cache']); return $client; } /** * @param GoogleClient $client * @param array $config */ protected static function configureCache(GoogleClient $client, $config) { $config = collect($config); $store = Cache::store($config->get('store')); $cache = new CacheItemPool($store); $client->setCache($cache); $client->setCacheConfig( $config->except('store')->toArray() ); } /** * @param array $analyticsConfig * @param Google_Service_Analytics $googleService * @return AnalyticsClient */ protected static function createAnalyticsClient( array $analyticsConfig, Google_Service_Analytics $googleService ): AnalyticsClient { $client = new AnalyticsClient($googleService, app(Repository::class)); $client->setCacheLifeTimeInMinutes($analyticsConfig['cache_lifetime_in_minutes']); return $client; } }
Upload File
Create Folder