PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Ahmad Mustapha   PHP Application Server   README.md   Download  
File: README.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: PHP Application Server
Run application with different types of Web server
Author: By
Last change:
Date: 2 years ago
Size: 2,130 bytes
 

Contents

Class file image Download

PHP Server

A small library to help run PHP servers easily and quickly.

Installation

composer require ahmard/php-server

Usage

PHP Built-In Server

An implementation of Built-In Server

  • With document root
    use PHPServer\BuiltIn\Server;
    
    

Server::create('127.0.0.1', '9900')

->setDocumentRoot(__DIR__)
->start()
->logOutputToConsole();

- Route request to single entry file

use PHPServer\BuiltIn\Server;

Server::create('127.0.0.1', '9900')

->setRouterScript(__DIR__ . 'public/index.php')
->start();

- Provide callable to be invoked when request is received

use PHPServer\BuiltIn\Server;

Server::create('127.0.0.1', '9900')

->onRequest(fn() => var_dump('Request Received'))
->start();


### ReactPHP
An implementation of ReactPHP

use PHPServer\React\Server; use Psr\Http\Message\RequestInterface; use React\Http\Message\Response;

require 'vendor/autoload.php';

$handler = function (RequestInterface $request) {

$html = 'Welcome,<br/>';
$html .= "Method: {$request->getMethod()}<br/>";
$html .= "Route: {$request->getUri()->getPath()}";
return new Response(200, ['Content-Type' => 'text/html'], $html);

};

Server::create('127.0.0.1', 9001)

->onRequest($handler)
->start()
->logOutputToConsole();

### Swoole
An implementation of Swoole

use PHPServer\Swoole\Http\Request; use PHPServer\Swoole\Server;

require 'vendor/autoload.php';

$handler = function (Request $request) {

$html = 'Welcome,<br/>';
$html .= "Method: {$request->getMethod()}<br/>";
$html .= "Route: {$request->getUri()->getPath()}";
$request->response()->html($html);

};

Server::create('127.0.0.1', 9904)

->watchFilesystemChanges([__DIR__])
->onRequest($handler)
->setServerConfig([
    'enable_static_handler' => true,
    'http_parse_post' => true,
    'worker_num' => 8,
    'package_max_length' => 10 1024 1024
])
->start()
->logOutputToConsole();