Skip to content

meandor/stirling-microservice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stirling-Microservice

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock Build Status

A PHP microservice named after the super famous inventor of the stirling engine.

It is not very effective, but its moving!

Tools

The main script to do everything is

./bin/go

To see a list of arguments:

./bin/go help

To execute all tests:

./bin/go test

Usage

Add this library as a composer dependency and require the composer autoloader. In your index.php simply put:

Router::init();

Router::run();

This will start the Router. If you want to add routes place this in between the init and run:

Router::add('info', function () {
    phpinfo();
});

This would add the php info page under http://<location>/info

Config

You can define global config parameters by adding a file called default.json into a resources folder on your path root (where your index.php file should be).

To access your config parameters use the Config class.

Example

default.json content (placed in root folder):

{
    "foo": "bar"
}

Calling

use Stirling\Core\Config;

$config = Config::instance();
echo $config->foo

will output "bar"

You can pass another file name as a string into the static instance method of Config if you want to use another config json file.

Status

Under http://<location>/status you can take a look at the app status. It aggregates registered status functions.

!important! By default the complete config will be exposed in the status page. So it is generally advised to password protect the status page in production. To do so just add a maintenanceUser and maintenancePassword with corresponding values in the config json. This will add basic authentication to internal maintenance pages.

To register a new status:

$status = AppStatus::instance();
$status->registerStatus("status 1", "Descriptive message for this status", function () {
    return true;
});