1. Go to this page and download the library: Download bfitech/zapcore 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/ */
bfitech / zapcore example snippets
ITech\ZapCore\Router;
(new Router())->route('/', function($args){
echo "Hello, World!";
});
function my_callback($args) {
$name = $args['put'];
file_put_contents('name.txt', $name);
die(sprintf("Hello, %s.", $name));
}
$core = new Router();
$core->route('/hello', 'my_callback', 'PUT');
$core = new Router();
function my_callback($args) {
global $core;
if ($core->get_request_method() == 'PUT') {
$name = $args['put'];
} else {
if (!isset($args['post']['name']))
die("Who are you?");
$name = $args['post']['name'];
}
file_put_contents('name.txt', $name);
die(sprintf("Hello, %s.", $name));
}
$core->route('/hello', 'my_callback', ['PUT', 'POST']);
function my_callback($args, $core) {
if ($core->get_request_method() == 'PUT') {
$name = $args['put'];
} else {
if (!isset($args['post']['name']))
die("Who are you?");
$name = $args['post']['name'];
}
file_put_contents('name.txt', $name);
die(sprintf("Hello, %s.", $name));
}
$core = new Router();
$core->route('/hello', function($args) use($core) {
my_callback($args, $core);
}, ['PUT', 'POST']);
$core = new Router();
class MyName {
public function my_callback($args) {
global $core;
if ($core->get_request_method() == 'PUT') {
$name = $args['put'];
} else {
if (!isset($args['post']['name']))
die("Who are you?");
$name = $args['post']['name'];
}
file_put_contents('name.txt', $name);
die(sprintf("Hello, %s.", $name));
}
}
$myname = new MyName();
$core->route('/hello', [$myname, 'my_callback'],
['PUT', 'POST']);
class MyName extends Router {
public function my_callback($args) {
if ($this->get_request_method() == 'PUT') {
$name = $args['put'];
} else {
if (!isset($args['post']['name']))
die("Who are you?");
$name = $args['post']['name'];
}
file_put_contents('name.txt', $name);
die(sprintf("Hello, %s.", $name));
}
public function my_home($args) {
if (!file_exists('name.txt'))
die("Hello, stranger.");
$name = file_get_contents('name.txt');
die(sprintf("You're home, %s.", $name));
}
}
$core = new MyName();
$core->route('/hello', [$core, 'my_callback'], ['PUT', 'POST']);
$core->route('/', [$core, 'my_home']);
class MyPath extends Router {
public function my_short_param($args) {
printf("Showing profile for user '%s'.\n",
$args['params']['short']);
}
public function my_long_param($args) {
printf("Showing version 1 of file '%s'.\n",
$args['params']['long']);
}
public function my_compound_param($args) {
extract($args['params']);
printf("Showing revision %s of file '%s'.\n",
$short, $long);
}
}
$core = new MyPath();
// short parameter with '<>', no slash captured
$core->route('/user/<short>/profile', [$core, 'my_short_param']);
// long parameter with '{}', slashes captured
$core->route('/file/{long}/v1', [$core, 'my_long_param']);
// short and long parameters combined
$core->route('/rev/{long}/v/<short>', [$core, 'my_compound_param']);
class MyToken extends MyName {
public function my_token($args) {
if (!isset($args['header']['my_token']))
die("No token sent.");
die(sprintf("Your token is '%s'.",
$args['header']['my_token']));
}
}
$core = new MyToken();
$core->route('/token', [$core, 'my_token']);
class MyName extends Router {
public function my_response($args) {
if (!isset($args['get']['name']))
self::halt("Oh noe!");
self:header(sprintf("X-Name: %s",
$args['get']['name']));
}
}
$core = new MyName();
$core->route('/response', [$core, 'my_response']);
class MyName extends Router {
public function my_response($args) {
if (isset($args['get']['name']))
self::start_header(200);
else
self::start_header(404);
}
}
$core = new MyName();
$core->route('/response', [$core, 'my_response']);
class MyFile extends Router {
public function my_file($args) {
if (!isset($args['get']['name']))
// show a 403 immediately
return $this->abort(403);
$name = $args['get']['name'];
if ($name == 'John')
// redirect to another query string
return $this->redirect('?name=Johnny');
// a dummy file
if (!file_exists('Johnny.txt'))
file_put_contents('Johnny.txt', "Here's Johnny.\n");
// serve a static file, will call $this->abort(404)
// internally if the file is not found
$file_name = $name . '.txt';
$this->static_file($file_name);
}
}
$core = new MyFile();
$core->route('/file', [$core, 'my_file']);
$core = (new Router())
->config('shutdown', false)
->config('logger', new Logger());
# your index.php
$core = (new Router())
->config('home', '/app')
->config('host', 'https://example.org/app');
// No matter where you put your app in the filesystem, it should
// only be world-visible via https://example.org/app.
$core1 = new Router();
$core1->config('shutdown', false);
$core1->route('/page', ...);
$core1->route('/post', ...);
$core2 = new Router();
$core2->route('/post', ...); # this route will never be executed,
# see above
$core2->route('/usr', ...);
$core2->route('/usr/profile', ...);
$core2->route('/usr/login', ...);
$core2->route('/usr/logout', ...);
// $core2 is the one responsible to internally call abort(404) at
// the end of script execution when there's no matching route found.
$logger = new Logger(Logger::DEBUG, '/tmp/myapp.log');
$core1 = (new Router())
->config('logger', $logger);
$core2 = (new Router())
->config('logger', $logger);
// Both $core1 and $core2 write to the same log file /tmp/myapp.log.
txt
# your nginx configuration
location @app {
set $app_dir /var/www/myapp;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_buffers 256 4k;
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.