X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FREADME.md;h=a723f6a290756ddcf9ad1b40fae71a050e13cfb9;hb=d27576059670faf87f80eaae2b4560f85b5310fc;hp=f888f263266dbdd65f8f527f835fe50b112c3c2b;hpb=ef0545645a3054a6433340e7ac170c1933e670cc;p=friendica.git diff --git a/src/Module/README.md b/src/Module/README.md index f888f26326..a723f6a290 100644 --- a/src/Module/README.md +++ b/src/Module/README.md @@ -3,8 +3,29 @@ The Module namespace contains the different modules of Friendica. Each module is loaded through the [`App`](https://github.com/friendica/friendica/blob/develop/src/App.php). -Rules for Modules: -- Named like the call (i.e. https://friendica.test/contact => `Contact`) -- Start with capitals and are **not** camelCased. -- Directly interacting with a given request (POST or GET) -- Extending [`BaseModule`](https://github.com/friendica/friendica/blob/develop/src/BaseModule.php). \ No newline at end of file +There are mainly two types of modules: +- frontend modules to interact with users +- backend modules to interact with machine requests + +### Frontend modules + +This type of modules mainly needs a template, which are generally located at +[view/templates/](https://github.com/friendica/friendica/tree/develop/view/templates). + +A frontend module should extend the [`BaseModule`](https://github.com/friendica/friendica/blob/develop/src/BaseModule.php), especially the `content()` method. + +### Backend modules + +This type of modules mainly responds either with encoded `XML` or with `JSON` output. +It isn't intended to respond with human readable text. + +A frontend module should extend the [`BaseModule`](https://github.com/friendica/friendica/blob/develop/src/BaseModule.php), especially the `rawContent()` method. + +### Routing + +Every module needs to be accessed within a route. +The routes are defined inside [`Router->collectRoutes()`](https://github.com/friendica/friendica/blob/develop/src/App/Router.php). + +Use the given routes as a pattern for further routes. + +The routing library and further documentation can be found [here](https://github.com/nikic/FastRoute). \ No newline at end of file