Re: hubzilla legacy code (files module)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 01/09/2021 19:33, ourdiaspora wrote:
Line 8 refers to another file with the key word 'use', but a user contributor comment to the php manual (https://www.php.net/manual/en/language.namespaces.php) states there are two possible applications?
`use` (in this case) refers not (directly) to a filename or path, but a namespace. In the vast majority of cases, you'll find these are set up using Composer's built-in autoloader, so checking the project composer.json will give you the "root" of the namespace. From there you can basically follow the directory structure.

This behavior is defined in PSR-4: https://www.php-fig.org/psr/psr-4/

You can read more on autoloading in the manual: https://www.php.net/manual/en/language.oop5.autoload.php

It's possible to specify custom autoloading schemas, and Composer supports other autoloading methods ( https://getcomposer.org/doc/04-schema.md#autoload ) but PSR-4 is by far the most common.


The other place you'll see the `use` keyword used is with anonymous functions to inherit variables from the parent scope: https://www.php.net/manual/en/functions.anonymous.php#example-163

The 2 usages are quite distinct and not easy to confuse (the former is almost always at the top of the file, the latter is always in a function declaration)

Line 6 of the next file (https://framagit.org/hubzilla/core/-/blob/master/Zotlabs/Lib/Libsync.php) refers to keyword 'use' some object 'App'; where to find that???

The class `App` has been defined in the `boot.php` file in the root of the project: https://framagit.org/hubzilla/core/-/blob/master/boot.php

(Since the `App` class is in the root (`\`) namespace I found it by starting from the "index.php" in the project root and found the boot.php included by Zotlabs\Web\Webserver)



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux