You don't use file[] = ...
anymore. Instead, classes are autoloaded. For example, I have a module with the following file structure:
- views_hybrid/
- views_hybrid.info.yml
- views_hybrid.module
- src/
- Plugin/
- Field/
- FieldFormatter/
- HybridFormatter.php
- FieldFormatter/
- Field/
- Plugin/
HybridFormatter.php
defines a class called HybridFormatter.
In my .module file, if I start typing in my IDE (NetBeans in this case) HybridFormatter
it autocompletes to \Drupal\views_hybrid\Plugin\Field\FieldFormatter\HybridFormatter::
because it is autoloaded. Since I don't want that whole path littering my module, at the top I have placed the line,
use Drupal\views_hybrid\Plugin\Field\FieldFormatter\HybridFormatter;
along with use
directives for other classes I am including for use with my module.
The namespace is defined in HybridFormatter.php like so:
namespace Drupal\views_hybrid\Plugin\Field\FieldFormatter;
class HybridFormatter extends FormatterBase { ... }