Browse Source

Cleaning more code and replicating changes into the Email class

Jose Lorenzo Rodriguez 11 years ago
parent
commit
3a1bb52f5d
2 changed files with 14 additions and 12 deletions
  1. 5 5
      src/Core/StaticConfigTrait.php
  2. 9 7
      src/Network/Email/Email.php

+ 5 - 5
src/Core/StaticConfigTrait.php

@@ -84,16 +84,16 @@ trait StaticConfigTrait {
 			throw new BadMethodCallException(sprintf('Cannot reconfigure existing key "%s"', $key));
 		}
 
-		if (is_array($config) && isset($config['url'])) {
+		if (is_object($config)) {
+			$config = ['className' => $config];
+		}
+
+		if (isset($config['url'])) {
 			$parsed = static::parseDsn($config['url']);
 			unset($config['url']);
 			$config = $parsed + $config;
 		}
 
-		if (is_object($config)) {
-			$config = ['className' => $config];
-		}
-
 		if (isset($config['engine']) && empty($config['className'])) {
 			$config['className'] = $config['engine'];
 			unset($config['engine']);

+ 9 - 7
src/Network/Email/Email.php

@@ -1169,15 +1169,17 @@ class Email {
 		if (isset(static::$_transportConfig[$key])) {
 			throw new BadMethodCallException(sprintf('Cannot modify an existing config "%s"', $key));
 		}
-		if (is_array($config)) {
-			$config = static::parseDsn($config);
-		} elseif ($config === null && is_array($key)) {
-			foreach ($key as $name => $settings) {
-				$key[$name] = static::parseDsn($settings);
-			}
-		} elseif (is_object($config)) {
+
+		if (is_object($config)) {
 			$config = ['className' => $config];
 		}
+
+		if (isset($config['url'])) {
+			$parsed = static::parseDsn($config['url']);
+			unset($config['url']);
+			$config = $parsed + $config;
+		}
+
 		static::$_transportConfig[$key] = $config;
 	}