public static function attach($name, $config = null, array $vars = []) {
		if ($name === false) {
			return null;
		}

		if (!isset(static::$_scopes)) {
			static::_initScopes();
		}

		if ($config === null) {
			if ($vars && ($config = static::$_scopes->get($name))) {
				$config['values'] = $vars;
				static::$_scopes->set($name, $config);
			}
			return;
		}

		if (is_array($config) || $config === false) {
			static::$_scopes->set($name, $config);
		}
	}
public static function attach($name, $config = null, array $vars = []) {
		if ($name === false) {
			return null;
		}

		if (!isset(static::$_scopes)) {
			static::_initScopes();
		}

		if ($config === null) {
			if ($vars && ($config = static::$_scopes->get($name))) {
				$config['values'] = $vars;
				static::$_scopes->set($name, $config);
			}
			return;
		}

		if (is_array($config) || $config === false) {
			static::$_scopes->set($name, $config);
		}
	}
public static function attach ( $ name , $ config = null , array $ vars = [ ] ) { if ( $ name === false ) { return null ; } if ( ! isset ( static :: $ _scopes ) ) { static :: _initScopes ( ) ; } if ( $ config === null ) { if ( $ vars && ( $ config = static :: $ _scopes -> get ( $ name ) ) ) { $ config [ 'values' ] = $ vars ; static :: $ _scopes -> set ( $ name , $ config ) ; } return ; } if ( is_array ( $ config ) || $ config === false ) { static :: $ _scopes -> set ( $ name , $ config ) ; } }
Defines a scope and attaches it to a mount point.

Example 1:
```
Router::attach('app', [
'absolute' => true,
'host' => 'localhost',
'scheme' => 'http://',
'prefix' => 'web/tests'
]);
```

Example 2:
```
Router::attach('app', [
'absolute' => true,
'host' => '{:subdomain:[a-z]+}.{:hostname}.{:tld}',
'scheme' => '{:scheme:https://}',
'prefix' => ''
]);
```

Attach the variables to populate for the app scope.
```
Router::attach('app', null, [
'subdomain' => 'www',
'hostname' => 'li3',
'tld' => 'me'
]);
```

By default all routes attached to an `'app'` scope are attached to a library of the
same name (i.e. the `'app'` library in this case). So you don't need to deal with an
extra library in your routes definition when you are using scopes.

Moreover you can override the attached library name with:
```
Router::attach('app', [
'library' => 'custom_library_name'
]);
```

@see lithium\net\http\Router::scope()
@see lithium\net\http\Router::attached()
@param string Name of the scope.
@param mixed Settings of the mount point or `null` for setting only variables to populate.
@param array Variables to populate for the scope.
Defines a scope and attaches it to a mount point .