Naming services
When a service is deployed, it is deployed using a unique name. It is this name which indicates if the service has already been deployed when dependency injection is performed.
As of version 1.1.0 a service can be any struct so by default it would be assigned a unique name based on it's package path and type name providing a unique name for it's type.
Alternatively the service can have the Name() string
function which will provide the service's name.
For applications using v1.1.0 or later it's advised to not implement Name() and leave the naming to the Kernel. The Name() function will still be supported as it has uses for specialist use-cases.
Before v1.1.0
In kernel's prior to v1.1.0 the Name() function was mandatory and was the only means of providing a unique name to a service.