37 lines
		
	
	
		
			921 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			921 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace W3TC;
 | |
| 
 | |
| class Extension_NewRelic_Core {
 | |
| 	public function get_effective_browser_application() {
 | |
| 		$c = Dispatcher::config();
 | |
| 		$api_key = $c->get( array( 'newrelic', 'api_key' ) );
 | |
| 		$id = $c->get( array( 'newrelic', 'browser.application_id' ) );
 | |
| 
 | |
| 		if ( empty( $api_key ) || empty( $id ) )
 | |
| 			return null;
 | |
| 
 | |
| 		$applications_string = get_option( 'w3tc_nr_browser_applications' );
 | |
| 		$applications = @json_decode( $applications_string, true );
 | |
| 		if ( !is_array( $applications ) )
 | |
| 			$applications = array();
 | |
| 
 | |
| 		if ( isset( $applications[$id] ) )
 | |
| 			return $applications[$id];
 | |
| 
 | |
| 		try {
 | |
| 			$api = new Extension_NewRelic_Api( $api_key );
 | |
| 			$app = $api->get_browser_application( $id );
 | |
| 
 | |
| 			if ( !is_null( $app ) ) {
 | |
| 				$applications[$id] = $app;
 | |
| 				update_option( 'w3tc_nr_browser_applications',
 | |
| 					json_encode( $applications ) );
 | |
| 			}
 | |
| 
 | |
| 			return $app;
 | |
| 		} catch ( \Exception $ex ) {
 | |
| 			return null;
 | |
| 		}
 | |
| 	}
 | |
| }
 |