Revision: 87200
Updated URL
Updated Code
at October 7, 2021 16:12 by ramirog89
Updated URL
Updated Code
<?php class Articles { private $_content; private $_defaultHost = 'local'; private $_baseUrl = 'http://localhost/feed_endpoint/'; private $_endpoint; private $_memcache; private $_settings = array( 'memcache' => array( 'local' => array( 'host' => 'localhost', 'port' => '11211' ), 'dev' => array( 'host' => 'default-memcache-location', 'port' => '11211' ), 'qa' => array( 'host' => 'qa-memcache-location', 'port' => '11211' ), 'live' => array( 'host' => 'live-memcache-location', 'port' => '11211' ) ) ); public function __construct() { $this->_setInstance() ->_memcacheConnect(); } public function getLastArticles() { return $this->setEndpoint('latest-articles-paginated?page=1') ->_doRequest() ->_sendResponse(); } public function setEndpoint($endpoint) { $this->_endpoint = $endpoint; return $this; } public function getEndpoint() { return $this->_endpoint; } private function _sendResponse() { return json_decode($this->_content); } private function _doRequest() { $uri = $this->_baseUrl . $this->_endpoint; $this->_content = $this->_memcache->get($uri); if ($this->_content == false) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $uri); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $this->_content = curl_exec($ch); curl_close($ch); $this->_memcache->set($this->_endpoint, $this->_content); } return $this; } private function _setInstance() { $this->_host = $this->_defaultHost; // localhost $host = strtolower($_SERVER['HTTP_HOST']); if(strstr( $host, "-d.com") > -1 ) $this->_host = "dev"; else if(strstr( $host,"-q.com") > -1 ) $this->_host = "qa"; else if(strstr( $host,"prod.com") > -1) $this->_host = "live"; return $this; } private function _memcacheConnect() { $this->_memcache = new Memcache; $this->_memcache->connect( $this->_settings['memcache'][$this->_host]['host'], $this->_settings['memcache'][$this->_host]['port'] ) or die ('Could not connect to memcache server'); return $this; } } $articles = new Articles();
Revision: 69859
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 23, 2015 05:15 by ramirog89
Initial Code
<?php class Feed { private $_content; private $_defaultHost = 'local'; private $_baseUrl = 'http://noticias.mtvla.com/feeds/'; private $_endpoint; private $_memcache; private $_settings = array( 'memcache' => array( 'local' => array( 'host' => 'localhost', 'port' => '11211' ), 'dev' => array( 'host' => 'international-memcache-001.1515.mtvi.com', 'port' => '11211' ), 'qa' => array( 'host' => 'international-memcache-002.1515.mtvi.com', 'port' => '11211' ), 'live' => array( 'host' => 'international-memcache-005.811.mtvi.com', 'port' => '11211' ) ) ); public function __construct() { $this->_setInstance() ->_memcacheConnect(); } public function getLastArticles() { return $this->setEndpoint('latest-articles-paginated?page=1') ->_doRequest() ->_sendResponse(); } public function setEndpoint($endpoint) { $this->_endpoint = $endpoint; return $this; } public function getEndpoint() { return $this->_endpoint; } private function _sendResponse() { return json_decode($this->_content); } private function _doRequest() { $uri = $this->_baseUrl . $this->_endpoint; $this->_content = $this->_memcache->get($uri); if ($this->_content == false) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $uri); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $this->_content = curl_exec($ch); curl_close($ch); $this->_memcache->set($this->_endpoint, $this->_content); } return $this; } private function _setInstance() { $this->_host = $this->_defaultHost; // localhost $host = strtolower($_SERVER['HTTP_HOST']); if(strstr( $host, "-d.mtvi.com") > -1 ) $this->_host = "dev"; else if(strstr( $host,"-q.mtvi.com") > -1 ) $this->_host = "qa"; else if(strstr( $host,"mtv.com") > -1) $this->_host = "live"; return $this; } private function _memcacheConnect() { $this->_memcache = new Memcache; $this->_memcache->connect( $this->_settings['memcache'][$this->_host]['host'], $this->_settings['memcache'][$this->_host]['port'] ) or die ('Could not connect to memcache server'); return $this; } } $feed = new Feed();
Initial URL
Initial Description
feed class with baseUrl and endpoint curling the target and caching on memcache
Initial Title
feeds with memcache
Initial Tags
php, service
Initial Language
PHP