Update of /cvsroot/phpweather/phpweather
In directory usw-pr-cvs1:/tmp/cvs-serv5332
Modified Files:
base_object.php
Log Message:
We now have three functions for reporting errors, warnings, and
debug-information. They all accept a message (mandatory argument) and
optionally a filename and a linenumber.
Whether or not the functions make any output, is controlled by
$this->verbosity.
Index: base_object.php
===================================================================
RCS file: /cvsroot/phpweather/phpweather/base_object.php,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- base_object.php 2001/07/08 18:57:34 1.10
+++ base_object.php 2001/07/17 12:12:03 1.11
@@ -33,6 +33,26 @@
* @var string
*/
var $version;
+
+
+ /**
+ * The verbosity level of PHP Weather.
+ *
+ * This variable controls the amount of output you'll see when PHP
+ * Weather is running.
+ *
+ * If the first bit is set, then errors will be reported and
+ * terminate the script. If the second bit it set warnings will be
+ * reported, and if the third bit is set, then debug-information
+ * will also be printed.
+ *
+ * It works like error_reporting() does in PHP, so take a look at
+ * that.
+ *
+ * @var integer
+ */
+ var $verbosity = 0;
+
/**
* Sets up the properties by overriding the defaults with the actual input.
@@ -50,13 +70,15 @@
include(PHPWEATHER_BASE_DIR . '/defaults-dist.php');
if(file_exists(PHPWEATHER_BASE_DIR . '/defaults.php')) {
- include_once(PHPWEATHER_BASE_DIR . '/defaults.php');
+ include(PHPWEATHER_BASE_DIR . '/defaults.php');
}
-
- /* Then we override the defaults with the actual properties */
+
+ /* Then we override the defaults with the actual properties */
while (list($key, $value) = each($input)) {
$this->properties[$key] = $value;
}
+ /* We also set the verbosity. */
+ $this->set_verbosity($this->properties['verbosity']);
/* And finally, we set the version. */
$this->version = '#VERSION#';
@@ -64,30 +86,97 @@
}
/**
- * Prints an error-message.
+ * Changed the verbosity level.
*
- * You should supply it with a string as the argument, and it will
- * then print the string, prefixed with the word 'Error' in bold.
+ * @param integer The new level of verbosity.
+ * @return void There's no need to return anything here.
+ * @see get_verbosity(), $verbosity
+ */
+ function set_verbosity($new_verbosity) {
+ $this->verbosity = $new_verbosity;
+ return;
+ }
+
+ /**
+ * Get the level of verbosity.
*
- * @param $msg string The error-message.
+ * @see set_verbosity(), $verbosity
*/
- function error($msg) {
- echo "<p><b>Error</b>: $msg</p>\n";
+ function get_verbosity() {
+ return $this->verbosity;
}
/**
- * Prints a notice.
+ * Prints an error-message and halts execution.
*
- * You should supply it with a string as the argument, and it will
- * then print the string, prefixed with the word 'Debug' in bold.
+ * If the first bit is set in $this->verbosity, this function will
+ * print the message, prefixed with the word 'Error:' in bold. If
+ * you supply it with the optional arguments $file and $line, these
+ * will also be printed.
*
- * @param $msg string The notice.
+ * The script will be terminated after the message has been shown.
+ *
+ * @param string The error-message.
+ * @param string The name of the file where the error occurred.
+ * @param string The line where the error occurred.
*/
- function debug($msg) {
- if (defined('DEBUG')) {
- echo "<p><b>Debug</b>: $msg</p>\n";
- }
- }
+ function error($msg, $file = '', $line = '') {
+ if ($this->verbosity & 1) {
+ if (!empty($line)) {
+ echo "<p><b>Fatal error:</b> $msg.\n<br>Line <b>$line</b> in file
+<b>$file</b>.</p>\n";
+ } else {
+ echo "<p><b>Fatal error:</b> $msg.</p>\n";
+ }
+ exit;
+ }
+ }
+
+
+ /**
+ * Issues a warning.
+ *
+ * If the second bit is set in $this->verbosity, this function will
+ * print the message, prefixed with the word 'Warning:' in bold. If
+ * you supply it with the optional arguments $file and $line, these
+ * will also be printed.
+ *
+ * Execution of the script continues.
+ *
+ * @param string The warning.
+ * @param string The name of the file where the error occurred.
+ * @param string The line where the error occurred.
+ */
+ function warning($msg, $file = '', $line = '') {
+ if ($this->verbosity & 2) {
+ if (!empty($line)) {
+ die("<p><b>Warning:</b> $msg.\n<br>Line <b>$line</b> in file
+<b>$file</b>.</p>\n");
+ } else {
+ die("<p><b>Warning:</b> $msg.</p>\n");
+ }
+ }
+ }
+
+
+ /**
+ * Prints a message for debugging.
+ *
+ * The message is only printed if the third bit is set in
+ * $this->verbosity. The word 'Debug:' in bold will be prefixed the
+ * message.
+ *
+ * @param string The debug-message.
+ * @param string The name of the file where the message comes from.
+ * @param string The line where the message comes from.
+ */
+ function debug($msg, $file = '', $line = '') {
+ if ($this->verbosity & 4) {
+ if (!empty($line)) {
+ echo "<p><b>Debug:</b> $msg. Line <b>$line</b> in file <b>$file</b>.</p>\n";
+ } else {
+ echo "<p><b>Debug:</b> $msg.</p>\n";
+ }
+ }
+ }
/**
* Prints properties.
_______________________________________________
PHPWeather-checkins mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/phpweather-checkins