nextcloud/lib/public
Bernhard Posselt f195123765 Intelligent container
* resolves dependencies by type hint or variable name
* simpler route.php
* implementation of https://github.com/owncloud/core/issues/12829

Generates and injects parameters automatically. You can now build full classes like

    $c->query('MyClassName')

without having to register it as a service. The resolved object's instance will be saved by using registerService. If a constructor parameter is not type hinted, the parameter name will be taken.

Therefore the following two implementations are identical:

    class Class1 { function __construct(MyClassName $class)
    class Class1 { function __construct($MyClassName)

This makes it possible to also inject primitive values such as strings, arrays etc.

In addition if the query could not be resolved, a `QueryException` is now thrown

Routes can now be returned as an array from `routes.php` and an `appinfo/application.php` is optional

Old commit messages:

make it possible to return the routes instead of having to intialize the application
try to get the controller by convention
add first implementation of automatic resolve
add another test just to be sure
store the resolved object
more tests
add phpdoc to public app.php method
use the same variable for the public app.php method
deprecate old methods and add services for public interfaces
deprecated getServer method
disallow private api injection for apps other than core or settings (settings should be an app goddamnit :D)
register userid because its such an often used variable
fix indention and leading slash
use test namespace
add deprecation reasons, remove private api usage checks and remove deprecation from getServer()
add additional public interfaces
add public interface for rootfolder
fix syntax error
remove deprecation from methods where no alternative is there yet
remove deprecated from method which has no alternative
add timezone public service for #12881
add another deprecation hint
move deprecation into separate branch
remove dead comment
first try to get the namespace from the info.xml, if it does not exist, just uppercase the first letter
also trim the namespace name
add an interface for timefactory
move timefactory to public and add icontrollermethodreflector
keep core interface
fix copyright date in headers
2014-12-23 09:50:42 +01:00
..
activity Allow extensions to specify the list of special parameters 2014-12-11 14:56:46 +01:00
app Add \OC\App\Manager to handle enabling/disabling apps 2014-11-10 13:52:52 +01:00
appframework Intelligent container 2014-12-23 09:50:42 +01:00
authentication page level doc blocks and class descriptions 2013-11-25 16:39:01 +01:00
backgroundjob Fix all PHPDoc types and variable names, in /lib 2014-05-13 19:08:14 +01:00
contacts Merge branch 'master' into contactsmanager-register 2014-05-19 21:35:13 +02:00
diagnostics Allow adding events that hapend before the event logger was loaded 2014-10-20 13:38:38 +02:00
files add an interface for the root folder so apps have an interface to deal with storage 2014-12-21 20:52:34 +01:00
route introduce and use getCurrentConnection() 2014-07-01 16:45:00 +02:00
search introduce inApps[] filter for search via ajax query, make file results show up in files app only 2014-12-10 15:51:59 +01:00
security Add OCP\Security\IHasher 2014-11-06 15:16:14 +01:00
api.php unify license headers for public API files 2013-11-03 13:51:39 +01:00
app.php Fix all PHPDoc types and variable names, in /lib 2014-05-13 19:08:14 +01:00
backgroundjob.php Fix all PHPDoc types and variable names, in /lib 2014-05-13 19:08:14 +01:00
config.php reduce OC_Preferences, OC_Config and \OCP\Config usage 2014-12-08 22:42:37 +01:00
constants.php Move namespaced constants to namespaced class 2014-11-25 16:27:27 +01:00
contacts.php no return on register and unregister 2014-05-19 21:39:19 +02:00
db.php Add missing DB rollback functionality 2014-10-24 17:44:06 +01:00
defaults.php add missing public interface for iOS client app id 2014-12-02 16:10:07 +01:00
files.php Scrutinizer Auto-Fixes 2014-02-19 09:31:54 +01:00
groupinterface.php unify license headers for public API files 2013-11-03 13:51:39 +01:00
iaddressbook.php Fix @return array PHPDocs, in /lib 2014-05-13 19:08:14 +01:00
iappconfig.php introduce proper interface for deleteAppValue 2014-12-08 22:29:42 +01:00
iavatar.php Replace deprecated constant with new class constant 2014-11-25 16:30:21 +01:00
iavatarmanager.php Remove all occurences of @brief and @returns from PHPDoc 2014-05-19 17:50:53 +02:00
icache.php unify license headers for public API files 2013-11-03 13:51:39 +01:00
icachefactory.php Fix some phpdoc errors and rename interface 2014-01-24 16:01:19 +01:00
icertificate.php Remove unused and overflowing function 2014-09-18 10:21:28 +02:00
icertificatemanager.php Move certificate management interface from files_external to core 2014-08-31 10:47:50 +02:00
iconfig.php Add type of the variables to the docs 2014-12-10 15:18:06 +01:00
icontainer.php AppFramework(Controller|HTTP|HTTP-Responses|Middleware), IContainer API fixes 2013-11-25 16:28:24 +01:00
idatetimeformatter.php Require the interface and return a string instead of private classes 2014-12-10 11:58:56 +01:00
idatetimezone.php Move timezone logic out of server.php 2014-12-16 16:16:22 +01:00
idb.php move db into iservercontainer 2014-04-19 19:30:12 +02:00
idbconnection.php Split mapping from Access and Helper classes into it's own. Fully test them, too. 2014-12-19 18:26:12 +01:00
ieventsource.php Better phpdoc and method naming 2014-09-04 13:26:51 +02:00
igroup.php Add group management to the public api 2014-07-16 14:25:31 +02:00
igroupmanager.php add isAdmin and isInGroup methods for the group manager 2014-12-17 17:41:57 +01:00
ihelper.php unify license headers for public API files 2013-11-03 13:51:39 +01:00
il10n.php Remove all occurences of @brief and @returns from PHPDoc 2014-05-19 17:50:53 +02:00
ilogger.php - make logger available in the container 2014-05-09 23:26:20 +02:00
image.php unify license headers for public API files 2013-11-03 13:51:39 +01:00
inavigationmanager.php polish documentation based on scrutinizer patches 2014-02-06 17:02:21 +01:00
ipreview.php Use svg mimeicons for empty text files 2014-07-30 16:31:37 +02:00
irequest.php polish documentation based on scrutinizer patches 2014-02-06 17:02:21 +01:00
isearch.php introduce inApps[] filter for search via ajax query, make file results show up in files app only 2014-12-10 15:51:59 +01:00
iservercontainer.php Add IniGetWrapper to public interface 2014-12-11 00:09:55 +01:00
isession.php adding an explicit close method to class session - write operations (set and remove) being called after close() will throw an exception 2014-03-10 14:21:12 +01:00
itagmanager.php Add user parameter to tag manager 2014-12-11 12:22:28 +01:00
itags.php Add getTagsForObjects in ITags 2014-12-08 22:02:00 +01:00
itempmanager.php Add \OC\TempManager to handle creating and cleaning temporary files 2014-10-24 12:18:46 +02:00
iurlgenerator.php Introduce app info xml parser including basic unit test - necessary for #10777 2014-11-25 11:53:28 +01:00
iuser.php Expose backend type via REST API 2014-12-09 12:04:19 +01:00
iuserbackend.php introduce names for user backends - IUserBackend 2014-12-19 10:17:17 +01:00
iusermanager.php Use public interface 2014-12-11 12:29:58 +01:00
iusersession.php Fix typo 2014-12-19 14:36:00 +01:00
json.php polish documentation based on scrutinizer patches 2014-02-06 17:02:21 +01:00
preconditionnotmetexception.php introduce preCondition for setUserValue to provide atomic check-and-update 2014-12-08 22:33:36 +01:00
response.php Moved content disposition code+workarounds to OCP\Response 2013-12-10 12:42:26 +01:00
share.php OCS API for server-to-server sharing 2014-12-04 13:18:13 +01:00
share_backend.php Next step in server-to-server sharing next generation, see #12285 2014-12-19 15:20:24 +01:00
share_backend_collection.php Move share interfaces to own files so they can be autoloaded 2014-11-27 17:47:19 +01:00
share_backend_file_dependent.php Move share interfaces to own files so they can be autoloaded 2014-11-27 17:47:19 +01:00
template.php Deprecate Util::formatDate() 2014-12-10 11:58:56 +01:00
user.php Deprecate older API wrappers and calls 2014-11-12 17:39:25 +01:00
userinterface.php unify license headers for public API files 2013-11-03 13:51:39 +01:00
util.php Deprecate Util::formatDate() 2014-12-10 11:58:56 +01:00