@@ -23,9 +23,9 @@ discard block |
||
| 23 | 23 | { |
| 24 | 24 | const ERROR_TOKENIZE_METHOD_MISSING = 49801; |
| 25 | 25 | |
| 26 | - /** |
|
| 27 | - * @var string[] |
|
| 28 | - */ |
|
| 26 | + /** |
|
| 27 | + * @var string[] |
|
| 28 | + */ |
|
| 29 | 29 | protected $operands = array( |
| 30 | 30 | '==', |
| 31 | 31 | '<=', |
@@ -40,17 +40,17 @@ discard block |
||
| 40 | 40 | '<' |
| 41 | 41 | ); |
| 42 | 42 | |
| 43 | - /** |
|
| 44 | - * @var string[] |
|
| 45 | - */ |
|
| 43 | + /** |
|
| 44 | + * @var string[] |
|
| 45 | + */ |
|
| 46 | 46 | protected $keywords = array( |
| 47 | 47 | 'in:', |
| 48 | 48 | 'insensitive:' |
| 49 | 49 | ); |
| 50 | 50 | |
| 51 | - /** |
|
| 52 | - * @var string |
|
| 53 | - */ |
|
| 51 | + /** |
|
| 52 | + * @var string |
|
| 53 | + */ |
|
| 54 | 54 | protected $delimiter = '§§'; |
| 55 | 55 | |
| 56 | 56 | /** |
@@ -66,19 +66,19 @@ discard block |
||
| 66 | 66 | 'extract_tokens' |
| 67 | 67 | ); |
| 68 | 68 | |
| 69 | - /** |
|
| 70 | - * @var Mailcode_Parser_Statement |
|
| 71 | - */ |
|
| 69 | + /** |
|
| 70 | + * @var Mailcode_Parser_Statement |
|
| 71 | + */ |
|
| 72 | 72 | protected $statement; |
| 73 | 73 | |
| 74 | - /** |
|
| 75 | - * @var string |
|
| 76 | - */ |
|
| 74 | + /** |
|
| 75 | + * @var string |
|
| 76 | + */ |
|
| 77 | 77 | protected $tokenized; |
| 78 | 78 | |
| 79 | - /** |
|
| 80 | - * @var Mailcode_Parser_Statement_Tokenizer_Token[] |
|
| 81 | - */ |
|
| 79 | + /** |
|
| 80 | + * @var Mailcode_Parser_Statement_Tokenizer_Token[] |
|
| 81 | + */ |
|
| 82 | 82 | protected $tokensTemporary = array(); |
| 83 | 83 | |
| 84 | 84 | /** |
@@ -86,9 +86,9 @@ discard block |
||
| 86 | 86 | */ |
| 87 | 87 | protected $tokensOrdered = array(); |
| 88 | 88 | |
| 89 | - /** |
|
| 90 | - * @var string[] |
|
| 91 | - */ |
|
| 89 | + /** |
|
| 90 | + * @var string[] |
|
| 91 | + */ |
|
| 92 | 92 | protected static $ids = array(); |
| 93 | 93 | |
| 94 | 94 | public function __construct(Mailcode_Parser_Statement $statement) |
@@ -98,12 +98,12 @@ discard block |
||
| 98 | 98 | $this->tokenize($statement->getStatementString()); |
| 99 | 99 | } |
| 100 | 100 | |
| 101 | - /** |
|
| 102 | - * Retrieves all tokens detected in the statement string, in |
|
| 103 | - * the order they were found. |
|
| 104 | - * |
|
| 105 | - * @return Mailcode_Parser_Statement_Tokenizer_Token[] |
|
| 106 | - */ |
|
| 101 | + /** |
|
| 102 | + * Retrieves all tokens detected in the statement string, in |
|
| 103 | + * the order they were found. |
|
| 104 | + * |
|
| 105 | + * @return Mailcode_Parser_Statement_Tokenizer_Token[] |
|
| 106 | + */ |
|
| 107 | 107 | public function getTokens() |
| 108 | 108 | { |
| 109 | 109 | return $this->tokensOrdered; |
@@ -114,11 +114,11 @@ discard block |
||
| 114 | 114 | return !empty($this->tokensOrdered); |
| 115 | 115 | } |
| 116 | 116 | |
| 117 | - /** |
|
| 118 | - * Whether there were any unknown tokens in the statement. |
|
| 119 | - * |
|
| 120 | - * @return bool |
|
| 121 | - */ |
|
| 117 | + /** |
|
| 118 | + * Whether there were any unknown tokens in the statement. |
|
| 119 | + * |
|
| 120 | + * @return bool |
|
| 121 | + */ |
|
| 122 | 122 | public function hasUnknown() : bool |
| 123 | 123 | { |
| 124 | 124 | $unknown = $this->getUnknown(); |
@@ -126,11 +126,11 @@ discard block |
||
| 126 | 126 | return !empty($unknown); |
| 127 | 127 | } |
| 128 | 128 | |
| 129 | - /** |
|
| 130 | - * Retrieves all unknown content tokens, if any. |
|
| 131 | - * |
|
| 132 | - * @return \Mailcode\Mailcode_Parser_Statement_Tokenizer_Token_Unknown[] |
|
| 133 | - */ |
|
| 129 | + /** |
|
| 130 | + * Retrieves all unknown content tokens, if any. |
|
| 131 | + * |
|
| 132 | + * @return \Mailcode\Mailcode_Parser_Statement_Tokenizer_Token_Unknown[] |
|
| 133 | + */ |
|
| 134 | 134 | public function getUnknown() |
| 135 | 135 | { |
| 136 | 136 | $result = array(); |
@@ -200,13 +200,13 @@ discard block |
||
| 200 | 200 | } |
| 201 | 201 | } |
| 202 | 202 | |
| 203 | - /** |
|
| 204 | - * Registers a token to add in the statement string. |
|
| 205 | - * |
|
| 206 | - * @param string $type |
|
| 207 | - * @param string $matchedText |
|
| 208 | - * @param mixed $subject |
|
| 209 | - */ |
|
| 203 | + /** |
|
| 204 | + * Registers a token to add in the statement string. |
|
| 205 | + * |
|
| 206 | + * @param string $type |
|
| 207 | + * @param string $matchedText |
|
| 208 | + * @param mixed $subject |
|
| 209 | + */ |
|
| 210 | 210 | protected function registerToken(string $type, string $matchedText, $subject=null) : void |
| 211 | 211 | { |
| 212 | 212 | $tokenID = $this->generateID(); |
@@ -318,13 +318,13 @@ discard block |
||
| 318 | 318 | } |
| 319 | 319 | } |
| 320 | 320 | |
| 321 | - /** |
|
| 322 | - * Generates a unique alphabet-based ID without numbers |
|
| 323 | - * to use as token name, to avoid conflicts with the |
|
| 324 | - * numbers detection. |
|
| 325 | - * |
|
| 326 | - * @return string |
|
| 327 | - */ |
|
| 321 | + /** |
|
| 322 | + * Generates a unique alphabet-based ID without numbers |
|
| 323 | + * to use as token name, to avoid conflicts with the |
|
| 324 | + * numbers detection. |
|
| 325 | + * |
|
| 326 | + * @return string |
|
| 327 | + */ |
|
| 328 | 328 | protected function generateID() : string |
| 329 | 329 | { |
| 330 | 330 | static $alphas; |
@@ -135,9 +135,9 @@ discard block |
||
| 135 | 135 | { |
| 136 | 136 | $result = array(); |
| 137 | 137 | |
| 138 | - foreach($this->tokensOrdered as $token) |
|
| 138 | + foreach ($this->tokensOrdered as $token) |
|
| 139 | 139 | { |
| 140 | - if($token instanceof Mailcode_Parser_Statement_Tokenizer_Token_Unknown) |
|
| 140 | + if ($token instanceof Mailcode_Parser_Statement_Tokenizer_Token_Unknown) |
|
| 141 | 141 | { |
| 142 | 142 | $result[] = $token; |
| 143 | 143 | } |
@@ -150,7 +150,7 @@ discard block |
||
| 150 | 150 | { |
| 151 | 151 | $unknown = $this->getUnknown(); |
| 152 | 152 | |
| 153 | - if(!empty($unknown)) |
|
| 153 | + if (!empty($unknown)) |
|
| 154 | 154 | { |
| 155 | 155 | return array_shift($unknown); |
| 156 | 156 | } |
@@ -162,11 +162,11 @@ discard block |
||
| 162 | 162 | { |
| 163 | 163 | $parts = array(); |
| 164 | 164 | |
| 165 | - foreach($this->tokensOrdered as $token) |
|
| 165 | + foreach ($this->tokensOrdered as $token) |
|
| 166 | 166 | { |
| 167 | 167 | $string = $token->getNormalized(); |
| 168 | 168 | |
| 169 | - if($string != '') |
|
| 169 | + if ($string != '') |
|
| 170 | 170 | { |
| 171 | 171 | $parts[] = $string; |
| 172 | 172 | } |
@@ -179,11 +179,11 @@ discard block |
||
| 179 | 179 | { |
| 180 | 180 | $this->tokenized = trim($statement); |
| 181 | 181 | |
| 182 | - foreach($this->tokenCategories as $token) |
|
| 182 | + foreach ($this->tokenCategories as $token) |
|
| 183 | 183 | { |
| 184 | 184 | $method = 'tokenize_'.$token; |
| 185 | 185 | |
| 186 | - if(!method_exists($this, $method)) |
|
| 186 | + if (!method_exists($this, $method)) |
|
| 187 | 187 | { |
| 188 | 188 | throw new Mailcode_Exception( |
| 189 | 189 | 'Unknown statement token.', |
@@ -207,7 +207,7 @@ discard block |
||
| 207 | 207 | * @param string $matchedText |
| 208 | 208 | * @param mixed $subject |
| 209 | 209 | */ |
| 210 | - protected function registerToken(string $type, string $matchedText, $subject=null) : void |
|
| 210 | + protected function registerToken(string $type, string $matchedText, $subject = null) : void |
|
| 211 | 211 | { |
| 212 | 212 | $tokenID = $this->generateID(); |
| 213 | 213 | |
@@ -224,9 +224,9 @@ discard block |
||
| 224 | 224 | |
| 225 | 225 | protected function getTokenByID(string $tokenID) : ?Mailcode_Parser_Statement_Tokenizer_Token |
| 226 | 226 | { |
| 227 | - foreach($this->tokensTemporary as $token) |
|
| 227 | + foreach ($this->tokensTemporary as $token) |
|
| 228 | 228 | { |
| 229 | - if($token->getID() === $tokenID) |
|
| 229 | + if ($token->getID() === $tokenID) |
|
| 230 | 230 | { |
| 231 | 231 | return $token; |
| 232 | 232 | } |
@@ -242,9 +242,9 @@ discard block |
||
| 242 | 242 | |
| 243 | 243 | protected function tokenize_keywords() : void |
| 244 | 244 | { |
| 245 | - foreach($this->keywords as $keyword) |
|
| 245 | + foreach ($this->keywords as $keyword) |
|
| 246 | 246 | { |
| 247 | - if(strstr($this->tokenized, $keyword)) |
|
| 247 | + if (strstr($this->tokenized, $keyword)) |
|
| 248 | 248 | { |
| 249 | 249 | $this->registerToken('Keyword', $keyword); |
| 250 | 250 | } |
@@ -258,12 +258,12 @@ discard block |
||
| 258 | 258 | // over that could not be tokenized. |
| 259 | 259 | $parts = \AppUtils\ConvertHelper::explodeTrim($this->delimiter, $this->tokenized); |
| 260 | 260 | |
| 261 | - foreach($parts as $part) |
|
| 261 | + foreach ($parts as $part) |
|
| 262 | 262 | { |
| 263 | 263 | $token = $this->getTokenByID($part); |
| 264 | 264 | |
| 265 | 265 | // if the entry is a token, simply add it. |
| 266 | - if($token) |
|
| 266 | + if ($token) |
|
| 267 | 267 | { |
| 268 | 268 | $this->tokensOrdered[] = $token; |
| 269 | 269 | } |
@@ -279,7 +279,7 @@ discard block |
||
| 279 | 279 | { |
| 280 | 280 | $vars = Mailcode::create()->findVariables($this->tokenized)->getGroupedByHash(); |
| 281 | 281 | |
| 282 | - foreach($vars as $var) |
|
| 282 | + foreach ($vars as $var) |
|
| 283 | 283 | { |
| 284 | 284 | $this->registerToken('Variable', $var->getMatchedText(), $var); |
| 285 | 285 | } |
@@ -287,9 +287,9 @@ discard block |
||
| 287 | 287 | |
| 288 | 288 | protected function tokenize_operands() : void |
| 289 | 289 | { |
| 290 | - foreach($this->operands as $operand) |
|
| 290 | + foreach ($this->operands as $operand) |
|
| 291 | 291 | { |
| 292 | - if(strstr($this->tokenized, $operand)) |
|
| 292 | + if (strstr($this->tokenized, $operand)) |
|
| 293 | 293 | { |
| 294 | 294 | $this->registerToken('Operand', $operand); |
| 295 | 295 | } |
@@ -301,7 +301,7 @@ discard block |
||
| 301 | 301 | $matches = array(); |
| 302 | 302 | preg_match_all('/"(.*)"/sx', $this->tokenized, $matches, PREG_PATTERN_ORDER); |
| 303 | 303 | |
| 304 | - foreach($matches[0] as $match) |
|
| 304 | + foreach ($matches[0] as $match) |
|
| 305 | 305 | { |
| 306 | 306 | $this->registerToken('StringLiteral', $match); |
| 307 | 307 | } |
@@ -312,7 +312,7 @@ discard block |
||
| 312 | 312 | $matches = array(); |
| 313 | 313 | preg_match_all('/-*[0-9]+\s*[.,]\s*[0-9]+|-*[0-9]+/sx', $this->tokenized, $matches, PREG_PATTERN_ORDER); |
| 314 | 314 | |
| 315 | - foreach($matches[0] as $match) |
|
| 315 | + foreach ($matches[0] as $match) |
|
| 316 | 316 | { |
| 317 | 317 | $this->registerToken('Number', $match); |
| 318 | 318 | } |
@@ -329,7 +329,7 @@ discard block |
||
| 329 | 329 | { |
| 330 | 330 | static $alphas; |
| 331 | 331 | |
| 332 | - if(!isset($alphas)) |
|
| 332 | + if (!isset($alphas)) |
|
| 333 | 333 | { |
| 334 | 334 | $alphas = range('A', 'Z'); |
| 335 | 335 | } |
@@ -338,12 +338,12 @@ discard block |
||
| 338 | 338 | |
| 339 | 339 | $result = ''; |
| 340 | 340 | |
| 341 | - for($i=0; $i < $amount; $i++) |
|
| 341 | + for ($i = 0; $i < $amount; $i++) |
|
| 342 | 342 | { |
| 343 | 343 | $result .= $alphas[array_rand($alphas)]; |
| 344 | 344 | } |
| 345 | 345 | |
| 346 | - if(!in_array($result, self::$ids)) |
|
| 346 | + if (!in_array($result, self::$ids)) |
|
| 347 | 347 | { |
| 348 | 348 | self::$ids[] = $result; |
| 349 | 349 | return $result; |
@@ -20,13 +20,13 @@ |
||
| 20 | 20 | */ |
| 21 | 21 | abstract class Mailcode_Translator_Syntax_ApacheVelocity extends Mailcode_Translator_Command |
| 22 | 22 | { |
| 23 | - /** |
|
| 24 | - * Filters the string for use in an Apache Velocity (Java) |
|
| 25 | - * regex string: escapes all special characters. |
|
| 26 | - * |
|
| 27 | - * @param string $string |
|
| 28 | - * @return string |
|
| 29 | - */ |
|
| 23 | + /** |
|
| 24 | + * Filters the string for use in an Apache Velocity (Java) |
|
| 25 | + * regex string: escapes all special characters. |
|
| 26 | + * |
|
| 27 | + * @param string $string |
|
| 28 | + * @return string |
|
| 29 | + */ |
|
| 30 | 30 | protected function filterRegexString(string $string) : string |
| 31 | 31 | { |
| 32 | 32 | $escape = array( |
@@ -48,7 +48,7 @@ |
||
| 48 | 48 | ')' |
| 49 | 49 | ); |
| 50 | 50 | |
| 51 | - foreach($escape as $char) |
|
| 51 | + foreach ($escape as $char) |
|
| 52 | 52 | { |
| 53 | 53 | $string = str_replace($char, '\\'.$char, $string); |
| 54 | 54 | } |
@@ -23,9 +23,9 @@ discard block |
||
| 23 | 23 | { |
| 24 | 24 | const ERROR_UNKNOWN_COMMAND_TYPE = 50401; |
| 25 | 25 | |
| 26 | - /** |
|
| 27 | - * @var string |
|
| 28 | - */ |
|
| 26 | + /** |
|
| 27 | + * @var string |
|
| 28 | + */ |
|
| 29 | 29 | protected $typeID; |
| 30 | 30 | |
| 31 | 31 | public function __construct(string $typeID) |
@@ -33,22 +33,22 @@ discard block |
||
| 33 | 33 | $this->typeID = $typeID; |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | - /** |
|
| 37 | - * Retrieves the syntax' type ID, e.g. "ApacheVelocity". |
|
| 38 | - * @return string |
|
| 39 | - */ |
|
| 36 | + /** |
|
| 37 | + * Retrieves the syntax' type ID, e.g. "ApacheVelocity". |
|
| 38 | + * @return string |
|
| 39 | + */ |
|
| 40 | 40 | public function getTypeID() : string |
| 41 | 41 | { |
| 42 | 42 | return $this->typeID; |
| 43 | 43 | } |
| 44 | 44 | |
| 45 | - /** |
|
| 46 | - * Translates a single command to the target syntax. |
|
| 47 | - * |
|
| 48 | - * @param Mailcode_Commands_Command $command |
|
| 49 | - * @throws Mailcode_Translator_Exception |
|
| 50 | - * @return string |
|
| 51 | - */ |
|
| 45 | + /** |
|
| 46 | + * Translates a single command to the target syntax. |
|
| 47 | + * |
|
| 48 | + * @param Mailcode_Commands_Command $command |
|
| 49 | + * @throws Mailcode_Translator_Exception |
|
| 50 | + * @return string |
|
| 51 | + */ |
|
| 52 | 52 | public function translateCommand(Mailcode_Commands_Command $command) : string |
| 53 | 53 | { |
| 54 | 54 | $translator = $this->createTranslator($command); |
@@ -81,13 +81,13 @@ discard block |
||
| 81 | 81 | return $translator; |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | - /** |
|
| 85 | - * Translates all safeguarded commands in the subject string to the |
|
| 86 | - * target syntax in one go. |
|
| 87 | - * |
|
| 88 | - * @param Mailcode_Parser_Safeguard $safeguard |
|
| 89 | - * @return string |
|
| 90 | - */ |
|
| 84 | + /** |
|
| 85 | + * Translates all safeguarded commands in the subject string to the |
|
| 86 | + * target syntax in one go. |
|
| 87 | + * |
|
| 88 | + * @param Mailcode_Parser_Safeguard $safeguard |
|
| 89 | + * @return string |
|
| 90 | + */ |
|
| 91 | 91 | public function translateSafeguard(Mailcode_Parser_Safeguard $safeguard) : string |
| 92 | 92 | { |
| 93 | 93 | $subject = $safeguard->makeSafe(); |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | $command->getID() |
| 65 | 65 | ); |
| 66 | 66 | |
| 67 | - if(!class_exists($class)) |
|
| 67 | + if (!class_exists($class)) |
|
| 68 | 68 | { |
| 69 | 69 | throw new Mailcode_Translator_Exception( |
| 70 | 70 | sprintf('Unknown command %s in translator', $command->getID()), |
@@ -92,7 +92,7 @@ discard block |
||
| 92 | 92 | { |
| 93 | 93 | $subject = $safeguard->makeSafe(); |
| 94 | 94 | |
| 95 | - if(!$safeguard->hasPlaceholders()) |
|
| 95 | + if (!$safeguard->hasPlaceholders()) |
|
| 96 | 96 | { |
| 97 | 97 | return $subject; |
| 98 | 98 | } |
@@ -101,7 +101,7 @@ discard block |
||
| 101 | 101 | |
| 102 | 102 | $replaces = array(); |
| 103 | 103 | |
| 104 | - foreach($placeholders as $placeholder) |
|
| 104 | + foreach ($placeholders as $placeholder) |
|
| 105 | 105 | { |
| 106 | 106 | $replaces[$placeholder->getReplacementText()] = $this->translateCommand($placeholder->getCommand()); |
| 107 | 107 | } |
@@ -24,9 +24,9 @@ discard block |
||
| 24 | 24 | */ |
| 25 | 25 | abstract class Mailcode_Parser_Safeguard_Formatter |
| 26 | 26 | { |
| 27 | - /** |
|
| 28 | - * @var Mailcode_Parser_Safeguard |
|
| 29 | - */ |
|
| 27 | + /** |
|
| 28 | + * @var Mailcode_Parser_Safeguard |
|
| 29 | + */ |
|
| 30 | 30 | protected $safeguard; |
| 31 | 31 | |
| 32 | 32 | public function __construct(Mailcode_Parser_Safeguard $safeguard) |
@@ -36,13 +36,13 @@ discard block |
||
| 36 | 36 | |
| 37 | 37 | abstract public function format(string $subject) : string; |
| 38 | 38 | |
| 39 | - /** |
|
| 40 | - * Resolves a list of positions of needle in the haystack. |
|
| 41 | - * |
|
| 42 | - * @param string $needle |
|
| 43 | - * @param string $haystack |
|
| 44 | - * @return int[] |
|
| 45 | - */ |
|
| 39 | + /** |
|
| 40 | + * Resolves a list of positions of needle in the haystack. |
|
| 41 | + * |
|
| 42 | + * @param string $needle |
|
| 43 | + * @param string $haystack |
|
| 44 | + * @return int[] |
|
| 45 | + */ |
|
| 46 | 46 | protected function resolvePositions(string $needle, string $haystack) : array |
| 47 | 47 | { |
| 48 | 48 | $lastPos = 0; |
@@ -57,12 +57,12 @@ discard block |
||
| 57 | 57 | return $positions; |
| 58 | 58 | } |
| 59 | 59 | |
| 60 | - /** |
|
| 61 | - * Resolves the newline character used in the string. |
|
| 62 | - * |
|
| 63 | - * @param string $subject |
|
| 64 | - * @return string |
|
| 65 | - */ |
|
| 60 | + /** |
|
| 61 | + * Resolves the newline character used in the string. |
|
| 62 | + * |
|
| 63 | + * @param string $subject |
|
| 64 | + * @return string |
|
| 65 | + */ |
|
| 66 | 66 | protected function resolveNewlineChar(string $subject) : string |
| 67 | 67 | { |
| 68 | 68 | $eol = ConvertHelper::detectEOLCharacter($subject); |
@@ -75,13 +75,13 @@ discard block |
||
| 75 | 75 | return PHP_EOL; |
| 76 | 76 | } |
| 77 | 77 | |
| 78 | - /** |
|
| 79 | - * Resolves the list of placeholder strings that need |
|
| 80 | - * to be formatted. This includes only commands that |
|
| 81 | - * do not generate content. |
|
| 82 | - * |
|
| 83 | - * @return string[] |
|
| 84 | - */ |
|
| 78 | + /** |
|
| 79 | + * Resolves the list of placeholder strings that need |
|
| 80 | + * to be formatted. This includes only commands that |
|
| 81 | + * do not generate content. |
|
| 82 | + * |
|
| 83 | + * @return string[] |
|
| 84 | + */ |
|
| 85 | 85 | protected function resolvePlaceholderStrings() : array |
| 86 | 86 | { |
| 87 | 87 | $placeholders = $this->filterPlaceholders(); |
@@ -96,9 +96,9 @@ discard block |
||
| 96 | 96 | return $result; |
| 97 | 97 | } |
| 98 | 98 | |
| 99 | - /** |
|
| 100 | - * @return \Mailcode\Mailcode_Parser_Safeguard_Placeholder[] |
|
| 101 | - */ |
|
| 99 | + /** |
|
| 100 | + * @return \Mailcode\Mailcode_Parser_Safeguard_Placeholder[] |
|
| 101 | + */ |
|
| 102 | 102 | protected function filterPlaceholders() |
| 103 | 103 | { |
| 104 | 104 | return $this->safeguard->getPlaceholders(); |
@@ -48,7 +48,7 @@ discard block |
||
| 48 | 48 | $lastPos = 0; |
| 49 | 49 | $positions = array(); |
| 50 | 50 | |
| 51 | - while (($lastPos = mb_strpos($haystack, $needle, $lastPos))!== false) |
|
| 51 | + while (($lastPos = mb_strpos($haystack, $needle, $lastPos)) !== false) |
|
| 52 | 52 | { |
| 53 | 53 | $positions[] = $lastPos; |
| 54 | 54 | $lastPos = $lastPos + mb_strlen($needle); |
@@ -67,7 +67,7 @@ discard block |
||
| 67 | 67 | { |
| 68 | 68 | $eol = ConvertHelper::detectEOLCharacter($subject); |
| 69 | 69 | |
| 70 | - if($eol) |
|
| 70 | + if ($eol) |
|
| 71 | 71 | { |
| 72 | 72 | return $eol->getCharacter(); |
| 73 | 73 | } |
@@ -88,7 +88,7 @@ discard block |
||
| 88 | 88 | |
| 89 | 89 | $result = array(); |
| 90 | 90 | |
| 91 | - foreach($placeholders as $placeholder) |
|
| 91 | + foreach ($placeholders as $placeholder) |
|
| 92 | 92 | { |
| 93 | 93 | $result[] = $placeholder->getReplacementText(); |
| 94 | 94 | } |
@@ -21,39 +21,39 @@ discard block |
||
| 21 | 21 | */ |
| 22 | 22 | class Mailcode_Parser_Safeguard_Formatter_SingleLines_Placeholder |
| 23 | 23 | { |
| 24 | - /** |
|
| 25 | - * @var int |
|
| 26 | - */ |
|
| 24 | + /** |
|
| 25 | + * @var int |
|
| 26 | + */ |
|
| 27 | 27 | protected $eolLength; |
| 28 | 28 | |
| 29 | - /** |
|
| 30 | - * @var int |
|
| 31 | - */ |
|
| 29 | + /** |
|
| 30 | + * @var int |
|
| 31 | + */ |
|
| 32 | 32 | protected $position; |
| 33 | 33 | |
| 34 | - /** |
|
| 35 | - * @var string |
|
| 36 | - */ |
|
| 34 | + /** |
|
| 35 | + * @var string |
|
| 36 | + */ |
|
| 37 | 37 | protected $subject; |
| 38 | 38 | |
| 39 | - /** |
|
| 40 | - * @var Mailcode_Parser_Safeguard_Formatter_SingleLines |
|
| 41 | - */ |
|
| 39 | + /** |
|
| 40 | + * @var Mailcode_Parser_Safeguard_Formatter_SingleLines |
|
| 41 | + */ |
|
| 42 | 42 | protected $formatter; |
| 43 | 43 | |
| 44 | - /** |
|
| 45 | - * @var boolean |
|
| 46 | - */ |
|
| 44 | + /** |
|
| 45 | + * @var boolean |
|
| 46 | + */ |
|
| 47 | 47 | protected $prepend = false; |
| 48 | 48 | |
| 49 | - /** |
|
| 50 | - * @var boolean |
|
| 51 | - */ |
|
| 49 | + /** |
|
| 50 | + * @var boolean |
|
| 51 | + */ |
|
| 52 | 52 | protected $append = false; |
| 53 | 53 | |
| 54 | - /** |
|
| 55 | - * @var int |
|
| 56 | - */ |
|
| 54 | + /** |
|
| 55 | + * @var int |
|
| 56 | + */ |
|
| 57 | 57 | protected $placeholderLength; |
| 58 | 58 | |
| 59 | 59 | public function __construct(Mailcode_Parser_Safeguard_Formatter_SingleLines $formatter, string $subject, int $placeholderLength, int $position) |
@@ -67,11 +67,11 @@ discard block |
||
| 67 | 67 | $this->analyzeAppend($subject); |
| 68 | 68 | } |
| 69 | 69 | |
| 70 | - /** |
|
| 71 | - * Whether an EOL character needs to be appended or prepended. |
|
| 72 | - * |
|
| 73 | - * @return bool |
|
| 74 | - */ |
|
| 70 | + /** |
|
| 71 | + * Whether an EOL character needs to be appended or prepended. |
|
| 72 | + * |
|
| 73 | + * @return bool |
|
| 74 | + */ |
|
| 75 | 75 | public function requiresAdjustment() : bool |
| 76 | 76 | { |
| 77 | 77 | return $this->requiresAppend() || $this->requiresPrepend(); |
@@ -90,21 +90,21 @@ discard block |
||
| 90 | 90 | protected function analyzePrepend(string $subject) : void |
| 91 | 91 | { |
| 92 | 92 | // we're at the beginning of the string |
| 93 | - if($this->position == 0) |
|
| 93 | + if ($this->position == 0) |
|
| 94 | 94 | { |
| 95 | 95 | return; |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | 98 | $prevPos = $this->position - $this->eolLength; |
| 99 | 99 | |
| 100 | - if($prevPos < 0) |
|
| 100 | + if ($prevPos < 0) |
|
| 101 | 101 | { |
| 102 | 102 | $prevPos = 0; |
| 103 | 103 | } |
| 104 | 104 | |
| 105 | 105 | $prev = mb_substr($subject, $prevPos, $this->eolLength); |
| 106 | 106 | |
| 107 | - if($prev !== $this->formatter->getEOLChar()) |
|
| 107 | + if ($prev !== $this->formatter->getEOLChar()) |
|
| 108 | 108 | { |
| 109 | 109 | $this->prepend = true; |
| 110 | 110 | } |
@@ -117,21 +117,21 @@ discard block |
||
| 117 | 117 | $position = $this->position + $this->placeholderLength; |
| 118 | 118 | |
| 119 | 119 | // we're at the end of the string |
| 120 | - if($position >= $subjectLength) |
|
| 120 | + if ($position >= $subjectLength) |
|
| 121 | 121 | { |
| 122 | 122 | return; |
| 123 | 123 | } |
| 124 | 124 | |
| 125 | 125 | $nextPos = $position + $this->eolLength; |
| 126 | 126 | |
| 127 | - if($nextPos > $subjectLength) |
|
| 127 | + if ($nextPos > $subjectLength) |
|
| 128 | 128 | { |
| 129 | 129 | $nextPos = $subjectLength - $this->eolLength; |
| 130 | 130 | } |
| 131 | 131 | |
| 132 | 132 | $next = mb_substr($subject, $nextPos, $this->eolLength); |
| 133 | 133 | |
| 134 | - if($next !== $this->formatter->getEOLChar()) |
|
| 134 | + if ($next !== $this->formatter->getEOLChar()) |
|
| 135 | 135 | { |
| 136 | 136 | $this->append = true; |
| 137 | 137 | } |
@@ -23,14 +23,14 @@ discard block |
||
| 23 | 23 | */ |
| 24 | 24 | class Mailcode_Parser_Safeguard_Formatter_SingleLines extends Mailcode_Parser_Safeguard_Formatter |
| 25 | 25 | { |
| 26 | - /** |
|
| 27 | - * @var string |
|
| 28 | - */ |
|
| 26 | + /** |
|
| 27 | + * @var string |
|
| 28 | + */ |
|
| 29 | 29 | protected $eol; |
| 30 | 30 | |
| 31 | - /** |
|
| 32 | - * @var int |
|
| 33 | - */ |
|
| 31 | + /** |
|
| 32 | + * @var int |
|
| 33 | + */ |
|
| 34 | 34 | protected $eolLength; |
| 35 | 35 | |
| 36 | 36 | public function format(string $subject) : string |
@@ -119,13 +119,13 @@ discard block |
||
| 119 | 119 | return $prepend.$placeholder.$append; |
| 120 | 120 | } |
| 121 | 121 | |
| 122 | - /** |
|
| 123 | - * We only use placeholders that contain commands that do |
|
| 124 | - * not generate contents, since these are the only ones |
|
| 125 | - * that may need adjusting. |
|
| 126 | - * |
|
| 127 | - * @return \Mailcode\Mailcode_Parser_Safeguard_Placeholder[] |
|
| 128 | - */ |
|
| 122 | + /** |
|
| 123 | + * We only use placeholders that contain commands that do |
|
| 124 | + * not generate contents, since these are the only ones |
|
| 125 | + * that may need adjusting. |
|
| 126 | + * |
|
| 127 | + * @return \Mailcode\Mailcode_Parser_Safeguard_Placeholder[] |
|
| 128 | + */ |
|
| 129 | 129 | protected function filterPlaceholders() |
| 130 | 130 | { |
| 131 | 131 | $placeholders = $this->safeguard->getPlaceholders(); |
@@ -42,7 +42,7 @@ discard block |
||
| 42 | 42 | |
| 43 | 43 | $total = count($placeholders); |
| 44 | 44 | |
| 45 | - for($i=0; $i < $total; $i++) |
|
| 45 | + for ($i = 0; $i < $total; $i++) |
|
| 46 | 46 | { |
| 47 | 47 | $subject = $this->process($placeholders[$i], $subject); |
| 48 | 48 | } |
@@ -66,7 +66,7 @@ discard block |
||
| 66 | 66 | $phLength = mb_strlen($placeholder); |
| 67 | 67 | $offset = 0; |
| 68 | 68 | |
| 69 | - foreach($positions as $position) |
|
| 69 | + foreach ($positions as $position) |
|
| 70 | 70 | { |
| 71 | 71 | // adjust the position if previous changes made the subject longer |
| 72 | 72 | $position += $offset; |
@@ -78,7 +78,7 @@ discard block |
||
| 78 | 78 | $position |
| 79 | 79 | ); |
| 80 | 80 | |
| 81 | - if(!$info->requiresAdjustment()) |
|
| 81 | + if (!$info->requiresAdjustment()) |
|
| 82 | 82 | { |
| 83 | 83 | continue; |
| 84 | 84 | } |
@@ -106,12 +106,12 @@ discard block |
||
| 106 | 106 | $prepend = ''; |
| 107 | 107 | $append = ''; |
| 108 | 108 | |
| 109 | - if($info->requiresPrepend()) |
|
| 109 | + if ($info->requiresPrepend()) |
|
| 110 | 110 | { |
| 111 | 111 | $prepend = $this->eol; |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | - if($info->requiresAppend()) |
|
| 114 | + if ($info->requiresAppend()) |
|
| 115 | 115 | { |
| 116 | 116 | $append = $this->eol; |
| 117 | 117 | } |
@@ -132,9 +132,9 @@ discard block |
||
| 132 | 132 | |
| 133 | 133 | $result = array(); |
| 134 | 134 | |
| 135 | - foreach($placeholders as $placeholder) |
|
| 135 | + foreach ($placeholders as $placeholder) |
|
| 136 | 136 | { |
| 137 | - if(!$placeholder->getCommand()->generatesContent()) |
|
| 137 | + if (!$placeholder->getCommand()->generatesContent()) |
|
| 138 | 138 | { |
| 139 | 139 | $result[] = $placeholder; |
| 140 | 140 | } |
@@ -24,9 +24,9 @@ |
||
| 24 | 24 | { |
| 25 | 25 | const ERROR_UNKNOWN_DATE_FORMAT_CHARACTER = 55501; |
| 26 | 26 | |
| 27 | - /** |
|
| 28 | - * @var string[]string |
|
| 29 | - */ |
|
| 27 | + /** |
|
| 28 | + * @var string[]string |
|
| 29 | + */ |
|
| 30 | 30 | private $charTable = array( |
| 31 | 31 | 'd' => 'd', |
| 32 | 32 | 'm' => 'M', |
@@ -56,9 +56,9 @@ |
||
| 56 | 56 | $chars = ConvertHelper::string2array($formatString); |
| 57 | 57 | $result = array(); |
| 58 | 58 | |
| 59 | - foreach($chars as $char) |
|
| 59 | + foreach ($chars as $char) |
|
| 60 | 60 | { |
| 61 | - if(!isset($this->charTable[$char])) |
|
| 61 | + if (!isset($this->charTable[$char])) |
|
| 62 | 62 | { |
| 63 | 63 | throw new Mailcode_Translator_Exception( |
| 64 | 64 | 'Unknown date format string character', |
@@ -23,19 +23,19 @@ discard block |
||
| 23 | 23 | { |
| 24 | 24 | const ERROR_UNHANDLED_CHARTYPE = 55601; |
| 25 | 25 | |
| 26 | - /** |
|
| 27 | - * @var string |
|
| 28 | - */ |
|
| 26 | + /** |
|
| 27 | + * @var string |
|
| 28 | + */ |
|
| 29 | 29 | private $type; |
| 30 | 30 | |
| 31 | - /** |
|
| 32 | - * @var string |
|
| 33 | - */ |
|
| 31 | + /** |
|
| 32 | + * @var string |
|
| 33 | + */ |
|
| 34 | 34 | private $char; |
| 35 | 35 | |
| 36 | - /** |
|
| 37 | - * @var string |
|
| 38 | - */ |
|
| 36 | + /** |
|
| 37 | + * @var string |
|
| 38 | + */ |
|
| 39 | 39 | private $description; |
| 40 | 40 | |
| 41 | 41 | public function __construct(string $type, string $char, string $description) |
@@ -45,46 +45,46 @@ discard block |
||
| 45 | 45 | $this->description = $description; |
| 46 | 46 | } |
| 47 | 47 | |
| 48 | - /** |
|
| 49 | - * Retrieves the format character (PHP date format). |
|
| 50 | - * |
|
| 51 | - * @return string |
|
| 52 | - */ |
|
| 48 | + /** |
|
| 49 | + * Retrieves the format character (PHP date format). |
|
| 50 | + * |
|
| 51 | + * @return string |
|
| 52 | + */ |
|
| 53 | 53 | public function getChar() : string |
| 54 | 54 | { |
| 55 | 55 | return $this->char; |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | - /** |
|
| 59 | - * Retrieves a human readable description of the character's role. |
|
| 60 | - * |
|
| 61 | - * @return string |
|
| 62 | - */ |
|
| 58 | + /** |
|
| 59 | + * Retrieves a human readable description of the character's role. |
|
| 60 | + * |
|
| 61 | + * @return string |
|
| 62 | + */ |
|
| 63 | 63 | public function getDescription() : string |
| 64 | 64 | { |
| 65 | 65 | return $this->description; |
| 66 | 66 | } |
| 67 | 67 | |
| 68 | - /** |
|
| 69 | - * Retrieves the character type ID. |
|
| 70 | - * |
|
| 71 | - * @return string |
|
| 72 | - * |
|
| 73 | - * @see Mailcode_Date_FormatInfo::CHARTYPE_DATE |
|
| 74 | - * @see Mailcode_Date_FormatInfo::CHARTYPE_TIME |
|
| 75 | - * @see Mailcode_Date_FormatInfo::CHARTYPE_PUNCTUATION |
|
| 76 | - */ |
|
| 68 | + /** |
|
| 69 | + * Retrieves the character type ID. |
|
| 70 | + * |
|
| 71 | + * @return string |
|
| 72 | + * |
|
| 73 | + * @see Mailcode_Date_FormatInfo::CHARTYPE_DATE |
|
| 74 | + * @see Mailcode_Date_FormatInfo::CHARTYPE_TIME |
|
| 75 | + * @see Mailcode_Date_FormatInfo::CHARTYPE_PUNCTUATION |
|
| 76 | + */ |
|
| 77 | 77 | public function getTypeID() : string |
| 78 | 78 | { |
| 79 | 79 | return $this->type; |
| 80 | 80 | } |
| 81 | 81 | |
| 82 | - /** |
|
| 83 | - * Retrieves a human readable label for the character's type, e.g. "Date", "Time", "Punctuation". |
|
| 84 | - * |
|
| 85 | - * @throws Mailcode_Exception If the character type is unknown. |
|
| 86 | - * @return string |
|
| 87 | - */ |
|
| 82 | + /** |
|
| 83 | + * Retrieves a human readable label for the character's type, e.g. "Date", "Time", "Punctuation". |
|
| 84 | + * |
|
| 85 | + * @throws Mailcode_Exception If the character type is unknown. |
|
| 86 | + * @return string |
|
| 87 | + */ |
|
| 88 | 88 | public function getTypeLabel() : string |
| 89 | 89 | { |
| 90 | 90 | switch($this->type) |
@@ -87,7 +87,7 @@ |
||
| 87 | 87 | */ |
| 88 | 88 | public function getTypeLabel() : string |
| 89 | 89 | { |
| 90 | - switch($this->type) |
|
| 90 | + switch ($this->type) |
|
| 91 | 91 | { |
| 92 | 92 | case Mailcode_Date_FormatInfo::CHARTYPE_DATE: |
| 93 | 93 | return t('Date'); |
@@ -31,24 +31,24 @@ discard block |
||
| 31 | 31 | const CHARTYPE_TIME = 'time'; |
| 32 | 32 | const CHARTYPE_PUNCTUATION = 'punctuation'; |
| 33 | 33 | |
| 34 | - /** |
|
| 35 | - * @var string |
|
| 36 | - */ |
|
| 34 | + /** |
|
| 35 | + * @var string |
|
| 36 | + */ |
|
| 37 | 37 | private $defaultFormat = "Y/m/d"; |
| 38 | 38 | |
| 39 | - /** |
|
| 40 | - * @var Mailcode_Date_FormatInfo_Character[] |
|
| 41 | - */ |
|
| 39 | + /** |
|
| 40 | + * @var Mailcode_Date_FormatInfo_Character[] |
|
| 41 | + */ |
|
| 42 | 42 | private $formatChars = array(); |
| 43 | 43 | |
| 44 | - /** |
|
| 45 | - * @var string[] |
|
| 46 | - */ |
|
| 44 | + /** |
|
| 45 | + * @var string[] |
|
| 46 | + */ |
|
| 47 | 47 | private $allowedChars = array(); |
| 48 | 48 | |
| 49 | - /** |
|
| 50 | - * @var Mailcode_Date_FormatInfo|NULL |
|
| 51 | - */ |
|
| 49 | + /** |
|
| 50 | + * @var Mailcode_Date_FormatInfo|NULL |
|
| 51 | + */ |
|
| 52 | 52 | private static $instance; |
| 53 | 53 | |
| 54 | 54 | private function __construct() |
@@ -66,11 +66,11 @@ discard block |
||
| 66 | 66 | return self::$instance; |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | - /** |
|
| 70 | - * Initialized the list of allowed date formatting |
|
| 71 | - * characters. This is done only once per request |
|
| 72 | - * by storing them statically for performance reasons. |
|
| 73 | - */ |
|
| 69 | + /** |
|
| 70 | + * Initialized the list of allowed date formatting |
|
| 71 | + * characters. This is done only once per request |
|
| 72 | + * by storing them statically for performance reasons. |
|
| 73 | + */ |
|
| 74 | 74 | private function initCharacters() : void |
| 75 | 75 | { |
| 76 | 76 | $chars = array( |
@@ -113,16 +113,16 @@ discard block |
||
| 113 | 113 | $this->defaultFormat = $formatString; |
| 114 | 114 | } |
| 115 | 115 | |
| 116 | - /** |
|
| 117 | - * Validates the date format string, by ensuring that |
|
| 118 | - * all the characters it is composed of are known. |
|
| 119 | - * |
|
| 120 | - * @param string $formatString |
|
| 121 | - * @return OperationResult |
|
| 122 | - * |
|
| 123 | - * @see Mailcode_Commands_Command_ShowDate::VALIDATION_EMPTY_FORMAT_STRING |
|
| 124 | - * @see Mailcode_Commands_Command_ShowDate::VALIDATION_INVALID_FORMAT_CHARACTER |
|
| 125 | - */ |
|
| 116 | + /** |
|
| 117 | + * Validates the date format string, by ensuring that |
|
| 118 | + * all the characters it is composed of are known. |
|
| 119 | + * |
|
| 120 | + * @param string $formatString |
|
| 121 | + * @return OperationResult |
|
| 122 | + * |
|
| 123 | + * @see Mailcode_Commands_Command_ShowDate::VALIDATION_EMPTY_FORMAT_STRING |
|
| 124 | + * @see Mailcode_Commands_Command_ShowDate::VALIDATION_INVALID_FORMAT_CHARACTER |
|
| 125 | + */ |
|
| 126 | 126 | public function validateFormat(string $formatString) : OperationResult |
| 127 | 127 | { |
| 128 | 128 | $result = new OperationResult($this); |
@@ -161,23 +161,23 @@ discard block |
||
| 161 | 161 | return $result; |
| 162 | 162 | } |
| 163 | 163 | |
| 164 | - /** |
|
| 165 | - * Retrieves all characters that are allowed to |
|
| 166 | - * be used in a date format string, with information |
|
| 167 | - * on each. |
|
| 168 | - * |
|
| 169 | - * @return Mailcode_Date_FormatInfo_Character[] |
|
| 170 | - */ |
|
| 164 | + /** |
|
| 165 | + * Retrieves all characters that are allowed to |
|
| 166 | + * be used in a date format string, with information |
|
| 167 | + * on each. |
|
| 168 | + * |
|
| 169 | + * @return Mailcode_Date_FormatInfo_Character[] |
|
| 170 | + */ |
|
| 171 | 171 | public function getCharactersList() : array |
| 172 | 172 | { |
| 173 | 173 | return $this->formatChars; |
| 174 | 174 | } |
| 175 | 175 | |
| 176 | - /** |
|
| 177 | - * Retrieves the characters list, grouped by type label. |
|
| 178 | - * |
|
| 179 | - * @return array<string, array> |
|
| 180 | - */ |
|
| 176 | + /** |
|
| 177 | + * Retrieves the characters list, grouped by type label. |
|
| 178 | + * |
|
| 179 | + * @return array<string, array> |
|
| 180 | + */ |
|
| 181 | 181 | public function getCharactersGrouped() : array |
| 182 | 182 | { |
| 183 | 183 | $grouped = array(); |
@@ -58,7 +58,7 @@ discard block |
||
| 58 | 58 | |
| 59 | 59 | public static function getInstance() : Mailcode_Date_FormatInfo |
| 60 | 60 | { |
| 61 | - if(!isset(self::$instance)) |
|
| 61 | + if (!isset(self::$instance)) |
|
| 62 | 62 | { |
| 63 | 63 | self::$instance = new Mailcode_Date_FormatInfo(); |
| 64 | 64 | } |
@@ -90,7 +90,7 @@ discard block |
||
| 90 | 90 | array(self::CHARTYPE_PUNCTUATION, ' ', t('Space')) |
| 91 | 91 | ); |
| 92 | 92 | |
| 93 | - foreach($chars as $def) |
|
| 93 | + foreach ($chars as $def) |
|
| 94 | 94 | { |
| 95 | 95 | $char = new Mailcode_Date_FormatInfo_Character( |
| 96 | 96 | $def[0], |
@@ -129,7 +129,7 @@ discard block |
||
| 129 | 129 | |
| 130 | 130 | $trimmed = trim($formatString); |
| 131 | 131 | |
| 132 | - if(empty($trimmed)) |
|
| 132 | + if (empty($trimmed)) |
|
| 133 | 133 | { |
| 134 | 134 | $result->makeError( |
| 135 | 135 | t('Empty date format.'), |
@@ -142,15 +142,15 @@ discard block |
||
| 142 | 142 | $chars = ConvertHelper::string2array($formatString); |
| 143 | 143 | $total = count($chars); |
| 144 | 144 | |
| 145 | - for($i=0; $i < $total; $i++) |
|
| 145 | + for ($i = 0; $i < $total; $i++) |
|
| 146 | 146 | { |
| 147 | 147 | $char = $chars[$i]; |
| 148 | 148 | |
| 149 | - if(!in_array($char, $this->allowedChars)) |
|
| 149 | + if (!in_array($char, $this->allowedChars)) |
|
| 150 | 150 | { |
| 151 | 151 | $result->makeError( |
| 152 | 152 | t('Invalid character in date format:').' '. |
| 153 | - t('%1$s at position %2$s.', '<code>'.$char.'</code>', $i+1), |
|
| 153 | + t('%1$s at position %2$s.', '<code>'.$char.'</code>', $i + 1), |
|
| 154 | 154 | self::VALIDATION_INVALID_FORMAT_CHARACTER |
| 155 | 155 | ); |
| 156 | 156 | |
@@ -182,11 +182,11 @@ discard block |
||
| 182 | 182 | { |
| 183 | 183 | $grouped = array(); |
| 184 | 184 | |
| 185 | - foreach($this->formatChars as $char) |
|
| 185 | + foreach ($this->formatChars as $char) |
|
| 186 | 186 | { |
| 187 | 187 | $type = $char->getTypeLabel(); |
| 188 | 188 | |
| 189 | - if(!isset($grouped[$type])) |
|
| 189 | + if (!isset($grouped[$type])) |
|
| 190 | 190 | { |
| 191 | 191 | $grouped[$type] = array(); |
| 192 | 192 | } |
@@ -196,7 +196,7 @@ discard block |
||
| 196 | 196 | |
| 197 | 197 | $groups = array_keys($grouped); |
| 198 | 198 | |
| 199 | - foreach($groups as $group) |
|
| 199 | + foreach ($groups as $group) |
|
| 200 | 200 | { |
| 201 | 201 | usort($grouped[$group], function(Mailcode_Date_FormatInfo_Character $a, Mailcode_Date_FormatInfo_Character $b) |
| 202 | 202 | { |