So I read Dependency injection ā Nextcloud latest Developer Manual latest documentation and it lists AppName
as one of the predefined core services. But it also states in a note box that:
$AppName is resolved because the container registered a parameter under the key āAppNameā which will return the app id. The lookup is case sensitive so while $AppName will work correctly, using $appName as a constructor parameter will fail.
Now, if one pokes around in the Nextcloud appsā source code, there is uncountable numbers of occurrences of string $appName
in various constructors, as opposed to string $AppName
as the documentation seems to suggest one should be using (and also saying is the only thing that works).
So, why does string $appName
seemingly work just fine, despite the documentation saying this should not be the case? And also, why is string $appName
used instead of the apparently correct string $AppName
? Is it for some reason recommended to use string $appName
instead of string $AppName
?
On a related note, I might as well ask; Is there any reason to use one of the above methods to get the app ID into e.g. a controller, instead of just importing the appās Application
class and referencing Application::APP_ID
? I donāt really see the point of adding cruft to the constructors and a property to the class, instead of just having one single import and then getting access to the app ID right away.