From a922d25c435202ed74888b71330b9c92495919a1 Mon Sep 17 00:00:00 2001 From: yggverse Date: Wed, 24 Apr 2024 21:22:13 +0300 Subject: [PATCH] initial commit --- .gitignore | 2 ++ README.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++- composer.json | 19 +++++++++++++++++ 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 composer.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..94d6d75 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/vendor/ +/composer.lock \ No newline at end of file diff --git a/README.md b/README.md index 8a63e9d..eedaaf6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,59 @@ # nps-php -PHP 8 / Composer Library for NPS Protocol + +PHP 8 / Composer Library for NPS Protocol (see also [nex-php](https://github.com/YGGverse/nex-php)) + +## Usage + +``` +composer require yggverse/nps +``` + +## Server + +Build interactive server instance to listen NPS protocol connections! + +``` php +$server = new \Yggverse\Nps\Server; +``` + +Provide optional `host`, `port` and `size` arguments in constructor or use available setters after object initiation. + +``` php +$server = new \Yggverse\Nps\Server('127.0.0.1', 1915); +``` + +#### Server::setHost +#### Server::getHost +#### Server::setPort +#### Server::getPort +#### Server::setSize +#### Server::getSize +#### Server::setLive +#### Server::getLive + +#### Server::start + +Run server object using this method. + +Define handler function as the argument to process application logic dependent of client request. + +``` php +$server->start( + function ( + string $request, + string $connect + ) { + printf( + 'connection: %s request: %s', + $connect, + $request + ); + } +); +``` + +#### Server::stop + +Stop server instance. + +Same to `Server::setLive(false)` diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..bf1defa --- /dev/null +++ b/composer.json @@ -0,0 +1,19 @@ +{ + "name": "yggverse/nps", + "description": "PHP 8 Library for NPS Protocol", + "keywords": [ "yggverse", "nps", "nps-protocol", "server" ], + "homepage": "https://github.com/yggverse/nps-php", + "type": "library", + "license": "MIT", + "autoload": { + "psr-4": { + "Yggverse\\Nps\\": "src/" + } + }, + "authors": [ + { + "name": "YGGverse" + } + ], + "require": {} +}