From dc251acd599e43944f19e5feee5a67a39e4aab11 Mon Sep 17 00:00:00 2001 From: vargenau Date: Mon, 11 Apr 2011 08:36:32 +0000 Subject: [PATCH] We assume PHP >= 4.3.9, so debug_backtrace exists git-svn-id: svn://svn.code.sf.net/p/phpwiki/code/trunk@8031 96ab9672-09ca-45d6-a79d-3d69d39ca109 --- lib/ErrorManager.php | 6 +-- lib/WikiDB.php | 10 ++--- lib/WikiDB/backend/PearDB.php | 82 +++++++++++++++++------------------ lib/WikiTheme.php | 2 +- tests/unit/test.php | 16 +++---- 5 files changed, 53 insertions(+), 63 deletions(-) diff --git a/lib/ErrorManager.php b/lib/ErrorManager.php index 291d9f0d5..f8530d68b 100644 --- a/lib/ErrorManager.php +++ b/lib/ErrorManager.php @@ -274,8 +274,7 @@ class ErrorManager if (defined('DEBUG') and (DEBUG & _DEBUG_TRACE)) { echo "error_reporting=",error_reporting(),"\n
"; - if (function_exists("debug_backtrace")) // >= 4.3.0 - $error->printSimpleTrace(debug_backtrace()); + $error->printSimpleTrace(debug_backtrace()); } $this->_die($error); } @@ -299,8 +298,7 @@ class ErrorManager $this->_noCacheHeaders(); if (defined('DEBUG') and (DEBUG & _DEBUG_TRACE)) { echo "error_reporting=",error_reporting(),"\n"; - if (function_exists("debug_backtrace")) // >= 4.3.0 - $error->printSimpleTrace(debug_backtrace()); + $error->printSimpleTrace(debug_backtrace()); } $error->printXML(); } diff --git a/lib/WikiDB.php b/lib/WikiDB.php index d404b9fc2..c4db3664f 100644 --- a/lib/WikiDB.php +++ b/lib/WikiDB.php @@ -675,9 +675,7 @@ class WikiDB { // SQL result: for simple select or create/update queries // returns the database specific resource type function genericSqlQuery($sql, $args=false) { - if (function_exists('debug_backtrace')) { // >= 4.3.0 - echo "
", printSimpleTrace(debug_backtrace()), "
\n"; - } + echo "
", printSimpleTrace(debug_backtrace()), "
\n"; trigger_error("no SQL database", E_USER_ERROR); return false; } @@ -685,9 +683,7 @@ class WikiDB { // SQL iter: for simple select or create/update queries // returns the generic iterator object (count,next) function genericSqlIter($sql, $field_list = NULL) { - if (function_exists('debug_backtrace')) { // >= 4.3.0 - echo "
", printSimpleTrace(debug_backtrace()), "
\n"; - } + echo "
", printSimpleTrace(debug_backtrace()), "
\n"; trigger_error("no SQL database", E_USER_ERROR); return false; } @@ -738,7 +734,7 @@ class WikiDB_Page if (!(is_string($pagename) and $pagename != '')) { if (function_exists("xdebug_get_function_stack")) { echo "xdebug_get_function_stack(): "; var_dump(xdebug_get_function_stack()); - } elseif (function_exists("debug_backtrace")) { // >= 4.3.0 + } else { printSimpleTrace(debug_backtrace()); } trigger_error("empty pagename", E_USER_WARNING); diff --git a/lib/WikiDB/backend/PearDB.php b/lib/WikiDB/backend/PearDB.php index 2db99b902..a7a24e02c 100644 --- a/lib/WikiDB/backend/PearDB.php +++ b/lib/WikiDB/backend/PearDB.php @@ -40,7 +40,7 @@ extends WikiDB_backend $ErrorManager->pushErrorHandler(new WikiMethodCb($this, '_pear_notice_filter')); $this->_pearerrhandler = true; } - + // Open connection to database $this->_dsn = $dbparams['dsn']; $this->_dbparams = $dbparams; @@ -59,7 +59,7 @@ extends WikiDB_backend isset($dbparams['_tryroot_from_upgrade']) // hack! ? E_USER_WARNING : E_USER_ERROR); if (isset($dbparams['_tryroot_from_upgrade'])) - return; + return; } $dbh->setErrorHandling(PEAR_ERROR_CALLBACK, array($this, '_pear_error_callback')); @@ -84,9 +84,9 @@ extends WikiDB_backend 'maxversion' => "MAX(version)", 'notempty' => "<>''", 'iscontent' => "content<>''"); - + } - + /** * Close database connection. */ @@ -120,7 +120,7 @@ extends WikiDB_backend . " AND pagename='%s'", $dbh->escapeSimple($pagename))); } - + function get_all_pagenames() { $dbh = &$this->_dbh; extract($this->_table_names); @@ -136,7 +136,7 @@ extends WikiDB_backend . " FROM $nonempty_tbl, $page_tbl" . " WHERE $nonempty_tbl.id=$page_tbl.id"); } - + function increaseHitCount($pagename) { $dbh = &$this->_dbh; // Hits is the only thing we can update in a fast manner. @@ -192,7 +192,7 @@ extends WikiDB_backend $data = array(); $this->_get_pageid($pagename, true); // Creates page record } - + $hits = !empty($data['hits']) ? (int)$data['hits'] : 0; unset($data['hits']); @@ -239,7 +239,7 @@ extends WikiDB_backend } function _get_pageid($pagename, $create_if_missing = false) { - + // check id_cache global $request; $cache =& $request->_dbi->_cache->_id_cache; @@ -254,7 +254,7 @@ extends WikiDB_backend $dbh = &$this->_dbh; $page_tbl = $this->_table_names['page_tbl']; - + $query = sprintf("SELECT id FROM $page_tbl WHERE pagename='%s'", $dbh->escapeSimple($pagename)); @@ -291,7 +291,7 @@ extends WikiDB_backend function get_previous_version($pagename, $version) { $dbh = &$this->_dbh; extract($this->_table_names); - + return (int)$dbh->getOne(sprintf("SELECT version" . " FROM $version_tbl, $page_tbl" @@ -305,7 +305,7 @@ extends WikiDB_backend $dbh->escapeSimple($pagename), $version)); } - + /** * Get version data. * @@ -321,7 +321,7 @@ extends WikiDB_backend assert(is_string($pagename) and $pagename != ""); assert($version > 0); - + //trigger_error("GET_REVISION $pagename $version $want_content", E_USER_NOTICE); // FIXME: optimization: sometimes don't get page data? if ($want_content) { @@ -358,10 +358,10 @@ extends WikiDB_backend base64_decode($query_result['versiondata']); } $data = $this->_unserialize($query_result['versiondata']); - + $data['mtime'] = $query_result['mtime']; $data['is_minor_edit'] = !empty($query_result['minor_edit']); - + if (isset($query_result['content'])) $data['%content'] = $query_result['content']; elseif ($query_result['have_content']) @@ -387,10 +387,10 @@ extends WikiDB_backend function set_versiondata($pagename, $version, $data) { $dbh = &$this->_dbh; $version_tbl = $this->_table_names['version_tbl']; - + $minor_edit = (int) !empty($data['is_minor_edit']); unset($data['is_minor_edit']); - + $mtime = (int)$data['mtime']; unset($data['mtime']); assert(!empty($mtime)); @@ -399,7 +399,7 @@ extends WikiDB_backend unset($data['%content']); unset($data['%pagedata']); - + $this->lock(); $id = $this->_get_pageid($pagename, true); @@ -415,10 +415,10 @@ extends WikiDB_backend $this->_update_recent_table($id); $this->_update_nonempty_table($id); - + $this->unlock(); } - + /** * Delete an old revision of a page. */ @@ -469,7 +469,7 @@ extends WikiDB_backend function purge_page($pagename) { $dbh = &$this->_dbh; extract($this->_table_names); - + $this->lock(); if ( ($id = $this->_get_pageid($pagename, false)) ) { $dbh->query("DELETE FROM $nonempty_tbl WHERE id=$id"); @@ -532,7 +532,6 @@ extends WikiDB_backend $linkid = $this->_get_pageid($linkto, true); if (!$linkid) { echo("No link for $linkto on page $pagename"); - //printSimpleTrace(debug_backtrace()); trigger_error("No link for $linkto on page $pagename"); } assert($linkid); @@ -543,7 +542,7 @@ extends WikiDB_backend } $this->unlock(); } - + /** * Find pages which link to or are linked from a page. * @@ -589,7 +588,7 @@ extends WikiDB_backend } else { $result = $dbh->query($sql); } - + return new WikiDB_backend_PearDB_iter($this, $result); } @@ -672,7 +671,7 @@ extends WikiDB_backend } return new WikiDB_backend_PearDB_iter($this, $result, $options); } - + /** * Title search. * Todo: exclude @@ -691,7 +690,7 @@ extends WikiDB_backend if (!class_exists($searchclass)) $searchclass = "WikiDB_backend_PearDB_search"; $searchobj = new $searchclass($search, $dbh); - + $table = "$nonempty_tbl, $page_tbl"; $join_clause = "$nonempty_tbl.id=$page_tbl.id"; $fields = $this->page_tbl_fields; @@ -709,7 +708,7 @@ extends WikiDB_backend $callback = new WikiMethodCb($searchobj, "_pagename_match_clause"); } $search_clause = $search->makeSqlClauseObj($callback); - + $sql = "SELECT $fields FROM $table" . " WHERE $join_clause" . " AND ($search_clause)" @@ -720,7 +719,7 @@ extends WikiDB_backend } else { $result = $dbh->query($sql); } - + $iter = new WikiDB_backend_PearDB_iter($this, $result); $iter->stoplisted = @$searchobj->stoplisted; return $iter; @@ -811,7 +810,6 @@ extends WikiDB_backend if ($since) $pick[] = "mtime >= $since"; - if ($include_all_revisions) { // Include all revisions of each page. $table = "$page_tbl, $version_tbl"; @@ -831,7 +829,7 @@ extends WikiDB_backend $join_clause = "$page_tbl.id=$recent_tbl.id"; $table .= ", $version_tbl"; $join_clause .= " AND $version_tbl.id=$page_tbl.id"; - + if ($exclude_major_revisions) { // Include only most recent minor revision $pick[] = 'version=latestminor'; @@ -916,7 +914,7 @@ extends WikiDB_backend function rename_page ($pagename, $to) { $dbh = &$this->_dbh; extract($this->_table_names); - + $this->lock(); if (($id = $this->_get_pageid($pagename, false)) ) { if ($new = $this->_get_pageid($to, false)) { @@ -976,7 +974,7 @@ extends WikiDB_backend //. " AND content<>''" . " AND content $notempty" . ( $pageid ? " AND $recent_tbl.id=$pageid" : "")); - + $this->unlock(); } @@ -1000,7 +998,7 @@ extends WikiDB_backend function _lock_tables($write_lock) { trigger_error("virtual", E_USER_ERROR); } - + /** * Release a write lock on the tables in the SQL database. * @@ -1044,7 +1042,7 @@ extends WikiDB_backend function _unserialize($data) { return empty($data) ? array() : unserialize($data); } - + /** * Callback for PEAR (DB) errors. * @@ -1055,7 +1053,7 @@ extends WikiDB_backend function _pear_error_callback($error) { if ($this->_is_false_error($error)) return; - + $this->_dbh->setErrorHandling(PEAR_ERROR_PRINT); // prevent recursive loops. $this->close(); trigger_error($this->_pear_error_message($error), E_USER_ERROR); @@ -1084,13 +1082,13 @@ extends WikiDB_backend //" <--kludge for brain-dead syntax coloring return false; } - + if (! in_array('ismanip', get_class_methods('DB'))) { // Pear shipped with PHP 4.0.4pl1 (and before, presumably) // does not have the DB::isManip method. return true; } - + if (DB::isManip($query)) { // If Pear thinks it's an isManip then it wouldn't have thrown // the error we're testing for.... @@ -1187,7 +1185,7 @@ extends WikiDB_backend_iterator // This shouldn't happen, I thought. $backend->_pear_error_callback($query_result); } - + $this->_backend = &$backend; $this->_result = $query_result; $this->_options = $field_list; @@ -1198,7 +1196,7 @@ extends WikiDB_backend_iterator return false; return $this->_result->numRows(); } - + function next() { if (!$this->_result) return false; @@ -1208,7 +1206,7 @@ extends WikiDB_backend_iterator $this->free(); return false; } - + return $record; } @@ -1247,7 +1245,7 @@ extends WikiDB_backend_PearDB_generic_iter $this->free(); return false; } - + $pagedata = $backend->_extract_page_data($record); $rec = array('pagename' => $record['pagename'], 'pagedata' => $pagedata); @@ -1256,7 +1254,7 @@ extends WikiDB_backend_PearDB_generic_iter $rec['versiondata'] = $backend->_extract_version_data($record); $rec['version'] = $record['version']; } - + return $rec; } } @@ -1273,5 +1271,5 @@ class WikiDB_backend_PearDB_search extends WikiDB_backend_search_sql // c-basic-offset: 4 // c-hanging-comment-ender-p: nil // indent-tabs-mode: nil -// End: +// End: ?> diff --git a/lib/WikiTheme.php b/lib/WikiTheme.php index 061bb1256..d585959d2 100644 --- a/lib/WikiTheme.php +++ b/lib/WikiTheme.php @@ -272,7 +272,7 @@ class WikiTheme { } else if (!$missing_okay) { trigger_error("$this->_theme/$file: not found", E_USER_NOTICE); - if ((DEBUG & _DEBUG_TRACE) && function_exists('debug_backtrace')) { // >= 4.3.0 + if ((DEBUG & _DEBUG_TRACE) { echo "
", printSimpleTrace(debug_backtrace()), "
\n"; } } diff --git a/tests/unit/test.php b/tests/unit/test.php index fce199508..668f3e178 100644 --- a/tests/unit/test.php +++ b/tests/unit/test.php @@ -98,7 +98,7 @@ if ((int)substr(phpversion(), 1) >= 5) array_push($database_backends, 'PDO_pqsql', 'PDO_sqlite', 'PDO_mysql'); //'PDO_oci', 'PDO_odbc' -//TODO: convert cvs test +//TODO: convert cvs test // For "cvs" see the seperate tests/unit_test_backend_cvs.php (cvs is experimental) //TODO: read some database values from config.ini, just use the "test_" prefix // "flatfile" testing occurs in "tests/unit/.testbox/flatfile" @@ -146,10 +146,8 @@ function printSimpleTrace($bt) { function assert_callback( $script, $line, $message ) { echo "assert failed: script ", $script," line ", $line," :"; echo "$message"; - if (function_exists('debug_backtrace')) { // >= 4.3.0 - echo "Traceback:\n"; - printSimpleTrace(debug_backtrace()); - } + echo "Traceback:\n"; + printSimpleTrace(debug_backtrace()); exit; } $foo = assert_options( ASSERT_CALLBACK, 'assert_callback'); @@ -386,7 +384,7 @@ elseif (!empty($HTTP_SERVER_VARS['argv'])) elseif (!ini_get("register_argc_argv")) echo "Could not read cmd args (register_argc_argv=Off?)\n"; // purge the testbox - + $debug_level = 1; //was 9, _DEBUG_VERBOSE | _DEBUG_TRACE //if (defined('E_STRICT')) $debug_level = 5; // add PARSER flag on php5 $user_level = 1; // BOGO (conflicts with RateIt) @@ -417,7 +415,7 @@ if (isset($HTTP_SERVER_VARS['REQUEST_METHOD'])) { } } elseif (!empty($argv) and preg_match("/test\.php$/", $argv[0])) { array_shift($argv); -} +} if (!empty($argv)) { $runtests = array(); $define = array(); @@ -635,7 +633,7 @@ foreach ($run_database_backends as $dbtype) { $suite = new PHPUnit_TestSuite("phpwiki"); if (file_exists(dirname(__FILE__).'/lib/'.$test.'.php')) require_once dirname(__FILE__).'/lib/'.$test.'.php'; - else + else require_once dirname(__FILE__).'/lib/plugin/'.$test.'.php'; $suite->addTest( new PHPUnit_TestSuite($test) ); @@ -667,5 +665,5 @@ if (isset($HTTP_SERVER_VARS['REQUEST_METHOD'])) // c-basic-offset: 4 // c-hanging-comment-ender-p: nil // indent-tabs-mode: nil -// End: +// End: ?> -- 2.45.0