Updates some documentation + CronjobUtil "fixes"
authorMatthias Schmidt <gravatronics@live.com>
Fri, 9 Sep 2011 10:06:23 +0000 (12:06 +0200)
committerMatthias Schmidt <gravatronics@live.com>
Fri, 9 Sep 2011 10:06:23 +0000 (12:06 +0200)
Additionally in `wcf\util\CronjobUtil::calculateNextExec()` the
`$values` variable is initialized, the arrays with the day and month
abbreviations are created before the foreach loop and the array name in
the dow case is corrected.

wcfsetup/install/files/lib/util/CronjobUtil.class.php
wcfsetup/install/files/lib/util/DateUtil.class.php
wcfsetup/install/files/lib/util/XML.class.php

index a1e53544702915be15425f5854a91c163241aae2..bebedd7ca045294936501468598d72fdf29c1282 100644 (file)
@@ -15,38 +15,33 @@ namespace wcf\util;
  */
 abstract class CronjobUtil {
        /**
-        * Set to true if day of month is '*'
-        * 
+        * indicates if day of month is restricted (not '*')
         * @var boolean
         */
        protected static $domRestricted = false;
        
        /**
-        * Set to true if day of week is '*'
-        * 
+        * indicates if day of week is restricted (not '*')
         * @var boolean
         */
        protected static $dowRestricted = false;
        
        /**
-        * Result date
-        * 
+        * result date
         * @var array<integer>
         */
        protected static $result = array();
        
        /**
-        * Time based used as reference for finding the next time of execution
-        * 
+        * time base used as reference for finding the next execution time
         * @var integer
         */
        protected static $timeBase = 0;
        
        /**
-        * Valid ranges for each known field. Note that the range for
-        * 'day of month' is missing, since it varies on each month.
-        * 
-        * @var array<array>
+        * valid ranges for each known field (range for 'day of month' is missing
+        * since it varies from month to month)
+        * @var array<integer>
         */
        public static $ranges = array(
                'minute' => array(0, 59),
@@ -89,7 +84,11 @@ abstract class CronjobUtil {
                self::$domRestricted = ($dom != '*') ? true : false;
                self::$dowRestricted = ($dow != '*') ? true : false;
                
+               $dayNames = array('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat');
+               $monthNames = array('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec');
+               
                // calculate values based upon each expression
+               $values = array();
                foreach ($fields as $fieldName => $fieldValue) {
                        $fieldValue = StringUtil::toLowerCase($fieldValue);
                        
@@ -100,10 +99,8 @@ abstract class CronjobUtil {
                        
                        switch ($fieldName) {
                                case 'dow':
-                                       $dayNames = array('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat');
-                                       
                                        if (strlen($fieldValue) == 3 && in_array($fieldName, $dayNames)) {
-                                               $fieldValue = $monthNames[$fieldValue];
+                                               $fieldValue = $dayNames[$fieldValue];
                                        }
                                        // When specifying day of week, both day 0 and day 7
                                        // will be considered Sunday. -- crontab(5) 
@@ -113,8 +110,6 @@ abstract class CronjobUtil {
                                break;
                                
                                case 'month':
-                                       $monthNames = array('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec');
-                                       
                                        if (strlen($fieldValue) == 3 && in_array($fieldValue, $monthNames)) {
                                                $fieldValue = $monthNames[$fieldValue] + 1;
                                        }
index 43dcebb7d988e98ecab747180f9d5509b2a2783c..59219512c7b729b590ea21daca81ee5352b52f8e 100644 (file)
@@ -133,10 +133,10 @@ class DateUtil {
        /**
         * Returns a formatted date.
         * 
-        * @param       DateTime                $time
-        * @param       string                  $format
-        * @param       Language                $language
-        * @param       User                    $user
+        * @param       \DateTime       $time
+        * @param       string          $format
+        * @param       wcf\data\language\Language      $language
+        * @param       wcf\data\user\User              $user
         */
        public static function format(\DateTime $time = null, $format = null, Language $language = null, User $user = null) {
                // get default values
@@ -162,7 +162,7 @@ class DateUtil {
         * 
         * @param       string          $date
         * @param       string          $format
-        * @param       Language        $language
+        * @param       wcf\data\language\Language      $language
         */
        public static function localizeDate($date, $format, Language $language) {
                if ($language->languageCode != 'en') {
@@ -236,7 +236,7 @@ class DateUtil {
         * Creates a DateTime object with the given unix timestamp.
         * 
         * @param       integer         $timestamp
-        * @return      DateTime
+        * @return      \DateTime
         */
        public static function getDateTimeByTimestamp($timestamp) {
                return new \DateTime('@'.$timestamp);
index a6201183388cbee60cc5cda6c4ff80c100128c5a..fb295b5b4c3891819cfb20d56a199360f75bb958 100644 (file)
@@ -15,29 +15,25 @@ use wcf\system\exception\SystemException;
 class XML {
        /**
         * DOMDocument object
-        * 
-        * @var DOMDocument
+        * @var \DOMDocument
         */
        protected $document = null;
        
        /**
         * document path
-        * 
         * @var string
         */
        protected $path = '';
        
        /**
         * schema file path
-        * 
         * @var string
         */
        protected $schema = '';
        
        /**
         * DOMXPath object
-        * 
-        * @var DOMXPath
+        * @var \DOMXPath
         */
        protected $xpath = null;
        
@@ -134,7 +130,7 @@ class XML {
         * Returns a DOMXPath object bound to current DOMDocument object. Default
         * namespace will be bound to prefix 'ns'.
         * 
-        * @return      DOMXPath
+        * @return      \DOMXPath
         */
        public function xpath() {
                if ($this->xpath === null) {