[owncloud-devel] PSR-4 and Apps

Vincent Petry pvince81 at owncloud.com
Tue May 3 08:29:08 GMT 2016


Does it also affect test classes in some way ? (the ones stored under
MyApp/test)

Cheers,

Vincent

On 03.05.2016 10:23, Joas Schilling wrote:
> 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 at owncloud.org
>> http://mailman.owncloud.org/mailman/listinfo/devel
>
>
>
>
> _______________________________________________
> Devel mailing list
> Devel at owncloud.org
> http://mailman.owncloud.org/mailman/listinfo/devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.owncloud.org/pipermail/devel/attachments/20160503/7444d298/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.owncloud.org/pipermail/devel/attachments/20160503/7444d298/attachment-0001.sig>


More information about the Devel mailing list