[Documentation] Move all wiki pages into the repo and make it pretty (#2494)

This commit is contained in:
Bocki 2022-03-22 21:33:29 +01:00 committed by GitHub
parent 16470e8119
commit 76f5de3d0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
53 changed files with 4215 additions and 0 deletions

View file

@ -0,0 +1,24 @@
Create a new file in the `caches/` folder (see [Folder structure](../04_For_Developers/03_Folder_structure.md)).
The file must be named according to following specification:
* It starts with the type
* The file name must end with 'Cache'
* The file type must be PHP, written in small letters (seriously!) ".php"
**Examples:**
Type | Filename
-----|---------
File | FileCache.php
MySQL | MySQLCache.php
The file must start with the PHP tags and end with an empty line. The closing tag `?>` is [omitted](http://php.net/basic-syntax.instruction-separation).
Example:
```PHP
<?PHP
// PHP code here
// This line is empty (just imagine it!)
```

View file

@ -0,0 +1,73 @@
The `CacheInterface` interface defines functions that need to be implemented. To create a new cache that implements `CacheInterface` you must implement following functions:
* [loadData](#the-loaddata-function)
* [saveData](#the-savedata-function)
* [getTime](#the-gettime-function)
* [purgeCache](#the-purgecache-function)
Find a [template](#template) at the end of this file.
# Functions
## The `loadData` function
This function loads data from the cache and returns the data in the same format provided to the [saveData](#the-savedata-function) function.
```PHP
loadData(): mixed
```
## The `saveData` function
This function stores the given data into the cache and returns the object instance.
```PHP
saveData(mixed $data): self
```
## The `getTime` function
This function returns the last write time for the cache, or `false` if the cache does not yet exist. Please notice that 'cache' refers to one specific item in the cache repository and might require additional data to identify a specific item (introduce custom functions where necessary!).
```PHP
getTime(): int, false
```
## The `purgeCache` function
This function removes any data from the cache that is not within the given duration. The duration is specified in seconds and defines the period between now and the oldest item to keep.
```PHP
purgeCache(int $duration): null
```
# Template
This is the bare minimum template for a new cache:
```PHP
<?php
class MyTypeCache implements CacheInterface {
public function loadData(){
// Implement your algorithm here!
return null;
}
public function saveData($data){
// Implement your algorithm here!
return $this;
}
public function getTime(){
// Implement your algorithm here!
return false;
}
public function purgeCache($duration){
// Implement your algorithm here!
}
}
// Imaginary empty line!
```

View file

@ -0,0 +1,4 @@
A _Cache_ is a class that allows **RSS-Bridge** to store fetched data in a local storage area on the server. Cache imlementations are placed in the `caches/` folder (see [Folder structure](../04_For_Developers/03_Folder_structure.md)). A cache must implement the [`CacheInterface`](../07_Cache_API/02_CacheInterface.md) interface.
For more information about how to create a new `Cache`, read [How to create a new cache?](../07_Cache_API/01_How_to_create_a_new_cache.md)