core: Add separate Debug class
Replaces 'debugMessage' by specialized debug function 'Debug::log'. This function takes the same arguments as the previous 'debugMessage'. A separate Debug class allows for further optimization and separation of concern.
This commit is contained in:
parent
9379854f7a
commit
c63af2e7ad
8 changed files with 44 additions and 40 deletions
|
@ -132,7 +132,7 @@ class JustETFBridge extends BridgeAbstract {
|
||||||
|
|
||||||
date_time_set($df, 0, 0);
|
date_time_set($df, 0, 0);
|
||||||
|
|
||||||
// debugMessage(date_format($df, 'U'));
|
// Debug::log(date_format($df, 'U'));
|
||||||
|
|
||||||
return date_format($df, 'U');
|
return date_format($df, 'U');
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ class JustETFBridge extends BridgeAbstract {
|
||||||
$element = $article->find('div.subheadline', 0)
|
$element = $article->find('div.subheadline', 0)
|
||||||
or returnServerError('Date not found!');
|
or returnServerError('Date not found!');
|
||||||
|
|
||||||
// debugMessage($element->plaintext);
|
// Debug::log($element->plaintext);
|
||||||
|
|
||||||
$date = trim(explode('|', $element->plaintext)[0]);
|
$date = trim(explode('|', $element->plaintext)[0]);
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ class JustETFBridge extends BridgeAbstract {
|
||||||
|
|
||||||
$element->find('a', 0)->onclick = '';
|
$element->find('a', 0)->onclick = '';
|
||||||
|
|
||||||
// debugMessage($element->innertext);
|
// Debug::log($element->innertext);
|
||||||
|
|
||||||
return $element->innertext;
|
return $element->innertext;
|
||||||
}
|
}
|
||||||
|
@ -288,7 +288,7 @@ class JustETFBridge extends BridgeAbstract {
|
||||||
$element = $html->find('div.infobox div.vallabel', 0)
|
$element = $html->find('div.infobox div.vallabel', 0)
|
||||||
or returnServerError('Date not found!');
|
or returnServerError('Date not found!');
|
||||||
|
|
||||||
// debugMessage($element->plaintext);
|
// Debug::log($element->plaintext);
|
||||||
|
|
||||||
$date = trim(explode("\r\n", $element->plaintext)[1]);
|
$date = trim(explode("\r\n", $element->plaintext)[1]);
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ class WordPressPluginUpdateBridge extends BridgeAbstract {
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getCachedDate($url){
|
private function getCachedDate($url){
|
||||||
debugMessage('getting pubdate from url ' . $url . '');
|
Debug::log('getting pubdate from url ' . $url . '');
|
||||||
// Initialize cache
|
// Initialize cache
|
||||||
$cache = Cache::create('FileCache');
|
$cache = Cache::create('FileCache');
|
||||||
$cache->setPath(PATH_CACHE . 'pages/');
|
$cache->setPath(PATH_CACHE . 'pages/');
|
||||||
|
|
|
@ -453,7 +453,7 @@ class XenForoBridge extends BridgeAbstract {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// debugMessage(date_format($df, 'U'));
|
// Debug::log(date_format($df, 'U'));
|
||||||
|
|
||||||
return date_format($df, 'U');
|
return date_format($df, 'U');
|
||||||
|
|
||||||
|
|
19
lib/Debug.php
Normal file
19
lib/Debug.php
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class Debug {
|
||||||
|
public static function log($text) {
|
||||||
|
if(!DEBUG) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3);
|
||||||
|
$calling = $backtrace[2];
|
||||||
|
$message = $calling['file'] . ':'
|
||||||
|
. $calling['line'] . ' class '
|
||||||
|
. (isset($calling['class']) ? $calling['class'] : '<no-class>') . '->'
|
||||||
|
. $calling['function'] . ' - '
|
||||||
|
. $text;
|
||||||
|
|
||||||
|
error_log($message);
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,7 +11,7 @@ abstract class FeedExpander extends BridgeAbstract {
|
||||||
returnServerError('There is no $url for this RSS expander');
|
returnServerError('There is no $url for this RSS expander');
|
||||||
}
|
}
|
||||||
|
|
||||||
debugMessage('Loading from ' . $url);
|
Debug::log('Loading from ' . $url);
|
||||||
|
|
||||||
/* Notice we do not use cache here on purpose:
|
/* Notice we do not use cache here on purpose:
|
||||||
* we want a fresh view of the RSS stream each time
|
* we want a fresh view of the RSS stream each time
|
||||||
|
@ -20,34 +20,34 @@ abstract class FeedExpander extends BridgeAbstract {
|
||||||
or returnServerError('Could not request ' . $url);
|
or returnServerError('Could not request ' . $url);
|
||||||
$rssContent = simplexml_load_string(trim($content));
|
$rssContent = simplexml_load_string(trim($content));
|
||||||
|
|
||||||
debugMessage('Detecting feed format/version');
|
Debug::log('Detecting feed format/version');
|
||||||
switch(true) {
|
switch(true) {
|
||||||
case isset($rssContent->item[0]):
|
case isset($rssContent->item[0]):
|
||||||
debugMessage('Detected RSS 1.0 format');
|
Debug::log('Detected RSS 1.0 format');
|
||||||
$this->feedType = 'RSS_1_0';
|
$this->feedType = 'RSS_1_0';
|
||||||
break;
|
break;
|
||||||
case isset($rssContent->channel[0]):
|
case isset($rssContent->channel[0]):
|
||||||
debugMessage('Detected RSS 0.9x or 2.0 format');
|
Debug::log('Detected RSS 0.9x or 2.0 format');
|
||||||
$this->feedType = 'RSS_2_0';
|
$this->feedType = 'RSS_2_0';
|
||||||
break;
|
break;
|
||||||
case isset($rssContent->entry[0]):
|
case isset($rssContent->entry[0]):
|
||||||
debugMessage('Detected ATOM format');
|
Debug::log('Detected ATOM format');
|
||||||
$this->feedType = 'ATOM_1_0';
|
$this->feedType = 'ATOM_1_0';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
debugMessage('Unknown feed format/version');
|
Debug::log('Unknown feed format/version');
|
||||||
returnServerError('The feed format is unknown!');
|
returnServerError('The feed format is unknown!');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
debugMessage('Calling function "collect_' . $this->feedType . '_data"');
|
Debug::log('Calling function "collect_' . $this->feedType . '_data"');
|
||||||
$this->{'collect_' . $this->feedType . '_data'}($rssContent, $maxItems);
|
$this->{'collect_' . $this->feedType . '_data'}($rssContent, $maxItems);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function collect_RSS_1_0_data($rssContent, $maxItems){
|
protected function collect_RSS_1_0_data($rssContent, $maxItems){
|
||||||
$this->load_RSS_2_0_feed_data($rssContent->channel[0]);
|
$this->load_RSS_2_0_feed_data($rssContent->channel[0]);
|
||||||
foreach($rssContent->item as $item) {
|
foreach($rssContent->item as $item) {
|
||||||
debugMessage('parsing item ' . var_export($item, true));
|
Debug::log('parsing item ' . var_export($item, true));
|
||||||
$tmp_item = $this->parseItem($item);
|
$tmp_item = $this->parseItem($item);
|
||||||
if (!empty($tmp_item)) {
|
if (!empty($tmp_item)) {
|
||||||
$this->items[] = $tmp_item;
|
$this->items[] = $tmp_item;
|
||||||
|
@ -58,13 +58,13 @@ abstract class FeedExpander extends BridgeAbstract {
|
||||||
|
|
||||||
protected function collect_RSS_2_0_data($rssContent, $maxItems){
|
protected function collect_RSS_2_0_data($rssContent, $maxItems){
|
||||||
$rssContent = $rssContent->channel[0];
|
$rssContent = $rssContent->channel[0];
|
||||||
debugMessage('RSS content is ===========\n'
|
Debug::log('RSS content is ===========\n'
|
||||||
. var_export($rssContent, true)
|
. var_export($rssContent, true)
|
||||||
. '===========');
|
. '===========');
|
||||||
|
|
||||||
$this->load_RSS_2_0_feed_data($rssContent);
|
$this->load_RSS_2_0_feed_data($rssContent);
|
||||||
foreach($rssContent->item as $item) {
|
foreach($rssContent->item as $item) {
|
||||||
debugMessage('parsing item ' . var_export($item, true));
|
Debug::log('parsing item ' . var_export($item, true));
|
||||||
$tmp_item = $this->parseItem($item);
|
$tmp_item = $this->parseItem($item);
|
||||||
if (!empty($tmp_item)) {
|
if (!empty($tmp_item)) {
|
||||||
$this->items[] = $tmp_item;
|
$this->items[] = $tmp_item;
|
||||||
|
@ -76,7 +76,7 @@ abstract class FeedExpander extends BridgeAbstract {
|
||||||
protected function collect_ATOM_1_0_data($content, $maxItems){
|
protected function collect_ATOM_1_0_data($content, $maxItems){
|
||||||
$this->load_ATOM_feed_data($content);
|
$this->load_ATOM_feed_data($content);
|
||||||
foreach($content->entry as $item) {
|
foreach($content->entry as $item) {
|
||||||
debugMessage('parsing item ' . var_export($item, true));
|
Debug::log('parsing item ' . var_export($item, true));
|
||||||
$tmp_item = $this->parseItem($item);
|
$tmp_item = $this->parseItem($item);
|
||||||
if (!empty($tmp_item)) {
|
if (!empty($tmp_item)) {
|
||||||
$this->items[] = $tmp_item;
|
$this->items[] = $tmp_item;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
function getContents($url, $header = array(), $opts = array()){
|
function getContents($url, $header = array(), $opts = array()){
|
||||||
debugMessage('Reading contents from "' . $url . '"');
|
Debug::log('Reading contents from "' . $url . '"');
|
||||||
|
|
||||||
$ch = curl_init($url);
|
$ch = curl_init($url);
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
@ -8,7 +8,7 @@ function getContents($url, $header = array(), $opts = array()){
|
||||||
|
|
||||||
if(is_array($header) && count($header) !== 0) {
|
if(is_array($header) && count($header) !== 0) {
|
||||||
|
|
||||||
debugMessage('Setting headers: ' . json_encode($header));
|
Debug::log('Setting headers: ' . json_encode($header));
|
||||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ function getContents($url, $header = array(), $opts = array()){
|
||||||
|
|
||||||
if(is_array($opts) && count($opts) !== 0) {
|
if(is_array($opts) && count($opts) !== 0) {
|
||||||
|
|
||||||
debugMessage('Setting options: ' . json_encode($opts));
|
Debug::log('Setting options: ' . json_encode($opts));
|
||||||
|
|
||||||
foreach($opts as $key => $value) {
|
foreach($opts as $key => $value) {
|
||||||
curl_setopt($ch, $key, $value);
|
curl_setopt($ch, $key, $value);
|
||||||
|
@ -29,7 +29,7 @@ function getContents($url, $header = array(), $opts = array()){
|
||||||
|
|
||||||
if(defined('PROXY_URL') && !defined('NOPROXY')) {
|
if(defined('PROXY_URL') && !defined('NOPROXY')) {
|
||||||
|
|
||||||
debugMessage('Setting proxy url: ' . PROXY_URL);
|
Debug::log('Setting proxy url: ' . PROXY_URL);
|
||||||
curl_setopt($ch, CURLOPT_PROXY, PROXY_URL);
|
curl_setopt($ch, CURLOPT_PROXY, PROXY_URL);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -42,13 +42,13 @@ function getContents($url, $header = array(), $opts = array()){
|
||||||
$curlErrno = curl_errno($ch);
|
$curlErrno = curl_errno($ch);
|
||||||
|
|
||||||
if($data === false)
|
if($data === false)
|
||||||
debugMessage('Cant\'t download ' . $url . ' cUrl error: ' . $curlError . ' (' . $curlErrno . ')');
|
Debug::log('Cant\'t download ' . $url . ' cUrl error: ' . $curlError . ' (' . $curlErrno . ')');
|
||||||
|
|
||||||
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||||
$errorCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
$errorCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
$header = substr($data, 0, $headerSize);
|
$header = substr($data, 0, $headerSize);
|
||||||
|
|
||||||
debugMessage('Response header: ' . $header);
|
Debug::log('Response header: ' . $header);
|
||||||
|
|
||||||
$headers = parseResponseHeader($header);
|
$headers = parseResponseHeader($header);
|
||||||
$finalHeader = end($headers);
|
$finalHeader = end($headers);
|
||||||
|
@ -109,7 +109,7 @@ $target_charset = DEFAULT_TARGET_CHARSET,
|
||||||
$stripRN = true,
|
$stripRN = true,
|
||||||
$defaultBRText = DEFAULT_BR_TEXT,
|
$defaultBRText = DEFAULT_BR_TEXT,
|
||||||
$defaultSpanText = DEFAULT_SPAN_TEXT){
|
$defaultSpanText = DEFAULT_SPAN_TEXT){
|
||||||
debugMessage('Caching url ' . $url . ', duration ' . $duration);
|
Debug::log('Caching url ' . $url . ', duration ' . $duration);
|
||||||
|
|
||||||
// Initialize cache
|
// Initialize cache
|
||||||
$cache = Cache::create('FileCache');
|
$cache = Cache::create('FileCache');
|
||||||
|
|
|
@ -10,19 +10,3 @@ function returnClientError($message){
|
||||||
function returnServerError($message){
|
function returnServerError($message){
|
||||||
returnError($message, 500);
|
returnError($message, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
function debugMessage($text){
|
|
||||||
if(!file_exists('DEBUG')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3);
|
|
||||||
$calling = $backtrace[2];
|
|
||||||
$message = $calling['file'] . ':'
|
|
||||||
. $calling['line'] . ' class '
|
|
||||||
. (isset($calling['class']) ? $calling['class'] : '<no-class>') . '->'
|
|
||||||
. $calling['function'] . ' - '
|
|
||||||
. $text;
|
|
||||||
|
|
||||||
error_log($message);
|
|
||||||
}
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ require_once PATH_LIB . 'CacheInterface.php';
|
||||||
require_once PATH_LIB . 'FormatInterface.php';
|
require_once PATH_LIB . 'FormatInterface.php';
|
||||||
|
|
||||||
// Classes
|
// Classes
|
||||||
|
require_once PATH_LIB . 'Debug.php';
|
||||||
require_once PATH_LIB . 'Exceptions.php';
|
require_once PATH_LIB . 'Exceptions.php';
|
||||||
require_once PATH_LIB . 'Format.php';
|
require_once PATH_LIB . 'Format.php';
|
||||||
require_once PATH_LIB . 'FormatAbstract.php';
|
require_once PATH_LIB . 'FormatAbstract.php';
|
||||||
|
|
Loading…
Reference in a new issue