Extension developers are free to use their own vendor name. Important: It may consist of one segment only. Vendor names must start with an uppercase character and are usually written in UpperCamelCase style. In order to avoid problems with different filesystems, only the characters a-z, A-Z, 0-9 and the dash sign "-" are allowed for package names – don't use special characters:

// good vendor name:\Webcompany// wrong vendor name:\Web\Company

Attention

The vendor name TYPO3\CMS is reserved and may not be used by extensions!

The package name corresponds to the extension key. Underscores in the extension
key are removed in the namespace and replaced by upper camel-case. So extension key:

weird-name_examples

would become:

Weird-nameExamples

in the namespace.

As mentioned above, all classes must be located in the Classes folder inside
your extension. All sub-folders translate to a segment of the category name and the class
name is the file name without the .php extension.

As for ordinary classes, namespaces for test classes start with a vendor name
followed by the extension key.

All test classes reside in a Tests folder and thus the third segment
of the namespace must be "Tests". Unit tests are located in a Unit folder
which is the fourth segment of the namespace. Any further subfolders will
be subsequent segments.

So a test class in EXT:foo_bar_baz/Tests/Unit/Bla/ will have as namespace
\Vendor\FooBarBaz\Tests\Unit\Bla.

When creating instances using \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance()
the leading backslash must be omitted and all other backslashes escaped, even when using
single quotes. Thus the following code is correct:

Tip:
File typo3/sysext/core/Migrations/Code/ClassAliasMap.php in the 6.2 core
contains a full mapping of old to new class names, which will help you find your
way around the new naming. I looks like this: