1. Go to this page and download the library: Download irfantoor/engine library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
irfantoor / engine example snippets
# php -S localhost:8000 hello-world.php
'debug' => [
'level' => 2
],
'default' => [
'name' => 'world',
]
]
);
# Name passed as get variable: http://localhost:8000/?name=alfa
# or posted through a form
# Check: http://localhost:8000/?name=alfa&debug=1
# Check: http://localhost:8000/?name=alfa&exception=1
$ie->addHandler(function ($request) use($ie) {
$name = $request->getQueryParams()['name'] ?? $ie->config('default.name');
$response = $ie->create('Response');
$response->getBody()->write('Hello ' . ucfirst($name) . '!');
if ($request->getQueryParams()['exception'] ?? null) {
throw new Exception("An exception at your service!");
}
if ($request->getQueryParams()['debug'] ?? null) {
# Dump
d($request);
d($response);
# Dump and die!
dd($ie);
}
# A response must be sent back in normal circumstances!
return $response;
});
$ie->run();
rfanTOOR\Engine;
# Create engine
$ie = new Engine(
[
'http' => [
'provider' => 'Slim\\Psr7',
]
]
);
# Add handler
$ie->addHandler(function($request) use($ie) {
# Request received by handle will be a Slim\Psr7 Request
# Psr\Slim7 Response
$response = $ie->create('Response');
$respone->write("Hello world from Slim\Psr7");
return $response;
});
# Run ...
$ie->run();
# ...
# Setting a header
$response = $response
->withHeader('Content-Type', 'text/plain')
->withHeader('keywords', 'hello, world')
;
# Removing a header
$response = $response->withoutHeader('unwanted-header');
# Checking a header
if ($response->hasHeader('content-type')) {
# Do something ...
}
# Getting a header, note that the key of headers is not case sensitive
$content_type = $response->getHeader('CONTENT-type');
# ...
return [
'debug' => [
# Note: a level 4 sets the reporting_level to E_ALL, and is 0 for other levels.
'level' => 0, # Or can be 1, 2, 3 or 4
],
'environment' => [
'REMOTE_ADDR' => '192.168.1.1',
'HELLO' => 'WORLD',
],
'site' => [
'name' => 'mysite.com',
]
];
$config = TOOR\Engine($config));
# OR preferably:
$ie = new IrfanTOOR\Engine([
# note a debug level, provided while init can help catching the errors
# of the config file, or any of the classes loaded in config etc.
'debug' => [
'level' => 1,
],
'config_file' => "path/to/config.php",
]);
$ie->config('site.name'); # Returns "mysite.com"
IrfanTOOR\Engine;
$ie = new Engine(
[
'debug' => [
'level' => 2, # Can be from 0 to 4
]
]
);
# ...
# If debug level is above 0, you can use the function d() && dd() to dump a
# variable while development.
d($request);
dd($request->getHeaders());
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.