PHP Classes

PHP Application Server: Run application with different types of Web server

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 54 All time: 10,631 This week: 206Up
Version License PHP version Categories
php-server 1.0.0Shareware5HTTP, PHP 5, Libraries
Description 

Author

This package can run applications with different types of the Web server.

It provides classes that can handle HTTP requests using different Web servers by routing the requests to given application scripts.

Currently, it supports the PHP built-in Web server and Web servers based on ReactPHP and Swoole.

Picture of Ahmad Mustapha
Name: Ahmad Mustapha <contact>
Classes: 24 packages by
Country: Nigeria Nigeria
Innovation award
Innovation award
Nominee: 9x

 

Example

<?php

use PHPServer\BuiltIn\Server;

require
'vendor/autoload.php';

Server::create('127.0.0.1', '9904')
    ->
onRequest(fn() => var_dump('Request Received'))
    ->
start()
    ->
logOutputToConsole();


Details

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();

  Files folder image Files (31)  
File Role Description
Files folder imagebin (3 files)
Files folder imagesrc (11 files, 3 directories)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file phpstan.neon Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file requests.http Data Auxiliary data
Accessible without login Plain text file test-builtin.php Example Example script
Accessible without login Plain text file test-react.php Example Example script
Accessible without login Plain text file test-swoole.php Example Example script

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:54
This week:0
All time:10,631
This week:206Up