Passed
Push — master ( b33de3...cb7df5 )
by Sebastian
02:24
created
src/ImageHelper.php 1 patch
Indentation   +435 added lines, -435 removed lines patch added patch discarded remove patch
@@ -68,54 +68,54 @@  discard block
 block discarded – undo
68 68
     
69 69
     const ERROR_UNEXPECTED_COLOR_VALUE = 513025;
70 70
 
71
-   /**
72
-    * @var string
73
-    */
71
+    /**
72
+     * @var string
73
+     */
74 74
     protected $file;
75 75
 
76
-   /**
77
-    * @var ImageHelper_Size
78
-    */
76
+    /**
77
+     * @var ImageHelper_Size
78
+     */
79 79
     protected $info;
80 80
 
81
-   /**
82
-    * @var string
83
-    */
81
+    /**
82
+     * @var string
83
+     */
84 84
     protected $type;
85 85
 
86
-   /**
87
-    * @var resource|NULL
88
-    */
86
+    /**
87
+     * @var resource|NULL
88
+     */
89 89
     protected $newImage;
90 90
 
91
-   /**
92
-    * @var resource
93
-    */
91
+    /**
92
+     * @var resource
93
+     */
94 94
     protected $sourceImage;
95 95
 
96
-   /**
97
-    * @var int
98
-    */
96
+    /**
97
+     * @var int
98
+     */
99 99
     protected $width;
100 100
 
101
-   /**
102
-    * @var int
103
-    */
101
+    /**
102
+     * @var int
103
+     */
104 104
     protected $height;
105 105
 
106
-   /**
107
-    * @var int
108
-    */
106
+    /**
107
+     * @var int
108
+     */
109 109
     protected $newWidth = 0;
110 110
 
111
-   /**
112
-    * @var int
113
-    */
111
+    /**
112
+     * @var int
113
+     */
114 114
     protected $newHeight = 0;
115 115
 
116
-   /**
117
-    * @var int
118
-    */
116
+    /**
117
+     * @var int
118
+     */
119 119
     protected $quality = 85;
120 120
     
121 121
     protected static $imageTypes = array(
@@ -203,17 +203,17 @@  discard block
 block discarded – undo
203 203
         }
204 204
     }
205 205
 
206
-   /**
207
-    * Factory method: creates a new helper with a blank image.
208
-    * 
209
-    * @param integer $width
210
-    * @param integer $height
211
-    * @param string $type The target file type when saving
212
-    * @return ImageHelper
213
-    * @throws ImageHelper_Exception
214
-    *
215
-    * @see ImageHelper::ERROR_CANNOT_CREATE_IMAGE_OBJECT
216
-    */
206
+    /**
207
+     * Factory method: creates a new helper with a blank image.
208
+     * 
209
+     * @param integer $width
210
+     * @param integer $height
211
+     * @param string $type The target file type when saving
212
+     * @return ImageHelper
213
+     * @throws ImageHelper_Exception
214
+     *
215
+     * @see ImageHelper::ERROR_CANNOT_CREATE_IMAGE_OBJECT
216
+     */
217 217
     public static function createNew($width, $height, $type='png')
218 218
     {
219 219
         $img = imagecreatetruecolor($width, $height);
@@ -228,18 +228,18 @@  discard block
 block discarded – undo
228 228
         );
229 229
     }
230 230
     
231
-   /**
232
-    * Factory method: creates an image helper from an
233
-    * existing image resource.
234
-    *
235
-    * Note: while the resource is type independent, the
236
-    * type parameter is required for some methods, as well
237
-    * as to be able to save the image.
238
-    *
239
-    * @param resource $resource
240
-    * @param string $type The target image type, e.g. "jpeg", "png", etc.
241
-    * @return ImageHelper
242
-    */
231
+    /**
232
+     * Factory method: creates an image helper from an
233
+     * existing image resource.
234
+     *
235
+     * Note: while the resource is type independent, the
236
+     * type parameter is required for some methods, as well
237
+     * as to be able to save the image.
238
+     *
239
+     * @param resource $resource
240
+     * @param string $type The target image type, e.g. "jpeg", "png", etc.
241
+     * @return ImageHelper
242
+     */
243 243
     public static function createFromResource($resource, ?string $type=null)
244 244
     {
245 245
         self::requireResource($resource);
@@ -247,29 +247,29 @@  discard block
 block discarded – undo
247 247
         return new ImageHelper(null, $resource, $type);
248 248
     }
249 249
     
250
-   /**
251
-    * Factory method: creates an image helper from an
252
-    * image file on disk.
253
-    *
254
-    * @param string $file
255
-    * @return ImageHelper
256
-    */
250
+    /**
251
+     * Factory method: creates an image helper from an
252
+     * image file on disk.
253
+     *
254
+     * @param string $file
255
+     * @return ImageHelper
256
+     */
257 257
     public static function createFromFile(string $file) : ImageHelper
258 258
     {
259 259
         return new ImageHelper($file);
260 260
     }
261 261
     
262
-   /**
263
-    * Sets a global image helper configuration value. Available
264
-    * configuration settings are:
265
-    * 
266
-    * <ul>
267
-    * <li><code>auto-memory-adjustment</code> <i>boolean</i> Whether totry and adjust the memory limit automatically so there will be enough to load/process the target image.</li>
268
-    * </ul>
269
-    * 
270
-    * @param string $name
271
-    * @param mixed $value
272
-    */
262
+    /**
263
+     * Sets a global image helper configuration value. Available
264
+     * configuration settings are:
265
+     * 
266
+     * <ul>
267
+     * <li><code>auto-memory-adjustment</code> <i>boolean</i> Whether totry and adjust the memory limit automatically so there will be enough to load/process the target image.</li>
268
+     * </ul>
269
+     * 
270
+     * @param string $name
271
+     * @param mixed $value
272
+     */
273 273
     public static function setConfig($name, $value)
274 274
     {
275 275
         if(isset(self::$config[$name])) {
@@ -277,22 +277,22 @@  discard block
 block discarded – undo
277 277
         }
278 278
     }
279 279
     
280
-   /**
281
-    * Shorthand for setting the automatic memory adjustment
282
-    * global configuration setting.
283
-    * 
284
-    * @param bool $enabled
285
-    */
280
+    /**
281
+     * Shorthand for setting the automatic memory adjustment
282
+     * global configuration setting.
283
+     * 
284
+     * @param bool $enabled
285
+     */
286 286
     public static function setAutoMemoryAdjustment($enabled=true)
287 287
     {
288 288
         self::setConfig('auto-memory-adjustment', $enabled);
289 289
     }
290 290
     
291
-   /**
292
-    * Duplicates an image resource.
293
-    * @param resource $img
294
-    * @return resource
295
-    */
291
+    /**
292
+     * Duplicates an image resource.
293
+     * @param resource $img
294
+     * @return resource
295
+     */
296 296
     protected function duplicateImage($img)
297 297
     {
298 298
         self::requireResource($img);
@@ -304,12 +304,12 @@  discard block
 block discarded – undo
304 304
         return $duplicate;
305 305
     }
306 306
     
307
-   /**
308
-    * Duplicates the current state of the image into a new
309
-    * image helper instance.
310
-    * 
311
-    * @return ImageHelper
312
-    */
307
+    /**
308
+     * Duplicates the current state of the image into a new
309
+     * image helper instance.
310
+     * 
311
+     * @return ImageHelper
312
+     */
313 313
     public function duplicate()
314 314
     {
315 315
         return ImageHelper::createFromResource($this->duplicateImage($this->newImage));
@@ -497,13 +497,13 @@  discard block
 block discarded – undo
497 497
         ));
498 498
     }
499 499
     
500
-   /**
501
-    * Resamples the image to a new width, maintaining
502
-    * aspect ratio.
503
-    * 
504
-    * @param int $width
505
-    * @return ImageHelper
506
-    */
500
+    /**
501
+     * Resamples the image to a new width, maintaining
502
+     * aspect ratio.
503
+     * 
504
+     * @param int $width
505
+     * @return ImageHelper
506
+     */
507 507
     public function resampleByWidth(int $width) : ImageHelper
508 508
     {
509 509
         $size = $this->getSizeByWidth($width);
@@ -513,12 +513,12 @@  discard block
 block discarded – undo
513 513
         return $this;
514 514
     }
515 515
 
516
-   /**
517
-    * Resamples the image by height, and creates a new image file on disk.
518
-    * 
519
-    * @param int $height
520
-    * @return ImageHelper
521
-    */
516
+    /**
517
+     * Resamples the image by height, and creates a new image file on disk.
518
+     * 
519
+     * @param int $height
520
+     * @return ImageHelper
521
+     */
522 522
     public function resampleByHeight($height) : ImageHelper
523 523
     {
524 524
         $size = $this->getSizeByHeight($height);
@@ -526,13 +526,13 @@  discard block
 block discarded – undo
526 526
         return $this->resampleImage($size->getWidth(), $size->getHeight());
527 527
     }
528 528
 
529
-   /**
530
-    * Resamples the image without keeping the aspect ratio.
531
-    * 
532
-    * @param int $width
533
-    * @param int $height
534
-    * @return ImageHelper
535
-    */
529
+    /**
530
+     * Resamples the image without keeping the aspect ratio.
531
+     * 
532
+     * @param int $width
533
+     * @param int $height
534
+     * @return ImageHelper
535
+     */
536 536
     public function resample(?int $width = null, ?int $height = null) : ImageHelper
537 537
     {
538 538
         if($this->isVector()) {
@@ -597,12 +597,12 @@  discard block
 block discarded – undo
597 597
     
598 598
     protected $alpha = false;
599 599
 
600
-   /**
601
-    * Configures the specified image resource to make it alpha compatible.
602
-    * 
603
-    * @param resource $canvas
604
-    * @param bool $fill Whether to fill the whole canvas with the transparency
605
-    */
600
+    /**
601
+     * Configures the specified image resource to make it alpha compatible.
602
+     * 
603
+     * @param resource $canvas
604
+     * @param bool $fill Whether to fill the whole canvas with the transparency
605
+     */
606 606
     public static function addAlphaSupport($canvas, $fill=true)
607 607
     {
608 608
         self::requireResource($canvas);
@@ -717,12 +717,12 @@  discard block
 block discarded – undo
717 717
         $this->quality = $quality * 1;
718 718
     }
719 719
 
720
-   /**
721
-    * Attempts to adjust the memory to the required size
722
-    * to work with the current image.
723
-    * 
724
-    * @return boolean
725
-    */
720
+    /**
721
+     * Attempts to adjust the memory to the required size
722
+     * to work with the current image.
723
+     * 
724
+     * @return boolean
725
+     */
726 726
     protected function adjustMemory() : bool
727 727
     {
728 728
         if(!self::$config['auto-memory-adjustment']) {
@@ -762,27 +762,27 @@  discard block
 block discarded – undo
762 762
         return false;
763 763
     }
764 764
 
765
-   /**
766
-    * Stretches the image to the specified dimensions.
767
-    * 
768
-    * @param int $width
769
-    * @param int $height
770
-    * @return ImageHelper
771
-    */
765
+    /**
766
+     * Stretches the image to the specified dimensions.
767
+     * 
768
+     * @param int $width
769
+     * @param int $height
770
+     * @return ImageHelper
771
+     */
772 772
     public function stretch(int $width, int $height) : ImageHelper
773 773
     {
774 774
         return $this->resampleImage($width, $height);
775 775
     }
776 776
 
777
-   /**
778
-    * Creates a new image from the current image,
779
-    * resampling it to the new size.
780
-    * 
781
-    * @param int $newWidth
782
-    * @param int $newHeight   
783
-    * @throws ImageHelper_Exception
784
-    * @return ImageHelper
785
-    */
777
+    /**
778
+     * Creates a new image from the current image,
779
+     * resampling it to the new size.
780
+     * 
781
+     * @param int $newWidth
782
+     * @param int $newHeight   
783
+     * @throws ImageHelper_Exception
784
+     * @return ImageHelper
785
+     */
786 786
     protected function resampleImage(int $newWidth, int $newHeight) : ImageHelper
787 787
     {
788 788
         if($this->isVector()) {
@@ -851,13 +851,13 @@  discard block
 block discarded – undo
851 851
         return array_unique($types);
852 852
     }
853 853
     
854
-   /**
855
-    * Displays an existing image resource.
856
-    *
857
-    * @param resource $resource
858
-    * @param string $imageType The image format to send, i.e. "jpeg", "png"
859
-    * @param int $quality The quality to use for the image. This is 0-9 (0=no compression, 9=max) for PNG, and 0-100 (0=lowest, 100=highest quality) for JPG 
860
-    */
854
+    /**
855
+     * Displays an existing image resource.
856
+     *
857
+     * @param resource $resource
858
+     * @param string $imageType The image format to send, i.e. "jpeg", "png"
859
+     * @param int $quality The quality to use for the image. This is 0-9 (0=no compression, 9=max) for PNG, and 0-100 (0=lowest, 100=highest quality) for JPG 
860
+     */
861 861
     public static function displayImageStream($resource, $imageType, $quality=-1)
862 862
     {
863 863
         $imageType = strtolower($imageType);
@@ -923,31 +923,31 @@  discard block
 block discarded – undo
923 923
         readfile($imageFile);
924 924
     }
925 925
     
926
-   /**
927
-    * Displays the current image.
928
-    */
926
+    /**
927
+     * Displays the current image.
928
+     */
929 929
     public function display()
930 930
     {
931 931
         $this->displayImageStream($this->newImage, $this->getType(), $this->resolveQuality());
932 932
     }
933 933
     
934
-   /**
935
-    * Trims the current loaded image.
936
-    * 
937
-    * @param array $color A color definition, as an associative array with red, green, and blue keys. If not specified, the color at pixel position 0,0 will be used.
938
-    */
934
+    /**
935
+     * Trims the current loaded image.
936
+     * 
937
+     * @param array $color A color definition, as an associative array with red, green, and blue keys. If not specified, the color at pixel position 0,0 will be used.
938
+     */
939 939
     public function trim($color=null)
940 940
     {
941 941
         return $this->trimImage($this->newImage, $color);
942 942
     }
943 943
     
944
-   /**
945
-    * Retrieves a color definition by its index.
946
-    * 
947
-    * @param resource $img A valid image resource.
948
-    * @param int $colorIndex The color index, as returned by imagecolorat for example.
949
-    * @return array An array with red, green, blue and alpha keys.
950
-    */
944
+    /**
945
+     * Retrieves a color definition by its index.
946
+     * 
947
+     * @param resource $img A valid image resource.
948
+     * @param int $colorIndex The color index, as returned by imagecolorat for example.
949
+     * @return array An array with red, green, blue and alpha keys.
950
+     */
951 951
     public function getIndexedColors($img, int $colorIndex) : array
952 952
     {
953 953
         $color = imagecolorsforindex($img, $colorIndex);
@@ -965,14 +965,14 @@  discard block
 block discarded – undo
965 965
         );
966 966
     }
967 967
         
968
-   /**
969
-    * Trims the specified image resource by removing the specified color.
970
-    * Also works with transparency.
971
-    * 
972
-    * @param resource $img
973
-    * @param array $color A color definition, as an associative array with red, green, blue and alpha keys. If not specified, the color at pixel position 0,0 will be used.
974
-    * @return ImageHelper
975
-    */
968
+    /**
969
+     * Trims the specified image resource by removing the specified color.
970
+     * Also works with transparency.
971
+     * 
972
+     * @param resource $img
973
+     * @param array $color A color definition, as an associative array with red, green, blue and alpha keys. If not specified, the color at pixel position 0,0 will be used.
974
+     * @return ImageHelper
975
+     */
976 976
     protected function trimImage($img, ?array $color=null) : ImageHelper
977 977
     {
978 978
         if($this->isVector()) {
@@ -1060,12 +1060,12 @@  discard block
 block discarded – undo
1060 1060
         return $this;
1061 1061
     }
1062 1062
     
1063
-   /**
1064
-    * Sets the new image after a transformation operation:
1065
-    * automatically adjusts the new size information.
1066
-    * 
1067
-    * @param resource $image
1068
-    */
1063
+    /**
1064
+     * Sets the new image after a transformation operation:
1065
+     * automatically adjusts the new size information.
1066
+     * 
1067
+     * @param resource $image
1068
+     */
1069 1069
     protected function setNewImage($image)
1070 1070
     {
1071 1071
         self::requireResource($image);
@@ -1075,12 +1075,12 @@  discard block
 block discarded – undo
1075 1075
         $this->newHeight= imagesy($image);
1076 1076
     }
1077 1077
     
1078
-   /**
1079
-    * Requires the subject to be a resource.
1080
-    * 
1081
-    * @param resource $subject
1082
-    * @throws ImageHelper_Exception
1083
-    */
1078
+    /**
1079
+     * Requires the subject to be a resource.
1080
+     * 
1081
+     * @param resource $subject
1082
+     * @throws ImageHelper_Exception
1083
+     */
1084 1084
     protected static function requireResource($subject)
1085 1085
     {
1086 1086
         if(is_resource($subject)) {
@@ -1097,14 +1097,14 @@  discard block
 block discarded – undo
1097 1097
         );
1098 1098
     }
1099 1099
     
1100
-   /**
1101
-    * Creates a new image resource, with transparent background.
1102
-    * 
1103
-    * @param int $width
1104
-    * @param int $height
1105
-    * @throws ImageHelper_Exception
1106
-    * @return resource
1107
-    */
1100
+    /**
1101
+     * Creates a new image resource, with transparent background.
1102
+     * 
1103
+     * @param int $width
1104
+     * @param int $height
1105
+     * @throws ImageHelper_Exception
1106
+     * @return resource
1107
+     */
1108 1108
     protected function createNewImage(int $width, int $height)
1109 1109
     {
1110 1110
         $img = imagecreatetruecolor($width, $height);
@@ -1123,54 +1123,54 @@  discard block
 block discarded – undo
1123 1123
         return $img;
1124 1124
     }
1125 1125
     
1126
-   /**
1127
-    * Whether the two specified colors are the same.
1128
-    * 
1129
-    * @param array $a
1130
-    * @param array $b
1131
-    * @return boolean
1132
-    */
1133
-	protected function colorsMatch($a, $b) : bool
1134
-	{
1135
-		$parts = array('red', 'green', 'blue');
1136
-		foreach($parts as $part) {
1137
-			if($a[$part] != $b[$part]) {
1138
-				return false;
1139
-			}
1140
-		} 
1126
+    /**
1127
+     * Whether the two specified colors are the same.
1128
+     * 
1129
+     * @param array $a
1130
+     * @param array $b
1131
+     * @return boolean
1132
+     */
1133
+    protected function colorsMatch($a, $b) : bool
1134
+    {
1135
+        $parts = array('red', 'green', 'blue');
1136
+        foreach($parts as $part) {
1137
+            if($a[$part] != $b[$part]) {
1138
+                return false;
1139
+            }
1140
+        } 
1141 1141
 		
1142
-		return true;
1143
-	}
1142
+        return true;
1143
+    }
1144 1144
 	
1145
-	public function fillWhite($x=0, $y=0)
1146
-	{
1147
-	    $this->addRGBColor('white', 255, 255, 255);
1145
+    public function fillWhite($x=0, $y=0)
1146
+    {
1147
+        $this->addRGBColor('white', 255, 255, 255);
1148 1148
         return $this->fill('white', $x, $y);
1149
-	}
1149
+    }
1150 1150
 	
1151
-	public function fillTransparent() : ImageHelper
1152
-	{
1151
+    public function fillTransparent() : ImageHelper
1152
+    {
1153 1153
         $this->enableAlpha();
1154 1154
 	    
1155
-	    self::fillImageTransparent($this->newImage);
1155
+        self::fillImageTransparent($this->newImage);
1156 1156
 	    
1157
-	    return $this;
1158
-	}
1157
+        return $this;
1158
+    }
1159 1159
 	
1160
-	public static function fillImageTransparent($resource)
1161
-	{
1162
-	    self::requireResource($resource);
1160
+    public static function fillImageTransparent($resource)
1161
+    {
1162
+        self::requireResource($resource);
1163 1163
 	    
1164
-	    $transparent = imagecolorallocatealpha($resource, 89, 14, 207, 127);
1165
-	    imagecolortransparent ($resource, $transparent);
1166
-	    imagefill($resource, 0, 0, $transparent);
1167
-	}
1164
+        $transparent = imagecolorallocatealpha($resource, 89, 14, 207, 127);
1165
+        imagecolortransparent ($resource, $transparent);
1166
+        imagefill($resource, 0, 0, $transparent);
1167
+    }
1168 1168
 	
1169
-	public function fill($colorName, $x=0, $y=0)
1170
-	{
1171
-	    imagefill($this->newImage, $x, $y, $this->colors[$colorName]);
1172
-	    return $this;
1173
-	}
1169
+    public function fill($colorName, $x=0, $y=0)
1170
+    {
1171
+        imagefill($this->newImage, $x, $y, $this->colors[$colorName]);
1172
+        return $this;
1173
+    }
1174 1174
 	
1175 1175
     protected $colors = array();
1176 1176
 
@@ -1191,9 +1191,9 @@  discard block
 block discarded – undo
1191 1191
         return $this;
1192 1192
     }
1193 1193
     
1194
-   /**
1195
-    * @return resource
1196
-    */
1194
+    /**
1195
+     * @return resource
1196
+     */
1197 1197
     public function getImage()
1198 1198
     {
1199 1199
         return $this->newImage;
@@ -1211,26 +1211,26 @@  discard block
 block discarded – undo
1211 1211
         return $this;
1212 1212
     }
1213 1213
     
1214
-   /**
1215
-    * Retrieves the size of the image.
1216
-    * 
1217
-    * @return ImageHelper_Size
1218
-    * @throws ImageHelper_Exception
1219
-    * @see ImageHelper::ERROR_CANNOT_GET_IMAGE_SIZE
1220
-    */
1221
-	public function getSize() : ImageHelper_Size
1214
+    /**
1215
+     * Retrieves the size of the image.
1216
+     * 
1217
+     * @return ImageHelper_Size
1218
+     * @throws ImageHelper_Exception
1219
+     * @see ImageHelper::ERROR_CANNOT_GET_IMAGE_SIZE
1220
+     */
1221
+    public function getSize() : ImageHelper_Size
1222 1222
     {
1223
-	    return self::getImageSize($this->newImage);
1223
+        return self::getImageSize($this->newImage);
1224 1224
     }
1225 1225
     
1226 1226
     protected $TTFFile;
1227 1227
     
1228
-   /**
1229
-    * Sets the TTF font file to use for text operations.
1230
-    * 
1231
-    * @param string $filePath
1232
-    * @return ImageHelper
1233
-    */
1228
+    /**
1229
+     * Sets the TTF font file to use for text operations.
1230
+     * 
1231
+     * @param string $filePath
1232
+     * @return ImageHelper
1233
+     */
1234 1234
     public function setFontTTF($filePath)
1235 1235
     {
1236 1236
         $this->TTFFile = $filePath;
@@ -1302,63 +1302,63 @@  discard block
 block discarded – undo
1302 1302
             return;
1303 1303
         }
1304 1304
         
1305
-	    throw new ImageHelper_Exception(
1305
+        throw new ImageHelper_Exception(
1306 1306
             'No true type font specified',
1307 1307
             'This functionality requires a TTF font file to be specified with the [setFontTTF] method.',
1308 1308
             self::ERROR_NO_TRUE_TYPE_FONT_SET    
1309 1309
         );
1310 1310
     }
1311 1311
     
1312
-   /**
1313
-	 * Retrieves the size of an image file on disk, or
1314
-	 * an existing image resource.
1315
-	 *
1316
-	 * <pre>
1317
-	 * array(
1318
-	 *     0: (width),
1319
-	 *     1: (height),
1320
-	 *     "channels": the amount of channels
1321
-	 *     "bits": bits per channel
1312
+    /**
1313
+     * Retrieves the size of an image file on disk, or
1314
+     * an existing image resource.
1315
+     *
1316
+     * <pre>
1317
+     * array(
1318
+     *     0: (width),
1319
+     *     1: (height),
1320
+     *     "channels": the amount of channels
1321
+     *     "bits": bits per channel
1322 1322
      * )     
1323
-	 * </pre>
1324
-	 *
1325
-	 * @param string|resource $pathOrResource
1326
-	 * @return ImageHelper_Size Size object, can also be accessed like the traditional array from getimagesize
1327
-	 * @see ImageHelper_Size
1328
-	 * @throws ImageHelper_Exception
1329
-	 * @see ImageHelper::ERROR_CANNOT_GET_IMAGE_SIZE
1330
-	 * @see ImageHelper::ERROR_CANNOT_READ_SVG_IMAGE
1331
-	 * @see ImageHelper::ERROR_SVG_SOURCE_VIEWBOX_MISSING
1332
-	 * @see ImageHelper::ERROR_SVG_VIEWBOX_INVALID
1333
-	 */
1334
-	public static function getImageSize($pathOrResource) : ImageHelper_Size
1335
-	{
1336
-	    if(is_resource($pathOrResource)) 
1337
-	    {
1338
-	        return new ImageHelper_Size(array(
1339
-	            'width' => imagesx($pathOrResource),
1340
-	            'height' => imagesy($pathOrResource),
1341
-	            'channels' => 1,
1342
-	            'bits' => 8
1343
-	        ));
1344
-	    }
1323
+     * </pre>
1324
+     *
1325
+     * @param string|resource $pathOrResource
1326
+     * @return ImageHelper_Size Size object, can also be accessed like the traditional array from getimagesize
1327
+     * @see ImageHelper_Size
1328
+     * @throws ImageHelper_Exception
1329
+     * @see ImageHelper::ERROR_CANNOT_GET_IMAGE_SIZE
1330
+     * @see ImageHelper::ERROR_CANNOT_READ_SVG_IMAGE
1331
+     * @see ImageHelper::ERROR_SVG_SOURCE_VIEWBOX_MISSING
1332
+     * @see ImageHelper::ERROR_SVG_VIEWBOX_INVALID
1333
+     */
1334
+    public static function getImageSize($pathOrResource) : ImageHelper_Size
1335
+    {
1336
+        if(is_resource($pathOrResource)) 
1337
+        {
1338
+            return new ImageHelper_Size(array(
1339
+                'width' => imagesx($pathOrResource),
1340
+                'height' => imagesy($pathOrResource),
1341
+                'channels' => 1,
1342
+                'bits' => 8
1343
+            ));
1344
+        }
1345 1345
 	    
1346
-	    $type = self::getFileImageType($pathOrResource);
1346
+        $type = self::getFileImageType($pathOrResource);
1347 1347
 	    
1348
-	    $info = false;
1349
-	    $method = 'getImageSize_'.$type;
1350
-	    if(method_exists(__CLASS__, $method)) 
1351
-	    {
1352
-	        $info = call_user_func(array(__CLASS__, $method), $pathOrResource);
1353
-	    } 
1354
-	    else 
1355
-	    {
1356
-	        $info = getimagesize($pathOrResource);
1357
-	    }
1348
+        $info = false;
1349
+        $method = 'getImageSize_'.$type;
1350
+        if(method_exists(__CLASS__, $method)) 
1351
+        {
1352
+            $info = call_user_func(array(__CLASS__, $method), $pathOrResource);
1353
+        } 
1354
+        else 
1355
+        {
1356
+            $info = getimagesize($pathOrResource);
1357
+        }
1358 1358
 	    
1359
-	    if($info !== false) {
1360
-	        return new ImageHelper_Size($info);
1361
-	    }
1359
+        if($info !== false) {
1360
+            return new ImageHelper_Size($info);
1361
+        }
1362 1362
 	    
1363 1363
         throw new ImageHelper_Exception(
1364 1364
             'Error opening image file',
@@ -1368,98 +1368,98 @@  discard block
 block discarded – undo
1368 1368
             ),
1369 1369
             self::ERROR_CANNOT_GET_IMAGE_SIZE
1370 1370
         );
1371
-	}
1371
+    }
1372 1372
 	
1373
-   /**
1374
-    * @param string $imagePath
1375
-    * @throws ImageHelper_Exception
1376
-    * @return array
1377
-    * 
1378
-    * @todo This should return a ImageHelper_Size instance.
1379
-    */
1380
-	protected static function getImageSize_svg(string $imagePath) : array
1381
-	{
1382
-	    $xml = XMLHelper::createSimplexml();
1383
-	    $xml->loadFile($imagePath);
1373
+    /**
1374
+     * @param string $imagePath
1375
+     * @throws ImageHelper_Exception
1376
+     * @return array
1377
+     * 
1378
+     * @todo This should return a ImageHelper_Size instance.
1379
+     */
1380
+    protected static function getImageSize_svg(string $imagePath) : array
1381
+    {
1382
+        $xml = XMLHelper::createSimplexml();
1383
+        $xml->loadFile($imagePath);
1384 1384
 	    
1385
-	    if($xml->hasErrors()) {
1386
-	        throw new ImageHelper_Exception(
1387
-	            'Error opening SVG image',
1388
-	            sprintf(
1389
-	                'The XML content of the image [%s] could not be parsed.',
1390
-	                $imagePath
1385
+        if($xml->hasErrors()) {
1386
+            throw new ImageHelper_Exception(
1387
+                'Error opening SVG image',
1388
+                sprintf(
1389
+                    'The XML content of the image [%s] could not be parsed.',
1390
+                    $imagePath
1391 1391
                 ),
1392
-	            self::ERROR_CANNOT_READ_SVG_IMAGE
1392
+                self::ERROR_CANNOT_READ_SVG_IMAGE
1393 1393
             );
1394
-	    }
1394
+        }
1395 1395
 	    
1396
-	    $data = $xml->toArray();
1397
-	    $xml->dispose();
1398
-	    unset($xml);
1396
+        $data = $xml->toArray();
1397
+        $xml->dispose();
1398
+        unset($xml);
1399 1399
 	    
1400
-	    if(!isset($data['@attributes']) || !isset($data['@attributes']['viewBox'])) {
1401
-	        throw new ImageHelper_Exception(
1402
-	            'SVG Image is corrupted',
1403
-	            sprintf(
1404
-	                'The [viewBox] attribute is missing in the XML of the image at path [%s].',
1405
-	                $imagePath
1400
+        if(!isset($data['@attributes']) || !isset($data['@attributes']['viewBox'])) {
1401
+            throw new ImageHelper_Exception(
1402
+                'SVG Image is corrupted',
1403
+                sprintf(
1404
+                    'The [viewBox] attribute is missing in the XML of the image at path [%s].',
1405
+                    $imagePath
1406 1406
                 ),
1407
-	            self::ERROR_SVG_SOURCE_VIEWBOX_MISSING
1407
+                self::ERROR_SVG_SOURCE_VIEWBOX_MISSING
1408 1408
             );
1409
-	    }
1409
+        }
1410 1410
 	    
1411
-	    $svgWidth = parseNumber($data['@attributes']['width'])->getNumber();
1412
-	    $svgHeight = parseNumber($data['@attributes']['height'])->getNumber();
1411
+        $svgWidth = parseNumber($data['@attributes']['width'])->getNumber();
1412
+        $svgHeight = parseNumber($data['@attributes']['height'])->getNumber();
1413 1413
 	    
1414
-	    $viewBox = str_replace(' ', ',', $data['@attributes']['viewBox']);
1415
-	    $size = explode(',', $viewBox);
1414
+        $viewBox = str_replace(' ', ',', $data['@attributes']['viewBox']);
1415
+        $size = explode(',', $viewBox);
1416 1416
 	    
1417
-	    if(count($size) != 4) 
1418
-	    {
1419
-	        throw new ImageHelper_Exception(
1420
-	            'SVG image has an invalid viewBox attribute',
1421
-	            sprintf(
1422
-	               'The [viewBox] attribute does not have an expected value: [%s] in path [%s].',
1423
-	                $viewBox,
1424
-	                $imagePath
1417
+        if(count($size) != 4) 
1418
+        {
1419
+            throw new ImageHelper_Exception(
1420
+                'SVG image has an invalid viewBox attribute',
1421
+                sprintf(
1422
+                    'The [viewBox] attribute does not have an expected value: [%s] in path [%s].',
1423
+                    $viewBox,
1424
+                    $imagePath
1425 1425
                 ),
1426
-	            self::ERROR_SVG_VIEWBOX_INVALID
1426
+                self::ERROR_SVG_VIEWBOX_INVALID
1427 1427
             );
1428
-	    }
1428
+        }
1429 1429
 	    
1430
-	    $boxWidth = $size[2];
1431
-	    $boxHeight = $size[3];
1430
+        $boxWidth = $size[2];
1431
+        $boxHeight = $size[3];
1432 1432
 	    
1433
-	    // calculate the x and y units of the document: 
1434
-	    // @see http://tutorials.jenkov.com/svg/svg-viewport-view-box.html#viewbox
1435
-	    //
1436
-	    // The viewbox combined with the width and heigt of the svg
1437
-	    // allow calculating how many pixels are in one unit of the 
1438
-	    // width and height of the document.
1433
+        // calculate the x and y units of the document: 
1434
+        // @see http://tutorials.jenkov.com/svg/svg-viewport-view-box.html#viewbox
1435
+        //
1436
+        // The viewbox combined with the width and heigt of the svg
1437
+        // allow calculating how many pixels are in one unit of the 
1438
+        // width and height of the document.
1439 1439
         //
1440
-	    $xUnits = $svgWidth / $boxWidth;
1441
-	    $yUnits = $svgHeight / $boxHeight;
1440
+        $xUnits = $svgWidth / $boxWidth;
1441
+        $yUnits = $svgHeight / $boxHeight;
1442 1442
 	    
1443
-	    $pxWidth = $xUnits * $svgWidth;
1444
-	    $pxHeight = $yUnits * $svgHeight;
1443
+        $pxWidth = $xUnits * $svgWidth;
1444
+        $pxHeight = $yUnits * $svgHeight;
1445 1445
 	    
1446
-	    return array(
1447
-	        $pxWidth,
1448
-	        $pxHeight,
1449
-	        'bits' => 8
1450
-	    );
1451
-	}
1446
+        return array(
1447
+            $pxWidth,
1448
+            $pxHeight,
1449
+            'bits' => 8
1450
+        );
1451
+    }
1452 1452
 	
1453
-	/**
1454
-    * Crops the image to the specified width and height, optionally
1455
-    * specifying the origin position to crop from.
1456
-    * 
1457
-    * @param integer $width
1458
-    * @param integer $height
1459
-    * @param integer $x
1460
-    * @param integer $y
1461
-    * @return ImageHelper
1462
-    */
1453
+    /**
1454
+     * Crops the image to the specified width and height, optionally
1455
+     * specifying the origin position to crop from.
1456
+     * 
1457
+     * @param integer $width
1458
+     * @param integer $height
1459
+     * @param integer $x
1460
+     * @param integer $y
1461
+     * @return ImageHelper
1462
+     */
1463 1463
     public function crop(int $width, int $height, int $x=0, int $y=0) : ImageHelper
1464 1464
     {
1465 1465
         $new = $this->createNewImage($width, $height);
@@ -1481,22 +1481,22 @@  discard block
 block discarded – undo
1481 1481
         return $this->newHeight;
1482 1482
     }
1483 1483
 
1484
-   /**
1485
-    * Calculates the average color value used in 
1486
-    * the image. Returns an associative array
1487
-    * with the red, green, blue and alpha components,
1488
-    * or a HEX color string depending on the selected
1489
-    * format.
1490
-    * 
1491
-    * NOTE: Use the calcAverageColorXXX methods for
1492
-    * strict return types. 
1493
-    * 
1494
-    * @param int $format The format in which to return the color value.
1495
-    * @return array|string
1496
-    * 
1497
-    * @see ImageHelper::calcAverageColorRGB()
1498
-    * @see ImageHelper::calcAverageColorHEX()
1499
-    */
1484
+    /**
1485
+     * Calculates the average color value used in 
1486
+     * the image. Returns an associative array
1487
+     * with the red, green, blue and alpha components,
1488
+     * or a HEX color string depending on the selected
1489
+     * format.
1490
+     * 
1491
+     * NOTE: Use the calcAverageColorXXX methods for
1492
+     * strict return types. 
1493
+     * 
1494
+     * @param int $format The format in which to return the color value.
1495
+     * @return array|string
1496
+     * 
1497
+     * @see ImageHelper::calcAverageColorRGB()
1498
+     * @see ImageHelper::calcAverageColorHEX()
1499
+     */
1500 1500
     public function calcAverageColor(int $format=self::COLORFORMAT_RGB)
1501 1501
     {
1502 1502
         $image = $this->duplicate();
@@ -1505,35 +1505,35 @@  discard block
 block discarded – undo
1505 1505
         return $image->getColorAt(0, 0, $format);
1506 1506
     }
1507 1507
     
1508
-   /**
1509
-    * Calculates the image's average color value, and
1510
-    * returns an associative array with red, green,
1511
-    * blue and alpha keys.
1512
-    * 
1513
-    * @throws ImageHelper_Exception
1514
-    * @return array
1515
-    */
1508
+    /**
1509
+     * Calculates the image's average color value, and
1510
+     * returns an associative array with red, green,
1511
+     * blue and alpha keys.
1512
+     * 
1513
+     * @throws ImageHelper_Exception
1514
+     * @return array
1515
+     */
1516 1516
     public function calcAverageColorRGB() : array
1517 1517
     {
1518
-       $result = $this->calcAverageColor(self::COLORFORMAT_RGB);
1519
-       if(is_array($result)) {
1520
-           return $result;
1521
-       }
1518
+        $result = $this->calcAverageColor(self::COLORFORMAT_RGB);
1519
+        if(is_array($result)) {
1520
+            return $result;
1521
+        }
1522 1522
        
1523
-       throw new ImageHelper_Exception(
1524
-           'Unexpected color value',
1525
-           sprintf('Expected an array, got [%s].', gettype($result)),
1526
-           self::ERROR_UNEXPECTED_COLOR_VALUE
1527
-       );
1528
-    }
1529
-    
1530
-   /**
1531
-    * Calculates the image's average color value, and
1532
-    * returns a hex color string (without the #).
1533
-    * 
1534
-    * @throws ImageHelper_Exception
1535
-    * @return string
1536
-    */
1523
+        throw new ImageHelper_Exception(
1524
+            'Unexpected color value',
1525
+            sprintf('Expected an array, got [%s].', gettype($result)),
1526
+            self::ERROR_UNEXPECTED_COLOR_VALUE
1527
+        );
1528
+    }
1529
+    
1530
+    /**
1531
+     * Calculates the image's average color value, and
1532
+     * returns a hex color string (without the #).
1533
+     * 
1534
+     * @throws ImageHelper_Exception
1535
+     * @return string
1536
+     */
1537 1537
     public function calcAverageColorHex() : string
1538 1538
     {
1539 1539
         $result = $this->calcAverageColor(self::COLORFORMAT_HEX);
@@ -1562,18 +1562,18 @@  discard block
 block discarded – undo
1562 1562
     
1563 1563
     const COLORFORMAT_HEX = 2;
1564 1564
     
1565
-   /**
1566
-    * Retrieves the color value at the specified pixel
1567
-    * coordinates in the image.
1568
-    * 
1569
-    * @param int $x
1570
-    * @param int $y
1571
-    * @param int $format The format in which to return the color value.
1572
-    * @return array|string
1573
-    * 
1574
-    * @see ImageHelper::COLORFORMAT_RGB
1575
-    * @see ImageHelper::COLORFORMAT_HEX
1576
-    */
1565
+    /**
1566
+     * Retrieves the color value at the specified pixel
1567
+     * coordinates in the image.
1568
+     * 
1569
+     * @param int $x
1570
+     * @param int $y
1571
+     * @param int $format The format in which to return the color value.
1572
+     * @return array|string
1573
+     * 
1574
+     * @see ImageHelper::COLORFORMAT_RGB
1575
+     * @see ImageHelper::COLORFORMAT_HEX
1576
+     */
1577 1577
     public function getColorAt(int $x, int $y, int $format=self::COLORFORMAT_RGB)
1578 1578
     {
1579 1579
         if($x > $this->getWidth() || $y > $this->getHeight()) 
@@ -1601,21 +1601,21 @@  discard block
 block discarded – undo
1601 1601
         return $rgb;
1602 1602
     }
1603 1603
     
1604
-   /**
1605
-    * Converts an RGB value to its luminance equivalent.
1606
-    * 
1607
-    * @param array $rgb
1608
-    * @return integer Integer, from 0 to 255 (0=black, 255=white)
1609
-    */
1604
+    /**
1605
+     * Converts an RGB value to its luminance equivalent.
1606
+     * 
1607
+     * @param array $rgb
1608
+     * @return integer Integer, from 0 to 255 (0=black, 255=white)
1609
+     */
1610 1610
     public static function rgb2luma(array $rgb) : int
1611 1611
     {
1612 1612
         return (int)floor((($rgb['red']*2)+$rgb['blue']+($rgb['green']*3))/6);
1613 1613
     }
1614 1614
     
1615
-   /**
1616
-    * Retrieves the brightness of the image, in percent.
1617
-    * @return number
1618
-    */
1615
+    /**
1616
+     * Retrieves the brightness of the image, in percent.
1617
+     * @return number
1618
+     */
1619 1619
     public function getBrightness()
1620 1620
     {
1621 1621
         $luma = self::rgb2luma($this->calcAverageColorRGB());
@@ -1623,15 +1623,15 @@  discard block
 block discarded – undo
1623 1623
         return $percent;
1624 1624
     }
1625 1625
     
1626
-   /**
1627
-    * Retrieves an md5 hash of the source image file.
1628
-    * 
1629
-    * NOTE: Only works when the helper has been created
1630
-    * from a file. Otherwise an exception is thrown.
1631
-    * 
1632
-    * @return string
1633
-    * @throws ImageHelper_Exception
1634
-    */
1626
+    /**
1627
+     * Retrieves an md5 hash of the source image file.
1628
+     * 
1629
+     * NOTE: Only works when the helper has been created
1630
+     * from a file. Otherwise an exception is thrown.
1631
+     * 
1632
+     * @return string
1633
+     * @throws ImageHelper_Exception
1634
+     */
1635 1635
     public function getHash()
1636 1636
     {
1637 1637
         ob_start();
Please login to merge, or discard this patch.
src/Traits/Optionable.php 1 patch
Indentation   +100 added lines, -100 removed lines patch added patch discarded remove patch
@@ -26,18 +26,18 @@  discard block
 block discarded – undo
26 26
  */
27 27
 trait Traits_Optionable
28 28
 {
29
-   /**
30
-    * @var array
31
-    */
29
+    /**
30
+     * @var array
31
+     */
32 32
     protected $options;
33 33
     
34
-   /**
35
-    * Sets an option to the specified value. This can be any
36
-    * kind of variable type, including objects, as needed.
37
-    * 
38
-    * @param string $name
39
-    * @param mixed $value
40
-    */
34
+    /**
35
+     * Sets an option to the specified value. This can be any
36
+     * kind of variable type, including objects, as needed.
37
+     * 
38
+     * @param string $name
39
+     * @param mixed $value
40
+     */
41 41
     public function setOption(string $name, $value)
42 42
     {
43 43
         if(!isset($this->options)) {
@@ -48,12 +48,12 @@  discard block
 block discarded – undo
48 48
         return $this;
49 49
     }
50 50
     
51
-   /**
52
-    * Sets a collection of options at once, from an
53
-    * associative array.
54
-    * 
55
-    * @param array $options
56
-    */
51
+    /**
52
+     * Sets a collection of options at once, from an
53
+     * associative array.
54
+     * 
55
+     * @param array $options
56
+     */
57 57
     public function setOptions(array $options)
58 58
     {
59 59
         foreach($options as $name => $value) {
@@ -63,16 +63,16 @@  discard block
 block discarded – undo
63 63
         return $this;
64 64
     }
65 65
     
66
-   /**
67
-    * Retrieves an option's value.
68
-    * 
69
-    * NOTE: Use the specialized type getters to ensure an option
70
-    * contains the expected type (for ex. getArrayOption()). 
71
-    * 
72
-    * @param string $name
73
-    * @param mixed $default The default value to return if the option does not exist.
74
-    * @return mixed
75
-    */
66
+    /**
67
+     * Retrieves an option's value.
68
+     * 
69
+     * NOTE: Use the specialized type getters to ensure an option
70
+     * contains the expected type (for ex. getArrayOption()). 
71
+     * 
72
+     * @param string $name
73
+     * @param mixed $default The default value to return if the option does not exist.
74
+     * @return mixed
75
+     */
76 76
     public function getOption(string $name, $default=null)
77 77
     {
78 78
         if(!isset($this->options)) {
@@ -86,16 +86,16 @@  discard block
 block discarded – undo
86 86
         return $default;
87 87
     }
88 88
     
89
-   /**
90
-    * Enforces that the option value is a string. Numbers are converted
91
-    * to string, strings are passed through, and all other types will 
92
-    * return the default value. The default value is also returned if
93
-    * the string is empty.
94
-    * 
95
-    * @param string $name
96
-    * @param string $default Used if the option does not exist, is invalid, or empty.
97
-    * @return string
98
-    */
89
+    /**
90
+     * Enforces that the option value is a string. Numbers are converted
91
+     * to string, strings are passed through, and all other types will 
92
+     * return the default value. The default value is also returned if
93
+     * the string is empty.
94
+     * 
95
+     * @param string $name
96
+     * @param string $default Used if the option does not exist, is invalid, or empty.
97
+     * @return string
98
+     */
99 99
     public function getStringOption(string $name, string $default='') : string
100 100
     {
101 101
         $value = $this->getOption($name, false);
@@ -107,15 +107,15 @@  discard block
 block discarded – undo
107 107
         return $default;
108 108
     }
109 109
     
110
-   /**
111
-    * Treats the option value as a boolean value: will return
112
-    * true if the value actually is a boolean true.
113
-    * 
114
-    * NOTE: boolean string representations are not accepted.
115
-    * 
116
-    * @param string $name
117
-    * @return bool
118
-    */
110
+    /**
111
+     * Treats the option value as a boolean value: will return
112
+     * true if the value actually is a boolean true.
113
+     * 
114
+     * NOTE: boolean string representations are not accepted.
115
+     * 
116
+     * @param string $name
117
+     * @return bool
118
+     */
119 119
     public function getBoolOption(string $name, bool $default=false) : bool
120 120
     {
121 121
         if($this->getOption($name) === true) {
@@ -125,15 +125,15 @@  discard block
 block discarded – undo
125 125
         return $default;
126 126
     }
127 127
     
128
-   /**
129
-    * Treats the option value as an integer value: will return
130
-    * valid integer values (also from integer strings), or the
131
-    * default value otherwise.
132
-    * 
133
-    * @param string $name
134
-    * @param int $default
135
-    * @return int
136
-    */
128
+    /**
129
+     * Treats the option value as an integer value: will return
130
+     * valid integer values (also from integer strings), or the
131
+     * default value otherwise.
132
+     * 
133
+     * @param string $name
134
+     * @param int $default
135
+     * @return int
136
+     */
137 137
     public function getIntOption(string $name, int $default=0) : int
138 138
     {
139 139
         $value = $this->getOption($name);
@@ -144,14 +144,14 @@  discard block
 block discarded – undo
144 144
         return $default;
145 145
     }
146 146
     
147
-   /**
148
-    * Treats an option as an array, and returns its value
149
-    * only if it contains an array - otherwise, an empty
150
-    * array is returned.
151
-    * 
152
-    * @param string $name
153
-    * @return array
154
-    */
147
+    /**
148
+     * Treats an option as an array, and returns its value
149
+     * only if it contains an array - otherwise, an empty
150
+     * array is returned.
151
+     * 
152
+     * @param string $name
153
+     * @return array
154
+     */
155 155
     public function getArrayOption(string $name) : array
156 156
     {
157 157
         $val = $this->getOption($name);
@@ -162,13 +162,13 @@  discard block
 block discarded – undo
162 162
         return array();
163 163
     }
164 164
     
165
-   /**
166
-    * Checks whether the specified option exists - even
167
-    * if it has a NULL value.
168
-    * 
169
-    * @param string $name
170
-    * @return bool
171
-    */
165
+    /**
166
+     * Checks whether the specified option exists - even
167
+     * if it has a NULL value.
168
+     * 
169
+     * @param string $name
170
+     * @return bool
171
+     */
172 172
     public function hasOption(string $name) : bool
173 173
     {
174 174
         if(!isset($this->options)) {
@@ -178,10 +178,10 @@  discard block
 block discarded – undo
178 178
         return array_key_exists($name, $this->options);
179 179
     }
180 180
     
181
-   /**
182
-    * Returns all options in one associative array.
183
-    * @return array
184
-    */
181
+    /**
182
+     * Returns all options in one associative array.
183
+     * @return array
184
+     */
185 185
     public function getOptions() : array
186 186
     {
187 187
         if(!isset($this->options)) {
@@ -191,24 +191,24 @@  discard block
 block discarded – undo
191 191
         return $this->options;
192 192
     }
193 193
     
194
-   /**
195
-    * Checks whether the option's value is the one specified.
196
-    * 
197
-    * @param string $name
198
-    * @param mixed $value
199
-    * @return bool
200
-    */
194
+    /**
195
+     * Checks whether the option's value is the one specified.
196
+     * 
197
+     * @param string $name
198
+     * @param mixed $value
199
+     * @return bool
200
+     */
201 201
     public function isOption(string $name, $value) : bool
202 202
     {
203 203
         return $this->getOption($name) === $value;
204 204
     }
205 205
     
206
-   /**
207
-    * Retrieves the default available options as an 
208
-    * associative array with option name => value pairs.
209
-    * 
210
-    * @return array
211
-    */
206
+    /**
207
+     * Retrieves the default available options as an 
208
+     * associative array with option name => value pairs.
209
+     * 
210
+     * @return array
211
+     */
212 212
     abstract public function getDefaultOptions() : array;
213 213
 }
214 214
 
@@ -226,24 +226,24 @@  discard block
 block discarded – undo
226 226
  */
227 227
 interface Interface_Optionable
228 228
 {
229
-   /**
230
-    * @param string $name
231
-    * @param mixed $value
232
-    * @return Interface_Optionable
233
-    */
229
+    /**
230
+     * @param string $name
231
+     * @param mixed $value
232
+     * @return Interface_Optionable
233
+     */
234 234
     function setOption(string $name, $value);
235 235
     
236
-   /**
237
-    * @param string $name
238
-    * @param mixed $default
239
-    * @return Interface_Optionable
240
-    */
236
+    /**
237
+     * @param string $name
238
+     * @param mixed $default
239
+     * @return Interface_Optionable
240
+     */
241 241
     function getOption(string $name, $default=null);
242 242
     
243
-   /**
244
-    * @param array $options
245
-    * @return Interface_Optionable    
246
-    */
243
+    /**
244
+     * @param array $options
245
+     * @return Interface_Optionable    
246
+     */
247 247
     function setOptions(array $options);
248 248
     function getOptions() : array;
249 249
     function isOption(string $name, $value) : bool;
Please login to merge, or discard this patch.
src/ConvertHelper.php 1 patch
Indentation   +453 added lines, -453 removed lines patch added patch discarded remove patch
@@ -162,41 +162,41 @@  discard block
 block discarded – undo
162 162
         return implode(', ', $tokens) . ' ' . t('and') . ' ' . $last;
163 163
     }
164 164
 
165
-   /**
166
-    * Converts a timestamp into an easily understandable
167
-    * format, e.g. "2 hours", "1 day", "3 months"
168
-    *
169
-    * If you set the date to parameter, the difference
170
-    * will be calculated between the two dates and not
171
-    * the current time.
172
-    *
173
-    * @param integer|\DateTime $datefrom
174
-    * @param integer|\DateTime $dateto
175
-    * @return string
176
-    */
165
+    /**
166
+     * Converts a timestamp into an easily understandable
167
+     * format, e.g. "2 hours", "1 day", "3 months"
168
+     *
169
+     * If you set the date to parameter, the difference
170
+     * will be calculated between the two dates and not
171
+     * the current time.
172
+     *
173
+     * @param integer|\DateTime $datefrom
174
+     * @param integer|\DateTime $dateto
175
+     * @return string
176
+     */
177 177
     public static function duration2string($datefrom, $dateto = -1) : string
178 178
     {
179
-         $converter = new ConvertHelper_DurationConverter();
179
+            $converter = new ConvertHelper_DurationConverter();
180 180
          
181
-         if($datefrom instanceof \DateTime)
182
-         {
183
-             $converter->setDateFrom($datefrom);
184
-         }
185
-         else
186
-         {
187
-             $converter->setDateFrom(self::timestamp2date($datefrom)); 
188
-         }
181
+            if($datefrom instanceof \DateTime)
182
+            {
183
+                $converter->setDateFrom($datefrom);
184
+            }
185
+            else
186
+            {
187
+                $converter->setDateFrom(self::timestamp2date($datefrom)); 
188
+            }
189 189
 
190
-         if($dateto instanceof \DateTime)
191
-         {
192
-             $converter->setDateTo($dateto);
193
-         }
194
-         else if($dateto > 0)
195
-         {
196
-             $converter->setDateTo(self::timestamp2date($dateto));
197
-         }
190
+            if($dateto instanceof \DateTime)
191
+            {
192
+                $converter->setDateTo($dateto);
193
+            }
194
+            else if($dateto > 0)
195
+            {
196
+                $converter->setDateTo(self::timestamp2date($dateto));
197
+            }
198 198
 
199
-         return $converter->convert();
199
+            return $converter->convert();
200 200
     }
201 201
 
202 202
     /**
@@ -235,44 +235,44 @@  discard block
 block discarded – undo
235 235
         return $geshi->parse_code();
236 236
     }
237 237
     
238
-   /**
239
-    * Converts a number of bytes to a human readable form,
240
-    * e.g. xx Kb / xx Mb / xx Gb
241
-    *
242
-    * @param int $bytes The amount of bytes to convert.
243
-    * @param int $precision The amount of decimals
244
-    * @param int $base The base to calculate with: Base 10 is default (=1000 Bytes in a KB), Base 2 is mainly used for Windows memory (=1024 Bytes in a KB).
245
-    * @return string
246
-    * 
247
-    * @see https://en.m.wikipedia.org/wiki/Megabyte#Definitions
248
-    */
238
+    /**
239
+     * Converts a number of bytes to a human readable form,
240
+     * e.g. xx Kb / xx Mb / xx Gb
241
+     *
242
+     * @param int $bytes The amount of bytes to convert.
243
+     * @param int $precision The amount of decimals
244
+     * @param int $base The base to calculate with: Base 10 is default (=1000 Bytes in a KB), Base 2 is mainly used for Windows memory (=1024 Bytes in a KB).
245
+     * @return string
246
+     * 
247
+     * @see https://en.m.wikipedia.org/wiki/Megabyte#Definitions
248
+     */
249 249
     public static function bytes2readable(int $bytes, int $precision = 1, int $base = ConvertHelper_StorageSizeEnum::BASE_10) : string
250 250
     {
251 251
         return self::parseBytes($bytes)->toString($precision, $base);
252 252
     }
253 253
     
254
-   /**
255
-    * Parses a number of bytes, and creates a converter instance which
256
-    * allows doing common operations with it.
257
-    * 
258
-    * @param int $bytes
259
-    * @return ConvertHelper_ByteConverter
260
-    */
254
+    /**
255
+     * Parses a number of bytes, and creates a converter instance which
256
+     * allows doing common operations with it.
257
+     * 
258
+     * @param int $bytes
259
+     * @return ConvertHelper_ByteConverter
260
+     */
261 261
     public static function parseBytes(int $bytes) : ConvertHelper_ByteConverter
262 262
     {
263 263
         return new ConvertHelper_ByteConverter($bytes);
264 264
     }
265 265
 
266
-   /**
267
-    * Cuts a text to the specified length if it is longer than the
268
-    * target length. Appends a text to signify it has been cut at 
269
-    * the end of the string.
270
-    * 
271
-    * @param string $text
272
-    * @param int $targetLength
273
-    * @param string $append
274
-    * @return string
275
-    */
266
+    /**
267
+     * Cuts a text to the specified length if it is longer than the
268
+     * target length. Appends a text to signify it has been cut at 
269
+     * the end of the string.
270
+     * 
271
+     * @param string $text
272
+     * @param int $targetLength
273
+     * @param string $append
274
+     * @return string
275
+     */
276 276
     public static function text_cut(string $text, int $targetLength, string $append = '...') : string
277 277
     {
278 278
         $length = mb_strlen($text);
@@ -296,14 +296,14 @@  discard block
 block discarded – undo
296 296
         return $info->toString();
297 297
     }
298 298
     
299
-   /**
300
-    * Pretty print_r.
301
-    * 
302
-    * @param mixed $var The variable to dump.
303
-    * @param bool $return Whether to return the dumped code.
304
-    * @param bool $html Whether to style the dump as HTML.
305
-    * @return string
306
-    */
299
+    /**
300
+     * Pretty print_r.
301
+     * 
302
+     * @param mixed $var The variable to dump.
303
+     * @param bool $return Whether to return the dumped code.
304
+     * @param bool $html Whether to style the dump as HTML.
305
+     * @return string
306
+     */
307 307
     public static function print_r($var, bool $return=false, bool $html=true) : string
308 308
     {
309 309
         $result = parseVariable($var)->enableType()->toString();
@@ -333,15 +333,15 @@  discard block
 block discarded – undo
333 333
         'no' => false
334 334
     );
335 335
 
336
-   /**
337
-    * Converts a string, number or boolean value to a boolean value.
338
-    * 
339
-    * @param string|number|bool $string
340
-    * @throws ConvertHelper_Exception
341
-    * @return bool
342
-    * 
343
-    * @see ConvertHelper::ERROR_INVALID_BOOLEAN_STRING
344
-    */
336
+    /**
337
+     * Converts a string, number or boolean value to a boolean value.
338
+     * 
339
+     * @param string|number|bool $string
340
+     * @throws ConvertHelper_Exception
341
+     * @return bool
342
+     * 
343
+     * @see ConvertHelper::ERROR_INVALID_BOOLEAN_STRING
344
+     */
345 345
     public static function string2bool($string) : bool
346 346
     {
347 347
         if($string === '' || $string === null || !is_scalar($string)) 
@@ -369,27 +369,27 @@  discard block
 block discarded – undo
369 369
         );
370 370
     }
371 371
     
372
-   /**
373
-    * Whether the specified string is a boolean string or boolean value.
374
-    * Alias for {@link ConvertHelper::isBoolean()}.
375
-    * 
376
-    * @param mixed $string
377
-    * @return bool
378
-    * @deprecated
379
-    * @see ConvertHelper::isBoolean()
380
-    */
372
+    /**
373
+     * Whether the specified string is a boolean string or boolean value.
374
+     * Alias for {@link ConvertHelper::isBoolean()}.
375
+     * 
376
+     * @param mixed $string
377
+     * @return bool
378
+     * @deprecated
379
+     * @see ConvertHelper::isBoolean()
380
+     */
381 381
     public static function isBooleanString($string) : bool
382 382
     {
383 383
         return self::isBoolean($string);
384 384
     }
385 385
 
386
-   /**
387
-    * Alias for the {@\AppUtils\XMLHelper::string2xml()} method.
388
-    * 
389
-    * @param string $text
390
-    * @return string
391
-    * @deprecated
392
-    */
386
+    /**
387
+     * Alias for the {@\AppUtils\XMLHelper::string2xml()} method.
388
+     * 
389
+     * @param string $text
390
+     * @return string
391
+     * @deprecated
392
+     */
393 393
     public static function text_makeXMLCompliant($text)
394 394
     {
395 395
         return XMLHelper::string2xml($text);
@@ -491,13 +491,13 @@  discard block
 block discarded – undo
491 491
         return $translit->convert($string);
492 492
     }
493 493
     
494
-   /**
495
-    * Retrieves the HEX character codes for all control
496
-    * characters that the {@link stripControlCharacters()} 
497
-    * method will remove.
498
-    * 
499
-    * @return string[]
500
-    */
494
+    /**
495
+     * Retrieves the HEX character codes for all control
496
+     * characters that the {@link stripControlCharacters()} 
497
+     * method will remove.
498
+     * 
499
+     * @return string[]
500
+     */
501 501
     public static function getControlCharactersAsHex()
502 502
     {
503 503
         $hexAlphabet = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
@@ -533,13 +533,13 @@  discard block
 block discarded – undo
533 533
         return $stack;
534 534
     }
535 535
     
536
-   /**
537
-    * Retrieves an array of all control characters that
538
-    * the {@link stripControlCharacters()} method will 
539
-    * remove, as the actual UTF-8 characters.
540
-    * 
541
-    * @return string[]
542
-    */
536
+    /**
537
+     * Retrieves an array of all control characters that
538
+     * the {@link stripControlCharacters()} method will 
539
+     * remove, as the actual UTF-8 characters.
540
+     * 
541
+     * @return string[]
542
+     */
543 543
     public static function getControlCharactersAsUTF8()
544 544
     {
545 545
         $chars = self::getControlCharactersAsHex();
@@ -552,12 +552,12 @@  discard block
 block discarded – undo
552 552
         return $result;
553 553
     }
554 554
     
555
-   /**
556
-    * Retrieves all control characters as JSON encoded
557
-    * characters, e.g. "\u200b".
558
-    * 
559
-    * @return string[]
560
-    */
555
+    /**
556
+     * Retrieves all control characters as JSON encoded
557
+     * characters, e.g. "\u200b".
558
+     * 
559
+     * @return string[]
560
+     */
561 561
     public static function getControlCharactersAsJSON()
562 562
     {
563 563
         $chars = self::getControlCharactersAsHex();
@@ -614,20 +614,20 @@  discard block
 block discarded – undo
614 614
         return preg_replace(self::$controlCharsRegex, '', $string);
615 615
     }
616 616
 
617
-   /**
618
-    * Converts a unicode character to the PHPO notation.
619
-    * 
620
-    * Example:
621
-    * 
622
-    * <pre>unicodeChar2php('"\u0000"')</pre>
623
-    * 
624
-    * Returns
625
-    * 
626
-    * <pre>\x0</pre>
627
-    * 
628
-    * @param string $unicodeChar
629
-    * @return string
630
-    */
617
+    /**
618
+     * Converts a unicode character to the PHPO notation.
619
+     * 
620
+     * Example:
621
+     * 
622
+     * <pre>unicodeChar2php('"\u0000"')</pre>
623
+     * 
624
+     * Returns
625
+     * 
626
+     * <pre>\x0</pre>
627
+     * 
628
+     * @param string $unicodeChar
629
+     * @return string
630
+     */
631 631
     public static function unicodeChar2php($unicodeChar) 
632 632
     {
633 633
         $unicodeChar = json_decode($unicodeChar);
@@ -750,25 +750,25 @@  discard block
 block discarded – undo
750 750
         return 'false';
751 751
     }
752 752
     
753
-   /**
754
-    * Converts an associative array with attribute name > value pairs
755
-    * to an attribute string that can be used in an HTML tag. Empty 
756
-    * attribute values are ignored.
757
-    * 
758
-    * Example:
759
-    * 
760
-    * array2attributeString(array(
761
-    *     'id' => 45,
762
-    *     'href' => 'http://www.mistralys.com'
763
-    * ));
764
-    * 
765
-    * Result:
766
-    * 
767
-    * id="45" href="http://www.mistralys.com"
768
-    * 
769
-    * @param array $array
770
-    * @return string
771
-    */
753
+    /**
754
+     * Converts an associative array with attribute name > value pairs
755
+     * to an attribute string that can be used in an HTML tag. Empty 
756
+     * attribute values are ignored.
757
+     * 
758
+     * Example:
759
+     * 
760
+     * array2attributeString(array(
761
+     *     'id' => 45,
762
+     *     'href' => 'http://www.mistralys.com'
763
+     * ));
764
+     * 
765
+     * Result:
766
+     * 
767
+     * id="45" href="http://www.mistralys.com"
768
+     * 
769
+     * @param array $array
770
+     * @return string
771
+     */
772 772
     public static function array2attributeString($array)
773 773
     {
774 774
         $tokens = array();
@@ -787,14 +787,14 @@  discard block
 block discarded – undo
787 787
         return ' '.implode(' ', $tokens);
788 788
     }
789 789
     
790
-   /**
791
-    * Converts a string so it can safely be used in a javascript
792
-    * statement in an HTML tag: uses single quotes around the string
793
-    * and encodes all special characters as needed.
794
-    * 
795
-    * @param string $string
796
-    * @return string
797
-    */
790
+    /**
791
+     * Converts a string so it can safely be used in a javascript
792
+     * statement in an HTML tag: uses single quotes around the string
793
+     * and encodes all special characters as needed.
794
+     * 
795
+     * @param string $string
796
+     * @return string
797
+     */
798 798
     public static function string2attributeJS($string, $quoted=true)
799 799
     {
800 800
         $converted = addslashes(htmlspecialchars(strip_tags($string), ENT_QUOTES, 'UTF-8'));
@@ -805,15 +805,15 @@  discard block
 block discarded – undo
805 805
         return $converted;
806 806
     }
807 807
     
808
-   /**
809
-    * Checks if the specified string is a boolean value, which
810
-    * includes string representations of boolean values, like 
811
-    * <code>yes</code> or <code>no</code>, and <code>true</code>
812
-    * or <code>false</code>.
813
-    * 
814
-    * @param mixed $value
815
-    * @return boolean
816
-    */
808
+    /**
809
+     * Checks if the specified string is a boolean value, which
810
+     * includes string representations of boolean values, like 
811
+     * <code>yes</code> or <code>no</code>, and <code>true</code>
812
+     * or <code>false</code>.
813
+     * 
814
+     * @param mixed $value
815
+     * @return boolean
816
+     */
817 817
     public static function isBoolean($value) : bool
818 818
     {
819 819
         if(is_bool($value)) {
@@ -827,12 +827,12 @@  discard block
 block discarded – undo
827 827
         return array_key_exists($value, self::$booleanStrings);
828 828
     }
829 829
     
830
-   /**
831
-    * Converts an associative array to an HTML style attribute value string.
832
-    * 
833
-    * @param array $subject
834
-    * @return string
835
-    */
830
+    /**
831
+     * Converts an associative array to an HTML style attribute value string.
832
+     * 
833
+     * @param array $subject
834
+     * @return string
835
+     */
836 836
     public static function array2styleString(array $subject) : string
837 837
     {
838 838
         $tokens = array();
@@ -843,23 +843,23 @@  discard block
 block discarded – undo
843 843
         return implode(';', $tokens);
844 844
     }
845 845
     
846
-   /**
847
-    * Converts a DateTime object to a timestamp, which
848
-    * is PHP 5.2 compatible.
849
-    * 
850
-    * @param \DateTime $date
851
-    * @return integer
852
-    */
846
+    /**
847
+     * Converts a DateTime object to a timestamp, which
848
+     * is PHP 5.2 compatible.
849
+     * 
850
+     * @param \DateTime $date
851
+     * @return integer
852
+     */
853 853
     public static function date2timestamp(\DateTime $date) : int
854 854
     {
855 855
         return (int)$date->format('U');
856 856
     }
857 857
     
858
-   /**
859
-    * Converts a timestamp into a DateTime instance.
860
-    * @param int $timestamp
861
-    * @return \DateTime
862
-    */
858
+    /**
859
+     * Converts a timestamp into a DateTime instance.
860
+     * @param int $timestamp
861
+     * @return \DateTime
862
+     */
863 863
     public static function timestamp2date(int $timestamp) : \DateTime
864 864
     {
865 865
         $date = new \DateTime();
@@ -867,50 +867,50 @@  discard block
 block discarded – undo
867 867
         return $date;
868 868
     }
869 869
     
870
-   /**
871
-    * Strips an absolute path to a file within the application
872
-    * to make the path relative to the application root path.
873
-    * 
874
-    * @param string $path
875
-    * @return string
876
-    * 
877
-    * @see FileHelper::relativizePath()
878
-    * @see FileHelper::relativizePathByDepth()
879
-    */
870
+    /**
871
+     * Strips an absolute path to a file within the application
872
+     * to make the path relative to the application root path.
873
+     * 
874
+     * @param string $path
875
+     * @return string
876
+     * 
877
+     * @see FileHelper::relativizePath()
878
+     * @see FileHelper::relativizePathByDepth()
879
+     */
880 880
     public static function fileRelativize(string $path) : string
881 881
     {
882 882
         return FileHelper::relativizePathByDepth($path);
883 883
     }
884 884
     
885 885
     /**
886
-    * Converts a PHP regex to a javascript RegExp object statement.
887
-    * 
888
-    * NOTE: This is an alias for the JSHelper's `convertRegex` method. 
889
-    * More details are available on its usage there.
890
-    *
891
-    * @param string $regex A PHP preg regex
892
-    * @param string $statementType The type of statement to return: Defaults to a statement to create a RegExp object.
893
-    * @return array|string Depending on the specified return type.
894
-    * 
895
-    * @see JSHelper::buildRegexStatement()
896
-    */
886
+     * Converts a PHP regex to a javascript RegExp object statement.
887
+     * 
888
+     * NOTE: This is an alias for the JSHelper's `convertRegex` method. 
889
+     * More details are available on its usage there.
890
+     *
891
+     * @param string $regex A PHP preg regex
892
+     * @param string $statementType The type of statement to return: Defaults to a statement to create a RegExp object.
893
+     * @return array|string Depending on the specified return type.
894
+     * 
895
+     * @see JSHelper::buildRegexStatement()
896
+     */
897 897
     public static function regex2js(string $regex, string $statementType=JSHelper::JS_REGEX_OBJECT)
898 898
     {
899 899
         return JSHelper::buildRegexStatement($regex, $statementType);
900 900
     }
901 901
     
902
-   /**
903
-    * Converts the specified variable to JSON. Works just
904
-    * like the native `json_encode` method, except that it
905
-    * will trigger an exception on failure, which has the 
906
-    * json error details included in its developer details.
907
-    * 
908
-    * @param mixed $variable
909
-    * @param int $options JSON encode options.
910
-    * @param int $depth 
911
-    * @throws ConvertHelper_Exception
912
-    * @return string
913
-    */
902
+    /**
903
+     * Converts the specified variable to JSON. Works just
904
+     * like the native `json_encode` method, except that it
905
+     * will trigger an exception on failure, which has the 
906
+     * json error details included in its developer details.
907
+     * 
908
+     * @param mixed $variable
909
+     * @param int $options JSON encode options.
910
+     * @param int $depth 
911
+     * @throws ConvertHelper_Exception
912
+     * @return string
913
+     */
914 914
     public static function var2json($variable, int $options=0, int $depth=512) : string
915 915
     {
916 916
         $result = json_encode($variable, $options, $depth);
@@ -931,12 +931,12 @@  discard block
 block discarded – undo
931 931
         );
932 932
     }
933 933
     
934
-   /**
935
-    * Strips all known UTF byte order marks from the specified string.
936
-    * 
937
-    * @param string $string
938
-    * @return string
939
-    */
934
+    /**
935
+     * Strips all known UTF byte order marks from the specified string.
936
+     * 
937
+     * @param string $string
938
+     * @return string
939
+     */
940 940
     public static function stripUTFBom($string)
941 941
     {
942 942
         $boms = FileHelper::getUTFBOMs();
@@ -951,13 +951,13 @@  discard block
 block discarded – undo
951 951
         return $string;
952 952
     }
953 953
 
954
-   /**
955
-    * Converts a string to valid utf8, regardless
956
-    * of the string's encoding(s).
957
-    * 
958
-    * @param string $string
959
-    * @return string
960
-    */
954
+    /**
955
+     * Converts a string to valid utf8, regardless
956
+     * of the string's encoding(s).
957
+     * 
958
+     * @param string $string
959
+     * @return string
960
+     */
961 961
     public static function string2utf8($string)
962 962
     {
963 963
         if(!self::isStringASCII($string)) {
@@ -967,15 +967,15 @@  discard block
 block discarded – undo
967 967
         return $string;
968 968
     }
969 969
     
970
-   /**
971
-    * Checks whether the specified string is an ASCII
972
-    * string, without any special or UTF8 characters.
973
-    * Note: empty strings and NULL are considered ASCII.
974
-    * Any variable types other than strings are not.
975
-    * 
976
-    * @param mixed $string
977
-    * @return boolean
978
-    */
970
+    /**
971
+     * Checks whether the specified string is an ASCII
972
+     * string, without any special or UTF8 characters.
973
+     * Note: empty strings and NULL are considered ASCII.
974
+     * Any variable types other than strings are not.
975
+     * 
976
+     * @param mixed $string
977
+     * @return boolean
978
+     */
979 979
     public static function isStringASCII($string) : bool
980 980
     {
981 981
         if($string === '' || $string === NULL) {
@@ -1000,22 +1000,22 @@  discard block
 block discarded – undo
1000 1000
         return $url;
1001 1001
     }
1002 1002
 
1003
-   /**
1004
-    * Calculates a percentage match of the source string with the target string.
1005
-    * 
1006
-    * Options are:
1007
-    * 
1008
-    * - maxLevenshtein, default: 10
1009
-    *   Any levenshtein results above this value are ignored.
1010
-    *   
1011
-    * - precision, default: 1
1012
-    *   The precision of the percentage float value
1013
-    * 
1014
-    * @param string $source
1015
-    * @param string $target
1016
-    * @param array $options
1017
-    * @return float
1018
-    */
1003
+    /**
1004
+     * Calculates a percentage match of the source string with the target string.
1005
+     * 
1006
+     * Options are:
1007
+     * 
1008
+     * - maxLevenshtein, default: 10
1009
+     *   Any levenshtein results above this value are ignored.
1010
+     *   
1011
+     * - precision, default: 1
1012
+     *   The precision of the percentage float value
1013
+     * 
1014
+     * @param string $source
1015
+     * @param string $target
1016
+     * @param array $options
1017
+     * @return float
1018
+     */
1019 1019
     public static function matchString($source, $target, $options=array())
1020 1020
     {
1021 1021
         $defaults = array(
@@ -1039,14 +1039,14 @@  discard block
 block discarded – undo
1039 1039
         return round(100 - $percent, $options['precision']);
1040 1040
     }
1041 1041
     
1042
-   /**
1043
-    * Converts a date interval to a human readable string with
1044
-    * all necessary time components, e.g. "1 year, 2 months and 4 days".
1045
-    * 
1046
-    * @param \DateInterval $interval
1047
-    * @return string
1048
-    * @see ConvertHelper_IntervalConverter
1049
-    */
1042
+    /**
1043
+     * Converts a date interval to a human readable string with
1044
+     * all necessary time components, e.g. "1 year, 2 months and 4 days".
1045
+     * 
1046
+     * @param \DateInterval $interval
1047
+     * @return string
1048
+     * @see ConvertHelper_IntervalConverter
1049
+     */
1050 1050
     public static function interval2string(\DateInterval $interval) : string
1051 1051
     {
1052 1052
         $converter = new ConvertHelper_IntervalConverter();
@@ -1061,60 +1061,60 @@  discard block
 block discarded – undo
1061 1061
     
1062 1062
     const INTERVAL_SECONDS = 'seconds';
1063 1063
     
1064
-   /**
1065
-    * Converts an interval to its total amount of days.
1066
-    * @param \DateInterval $interval
1067
-    * @return int
1068
-    */
1064
+    /**
1065
+     * Converts an interval to its total amount of days.
1066
+     * @param \DateInterval $interval
1067
+     * @return int
1068
+     */
1069 1069
     public static function interval2days(\DateInterval $interval) : int
1070 1070
     {
1071 1071
         return self::interval2total($interval, self::INTERVAL_DAYS);
1072 1072
     }
1073 1073
 
1074
-   /**
1075
-    * Converts an interval to its total amount of hours.
1076
-    * @param \DateInterval $interval
1077
-    * @return int
1078
-    */
1074
+    /**
1075
+     * Converts an interval to its total amount of hours.
1076
+     * @param \DateInterval $interval
1077
+     * @return int
1078
+     */
1079 1079
     public static function interval2hours(\DateInterval $interval) : int
1080 1080
     {
1081 1081
         return self::interval2total($interval, self::INTERVAL_HOURS);
1082 1082
     }
1083 1083
     
1084
-   /**
1085
-    * Converts an interval to its total amount of minutes. 
1086
-    * @param \DateInterval $interval
1087
-    * @return int
1088
-    */
1084
+    /**
1085
+     * Converts an interval to its total amount of minutes. 
1086
+     * @param \DateInterval $interval
1087
+     * @return int
1088
+     */
1089 1089
     public static function interval2minutes(\DateInterval $interval) : int
1090 1090
     {
1091 1091
         return self::interval2total($interval, self::INTERVAL_MINUTES);
1092 1092
     }
1093 1093
     
1094
-   /**
1095
-    * Converts an interval to its total amount of seconds.
1096
-    * @param \DateInterval $interval
1097
-    * @return int
1098
-    */    
1094
+    /**
1095
+     * Converts an interval to its total amount of seconds.
1096
+     * @param \DateInterval $interval
1097
+     * @return int
1098
+     */    
1099 1099
     public static function interval2seconds(\DateInterval $interval) : int
1100 1100
     {
1101 1101
         return self::interval2total($interval, self::INTERVAL_SECONDS);
1102 1102
     }
1103 1103
     
1104
-   /**
1105
-    * Calculates the total amount of days / hours / minutes or seconds
1106
-    * of a date interval object (depending in the specified units), and 
1107
-    * returns the total amount.
1108
-    * 
1109
-    * @param \DateInterval $interval
1110
-    * @param string $unit What total value to calculate.
1111
-    * @return integer
1112
-    * 
1113
-    * @see ConvertHelper::INTERVAL_SECONDS
1114
-    * @see ConvertHelper::INTERVAL_MINUTES
1115
-    * @see ConvertHelper::INTERVAL_HOURS
1116
-    * @see ConvertHelper::INTERVAL_DAYS
1117
-    */
1104
+    /**
1105
+     * Calculates the total amount of days / hours / minutes or seconds
1106
+     * of a date interval object (depending in the specified units), and 
1107
+     * returns the total amount.
1108
+     * 
1109
+     * @param \DateInterval $interval
1110
+     * @param string $unit What total value to calculate.
1111
+     * @return integer
1112
+     * 
1113
+     * @see ConvertHelper::INTERVAL_SECONDS
1114
+     * @see ConvertHelper::INTERVAL_MINUTES
1115
+     * @see ConvertHelper::INTERVAL_HOURS
1116
+     * @see ConvertHelper::INTERVAL_DAYS
1117
+     */
1118 1118
     public static function interval2total(\DateInterval $interval, $unit=self::INTERVAL_SECONDS) : int
1119 1119
     {
1120 1120
         $total = (int)$interval->format('%a');
@@ -1154,13 +1154,13 @@  discard block
 block discarded – undo
1154 1154
         'Sunday'
1155 1155
     );
1156 1156
     
1157
-   /**
1158
-    * Converts a date to the corresponding day name.
1159
-    * 
1160
-    * @param \DateTime $date
1161
-    * @param bool $short
1162
-    * @return string|NULL
1163
-    */
1157
+    /**
1158
+     * Converts a date to the corresponding day name.
1159
+     * 
1160
+     * @param \DateTime $date
1161
+     * @param bool $short
1162
+     * @return string|NULL
1163
+     */
1164 1164
     public static function date2dayName(\DateTime $date, bool $short=false)
1165 1165
     {
1166 1166
         $day = $date->format('l');
@@ -1175,21 +1175,21 @@  discard block
 block discarded – undo
1175 1175
         return null;
1176 1176
     }
1177 1177
     
1178
-   /**
1179
-    * Retrieves a list of english day names.
1180
-    * @return string[]
1181
-    */
1178
+    /**
1179
+     * Retrieves a list of english day names.
1180
+     * @return string[]
1181
+     */
1182 1182
     public static function getDayNamesInvariant()
1183 1183
     {
1184 1184
         return self::$daysInvariant;
1185 1185
     }
1186 1186
     
1187
-   /**
1188
-    * Retrieves the day names list for the current locale.
1189
-    * 
1190
-    * @param bool $short
1191
-    * @return array
1192
-    */
1187
+    /**
1188
+     * Retrieves the day names list for the current locale.
1189
+     * 
1190
+     * @param bool $short
1191
+     * @return array
1192
+     */
1193 1193
     public static function getDayNames(bool $short=false) : array
1194 1194
     {
1195 1195
         if($short) {
@@ -1249,16 +1249,16 @@  discard block
 block discarded – undo
1249 1249
         return $last;
1250 1250
     }
1251 1251
     
1252
-   /**
1253
-    * Splits a string into an array of all characters it is composed of.
1254
-    * Unicode character safe.
1255
-    * 
1256
-    * NOTE: Spaces and newlines (both \r and \n) are also considered single
1257
-    * characters.
1258
-    * 
1259
-    * @param string $string
1260
-    * @return array
1261
-    */
1252
+    /**
1253
+     * Splits a string into an array of all characters it is composed of.
1254
+     * Unicode character safe.
1255
+     * 
1256
+     * NOTE: Spaces and newlines (both \r and \n) are also considered single
1257
+     * characters.
1258
+     * 
1259
+     * @param string $string
1260
+     * @return array
1261
+     */
1262 1262
     public static function string2array(string $string) : array
1263 1263
     {
1264 1264
         $result = preg_split('//u', $string, null, PREG_SPLIT_NO_EMPTY);
@@ -1269,12 +1269,12 @@  discard block
 block discarded – undo
1269 1269
         return array();
1270 1270
     }
1271 1271
     
1272
-   /**
1273
-    * Checks whether the specified string contains HTML code.
1274
-    * 
1275
-    * @param string $string
1276
-    * @return boolean
1277
-    */
1272
+    /**
1273
+     * Checks whether the specified string contains HTML code.
1274
+     * 
1275
+     * @param string $string
1276
+     * @return boolean
1277
+     */
1278 1278
     public static function isStringHTML(string $string) : bool
1279 1279
     {
1280 1280
         if(preg_match('%<[a-z/][\s\S]*>%siU', $string)) {
@@ -1289,17 +1289,17 @@  discard block
 block discarded – undo
1289 1289
         return false;
1290 1290
     }
1291 1291
     
1292
-   /**
1293
-    * UTF8-safe wordwrap method: works like the regular wordwrap
1294
-    * PHP function but compatible with UTF8. Otherwise the lengths
1295
-    * are not calculated correctly.
1296
-    * 
1297
-    * @param string $str
1298
-    * @param int $width
1299
-    * @param string $break
1300
-    * @param bool $cut
1301
-    * @return string
1302
-    */
1292
+    /**
1293
+     * UTF8-safe wordwrap method: works like the regular wordwrap
1294
+     * PHP function but compatible with UTF8. Otherwise the lengths
1295
+     * are not calculated correctly.
1296
+     * 
1297
+     * @param string $str
1298
+     * @param int $width
1299
+     * @param string $break
1300
+     * @param bool $cut
1301
+     * @return string
1302
+     */
1303 1303
     public static function wordwrap(string $str, int $width = 75, string $break = "\n", bool $cut = false) : string 
1304 1304
     {
1305 1305
         $wrapper = new ConvertHelper_WordWrapper();
@@ -1311,27 +1311,27 @@  discard block
 block discarded – undo
1311 1311
         ->wrapText($str);
1312 1312
     }
1313 1313
     
1314
-   /**
1315
-    * Calculates the byte length of a string, taking into 
1316
-    * account any unicode characters.
1317
-    * 
1318
-    * @param string $string
1319
-    * @return int
1320
-    * @see https://stackoverflow.com/a/9718273/2298192
1321
-    */
1314
+    /**
1315
+     * Calculates the byte length of a string, taking into 
1316
+     * account any unicode characters.
1317
+     * 
1318
+     * @param string $string
1319
+     * @return int
1320
+     * @see https://stackoverflow.com/a/9718273/2298192
1321
+     */
1322 1322
     public static function string2bytes($string)
1323 1323
     {
1324 1324
         return mb_strlen($string, '8bit');
1325 1325
     }
1326 1326
     
1327
-   /**
1328
-    * Creates a short, 8-character long hash for the specified string.
1329
-    * 
1330
-    * WARNING: Not cryptographically safe.
1331
-    * 
1332
-    * @param string $string
1333
-    * @return string
1334
-    */
1327
+    /**
1328
+     * Creates a short, 8-character long hash for the specified string.
1329
+     * 
1330
+     * WARNING: Not cryptographically safe.
1331
+     * 
1332
+     * @param string $string
1333
+     * @return string
1334
+     */
1335 1335
     public static function string2shortHash($string)
1336 1336
     {
1337 1337
         return hash('crc32', $string, false);
@@ -1357,40 +1357,40 @@  discard block
 block discarded – undo
1357 1357
         return ConvertHelper_ThrowableInfo::fromThrowable($e);
1358 1358
     }
1359 1359
     
1360
-   /**
1361
-    * Parses the specified query string like the native 
1362
-    * function <code>parse_str</code>, without the key
1363
-    * naming limitations.
1364
-    * 
1365
-    * Using parse_str, dots or spaces in key names are 
1366
-    * replaced by underscores. This method keeps all names
1367
-    * intact.
1368
-    * 
1369
-    * It still uses the parse_str implementation as it 
1370
-    * is tested and tried, but fixes the parameter names
1371
-    * after parsing, as needed.
1372
-    * 
1373
-    * @param string $queryString
1374
-    * @return array
1375
-    * @see ConvertHelper_QueryParser
1376
-    */
1360
+    /**
1361
+     * Parses the specified query string like the native 
1362
+     * function <code>parse_str</code>, without the key
1363
+     * naming limitations.
1364
+     * 
1365
+     * Using parse_str, dots or spaces in key names are 
1366
+     * replaced by underscores. This method keeps all names
1367
+     * intact.
1368
+     * 
1369
+     * It still uses the parse_str implementation as it 
1370
+     * is tested and tried, but fixes the parameter names
1371
+     * after parsing, as needed.
1372
+     * 
1373
+     * @param string $queryString
1374
+     * @return array
1375
+     * @see ConvertHelper_QueryParser
1376
+     */
1377 1377
     public static function parseQueryString(string $queryString) : array
1378 1378
     {
1379 1379
         $parser = new ConvertHelper_QueryParser();
1380 1380
         return $parser->parse($queryString);
1381 1381
     }
1382 1382
 
1383
-   /**
1384
-    * Searches for needle in the specified string, and returns a list
1385
-    * of all occurrences, including the matched string. The matched 
1386
-    * string is useful when doing a case insensitive search, as it 
1387
-    * shows the exact matched case of needle.
1388
-    *   
1389
-    * @param string $needle
1390
-    * @param string $haystack
1391
-    * @param bool $caseInsensitive
1392
-    * @return ConvertHelper_StringMatch[]
1393
-    */
1383
+    /**
1384
+     * Searches for needle in the specified string, and returns a list
1385
+     * of all occurrences, including the matched string. The matched 
1386
+     * string is useful when doing a case insensitive search, as it 
1387
+     * shows the exact matched case of needle.
1388
+     *   
1389
+     * @param string $needle
1390
+     * @param string $haystack
1391
+     * @param bool $caseInsensitive
1392
+     * @return ConvertHelper_StringMatch[]
1393
+     */
1394 1394
     public static function findString(string $needle, string $haystack, bool $caseInsensitive=false)
1395 1395
     {
1396 1396
         if($needle === '') {
@@ -1416,14 +1416,14 @@  discard block
 block discarded – undo
1416 1416
         return $positions;
1417 1417
     }
1418 1418
     
1419
-   /**
1420
-    * Like explode, but trims all entries, and removes 
1421
-    * empty entries from the resulting array.
1422
-    * 
1423
-    * @param string $delimiter
1424
-    * @param string $string
1425
-    * @return string[]
1426
-    */
1419
+    /**
1420
+     * Like explode, but trims all entries, and removes 
1421
+     * empty entries from the resulting array.
1422
+     * 
1423
+     * @param string $delimiter
1424
+     * @param string $string
1425
+     * @return string[]
1426
+     */
1427 1427
     public static function explodeTrim(string $delimiter, string $string) : array
1428 1428
     {
1429 1429
         if(empty($string) || empty($delimiter)) {
@@ -1445,12 +1445,12 @@  discard block
 block discarded – undo
1445 1445
     
1446 1446
     protected static $eolChars;
1447 1447
 
1448
-   /**
1449
-    * Detects the most used end-of-line character in the subject string.
1450
-    * 
1451
-    * @param string $subjectString The string to check.
1452
-    * @return NULL|ConvertHelper_EOL The detected EOL instance, or NULL if none has been detected.
1453
-    */
1448
+    /**
1449
+     * Detects the most used end-of-line character in the subject string.
1450
+     * 
1451
+     * @param string $subjectString The string to check.
1452
+     * @return NULL|ConvertHelper_EOL The detected EOL instance, or NULL if none has been detected.
1453
+     */
1454 1454
     public static function detectEOLCharacter(string $subjectString) : ?ConvertHelper_EOL
1455 1455
     {
1456 1456
         if(empty($subjectString)) {
@@ -1462,27 +1462,27 @@  discard block
 block discarded – undo
1462 1462
             $cr = chr((int)hexdec('0d'));
1463 1463
             $lf = chr((int)hexdec('0a'));
1464 1464
             
1465
-           self::$eolChars = array(
1466
-               array(
1467
-                   'char' => $cr.$lf,
1468
-                   'type' => ConvertHelper_EOL::TYPE_CRLF,
1469
-                   'description' => t('Carriage return followed by a line feed'),
1470
-               ),
1471
-               array(
1472
-                   'char' => $lf.$cr,
1473
-                   'type' => ConvertHelper_EOL::TYPE_LFCR,
1474
-                   'description' => t('Line feed followed by a carriage return'),
1475
-               ),
1476
-               array(
1477
-                  'char' => $lf,
1478
-                  'type' => ConvertHelper_EOL::TYPE_LF,
1479
-                  'description' => t('Line feed'),
1480
-               ),
1481
-               array(
1482
-                  'char' => $cr,
1483
-                  'type' => ConvertHelper_EOL::TYPE_CR,
1484
-                  'description' => t('Carriage Return'),
1485
-               ),
1465
+            self::$eolChars = array(
1466
+                array(
1467
+                    'char' => $cr.$lf,
1468
+                    'type' => ConvertHelper_EOL::TYPE_CRLF,
1469
+                    'description' => t('Carriage return followed by a line feed'),
1470
+                ),
1471
+                array(
1472
+                    'char' => $lf.$cr,
1473
+                    'type' => ConvertHelper_EOL::TYPE_LFCR,
1474
+                    'description' => t('Line feed followed by a carriage return'),
1475
+                ),
1476
+                array(
1477
+                    'char' => $lf,
1478
+                    'type' => ConvertHelper_EOL::TYPE_LF,
1479
+                    'description' => t('Line feed'),
1480
+                ),
1481
+                array(
1482
+                    'char' => $cr,
1483
+                    'type' => ConvertHelper_EOL::TYPE_CR,
1484
+                    'description' => t('Carriage Return'),
1485
+                ),
1486 1486
             );
1487 1487
         }
1488 1488
         
@@ -1510,13 +1510,13 @@  discard block
 block discarded – undo
1510 1510
         );
1511 1511
     }
1512 1512
 
1513
-   /**
1514
-    * Removes the specified keys from the target array,
1515
-    * if they exist.
1516
-    * 
1517
-    * @param array $array
1518
-    * @param array $keys
1519
-    */
1513
+    /**
1514
+     * Removes the specified keys from the target array,
1515
+     * if they exist.
1516
+     * 
1517
+     * @param array $array
1518
+     * @param array $keys
1519
+     */
1520 1520
     public static function arrayRemoveKeys(array &$array, array $keys) : void
1521 1521
     {
1522 1522
         foreach($keys as $key) 
@@ -1527,13 +1527,13 @@  discard block
 block discarded – undo
1527 1527
         }
1528 1528
     }
1529 1529
     
1530
-   /**
1531
-    * Checks if the specified variable is an integer or a string containing an integer.
1532
-    * Accepts both positive and negative integers.
1533
-    * 
1534
-    * @param mixed $value
1535
-    * @return bool
1536
-    */
1530
+    /**
1531
+     * Checks if the specified variable is an integer or a string containing an integer.
1532
+     * Accepts both positive and negative integers.
1533
+     * 
1534
+     * @param mixed $value
1535
+     * @return bool
1536
+     */
1537 1537
     public static function isInteger($value) : bool
1538 1538
     {
1539 1539
         if(is_int($value)) {
@@ -1553,40 +1553,40 @@  discard block
 block discarded – undo
1553 1553
         return false;    
1554 1554
     }
1555 1555
     
1556
-   /**
1557
-    * Converts an amount of seconds to a DateInterval object.
1558
-    * 
1559
-    * @param int $seconds
1560
-    * @return \DateInterval
1561
-    * @throws ConvertHelper_Exception If the date interval cannot be created.
1562
-    * 
1563
-    * @see ConvertHelper::ERROR_CANNOT_GET_DATE_DIFF
1564
-    */
1556
+    /**
1557
+     * Converts an amount of seconds to a DateInterval object.
1558
+     * 
1559
+     * @param int $seconds
1560
+     * @return \DateInterval
1561
+     * @throws ConvertHelper_Exception If the date interval cannot be created.
1562
+     * 
1563
+     * @see ConvertHelper::ERROR_CANNOT_GET_DATE_DIFF
1564
+     */
1565 1565
     public static function seconds2interval(int $seconds) : \DateInterval
1566 1566
     {
1567 1567
         return ConvertHelper_DateInterval::fromSeconds($seconds)->getInterval();
1568 1568
     }
1569 1569
     
1570
-   /**
1571
-    * Converts a size string like "50 MB" to the corresponding byte size.
1572
-    * It is case insensitive, ignores spaces, and supports both traditional
1573
-    * "MB" and "MiB" notations.
1574
-    * 
1575
-    * @param string $size
1576
-    * @return int
1577
-    */
1570
+    /**
1571
+     * Converts a size string like "50 MB" to the corresponding byte size.
1572
+     * It is case insensitive, ignores spaces, and supports both traditional
1573
+     * "MB" and "MiB" notations.
1574
+     * 
1575
+     * @param string $size
1576
+     * @return int
1577
+     */
1578 1578
     public static function size2bytes(string $size) : int
1579 1579
     {
1580 1580
         return self::parseSize($size)->toBytes();
1581 1581
     }
1582 1582
     
1583
-   /**
1584
-    * Parses a size string like "50 MB" and returns a size notation instance
1585
-    * that has utility methods to access information on it, and convert it.
1586
-    * 
1587
-    * @param string $size
1588
-    * @return ConvertHelper_SizeNotation
1589
-    */
1583
+    /**
1584
+     * Parses a size string like "50 MB" and returns a size notation instance
1585
+     * that has utility methods to access information on it, and convert it.
1586
+     * 
1587
+     * @param string $size
1588
+     * @return ConvertHelper_SizeNotation
1589
+     */
1590 1590
     public static function parseSize(string $size) : ConvertHelper_SizeNotation
1591 1591
     {
1592 1592
         return new ConvertHelper_SizeNotation($size);
Please login to merge, or discard this patch.