Hi there,
today we merged a PR that also allows apps to use PSR-4 compatible
autoloading standard.
If you don't know what PSR-4 is, it means that files and folders have
the exact same name
and casing, the class or namespace has.
Let me give you an example:
* ownCloud <9.1: OCA\MyApp\Namespace\ClassName used to lie in
apps/myapp/namespace/classname.php or apps/myapp/lib/namespace/classname.php
* PSR-4: OCA\MyApp\Namespace\ClassName lies in
apps/myapp/lib/Namespace/ClassName.php
By default ownCloud just uppercases the first character of your app ID
to guess the namespace.
If that is not your namespace (e.g. because you use MyApp instead of
Myapp), you can specify that in your info.xml:
https://github.com/owncloud/announcementcenter/blob/3a75e64e2664753eee3d0500ed4da541ef995004/appinfo/info.xml#L9
You should only put namespaced classes into the lib/ folder. Any
non-class code should remain outside
of that directory. E.g. app.php, update.php, install.php, route.php from
the appinfo/ folder can stay there
https://github.com/owncloud/announcementcenter/tree/3a75e64e2664753eee3d0500ed4da541ef995004/appinfo
while all classes are moved to lib/ using camelcases
https://github.com/owncloud/announcementcenter/tree/3a75e64e2664753eee3d0500ed4da541ef995004/lib
The biggest advantage of the PSR-4 change are:
* we can stop maintaining our own code for loading files
* we can use speed improvements from composers autoloading by compiling
a list of classes on release
* we follow a standard and make it easier for people to get in
cheers nickvergessen
Am 02.05.2016 um 07:57 schrieb Roeland Douma:
Howdy!
We are slowly moving the classes in core to the PSR-4 [1] naming standard.
This allows for easier lookup and using the well known composer autoloader.
At the moment we do not yet support PSR-4 in our apps. But we are thinking about
how to do this. Of course we will still support the current autoloader as well.
There should not be any breakage for app developers. As long as you spell the
namespaces
and classes correct :)
Cheers,
--Roeland
[1] http://www.php-fig.org/psr/psr-4/
_______________________________________________
Devel mailing list
Devel@owncloud.org
http://mailman.owncloud.org/mailman/listinfo/devel
_______________________________________________
Devel mailing list
Devel@owncloud.org
http://mailman.owncloud.org/mailman/listinfo/devel