rfc:changes_to_include_and_require

## Introduction

Change include, include_once, require and require_once to take a second optional string argument.

require( 'path/to/file.php', ['namespace\to\attach\file'] );

Currently files are always imported to the root namespace. The suggested change is to allow a namespace to be passed as the second argument to include. If a namespace is specified then the file is imported to that namespace. If the file has a namespace definition that namespace becomes a sub-namespace when imported. If no namespace is specified the backward compatible behavior of attaching the file to the root namespace occurs.

The lesser use of this change is to allow php template files to not have to start with a namespace declaration. Since these files are meant to be used by designers the namespace declaration, which is business logic, feels out of place.

The larger implication of the change is that dynamic namespace resolution becomes possible. This is a powerful but potentially huge can of worms for the PHP programs that try to take advantage of this trick. Basically, instead of the namespace being hard coded into class definitions, a framework's autoloader can decide for itself which namespace to class requests into. Consider the following: