diff options
author | Remi Collet <remi@remirepo.net> | 2017-10-21 08:31:11 +0200 |
---|---|---|
committer | Remi Collet <remi@remirepo.net> | 2017-10-21 08:31:11 +0200 |
commit | e1cee48edf09a8f78e28777c5fb62564dc813ee1 (patch) | |
tree | 10efa704d1ec56292fe14627dd3f178f704b8b0e |
-rw-r--r-- | .gitignore | 8 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | composer.json | 32 | ||||
-rw-r--r-- | php-felixfbecker-advanced-json-rpc.spec | 142 |
4 files changed, 186 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc9aa8c --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +clog +package-*.xml +*.tgz +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..91b0fd5 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +SRCDIR := $(shell pwd) +NAME := $(shell basename $(SRCDIR)) +include ../../common/Makefile + diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..4a1c393 --- /dev/null +++ b/composer.json @@ -0,0 +1,32 @@ +{ + "name": "felixfbecker/advanced-json-rpc", + "description": "A more advanced JSONRPC implementation", + "type": "library", + "license": "ISC", + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "autoload-dev": { + "psr-4": { + "AdvancedJsonRpc\\Tests\\": "tests/" + } + }, + "require": { + "php": ">=7.0", + "netresearch/jsonmapper": "^1.0", + "phpdocumentor/reflection-docblock": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^5.5" + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/php-felixfbecker-advanced-json-rpc.spec b/php-felixfbecker-advanced-json-rpc.spec new file mode 100644 index 0000000..1a02106 --- /dev/null +++ b/php-felixfbecker-advanced-json-rpc.spec @@ -0,0 +1,142 @@ +# remirepo/fedora spec file php-felixfbecker-advanced-json-rpc +# +# Copyright (c) 2017 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# +%global gh_commit 543ffb38b9af47f16404ab2daec5aaf225dcb531 +%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) +%global gh_owner felixfbecker +%global gh_project php-advanced-json-rpc + +%global pk_vendor %{gh_owner} +%global pk_project advanced-json-rpc + +%global ns_vendor %nil +%global ns_project AdvancedJsonRpc +%global php_home %{_datadir}/php +%global with_tests 0%{!?_without_tests:1} + +Name: php-%{pk_vendor}-%{pk_project} +Version: 2.0.3 +Release: 1%{?dist} +Summary: A more advanced JSONRPC implementation + +Group: Development/Libraries +License: ISC +URL: https://github.com/%{gh_owner}/%{gh_project} +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}-%{gh_short}.tar.gz + +BuildArch: noarch +%if %{with_tests} +# For tests +BuildRequires: php(language) >= 7.0 +BuildRequires: php-reflection +BuildRequires: php-json +BuildRequires: php-composer(netresearch/jsonmapper) < 2 +BuildRequires: php-composer(netresearch/jsonmapper) >= 1.0 +BuildRequires: php-composer(phpdocumentor/reflection-docblock) < 4 +BuildRequires: php-composer(phpdocumentor/reflection-docblock) >= 3.1 +# From composer.json, "require-dev": { +# "phpunit/phpunit": "^5.5" +BuildRequires: php-composer(phpunit/phpunit) >= 5.5 +# Required by autoloader +BuildRequires: php-composer(fedora/autoloader) +%endif + +# From composer.json, "require": { +# "php": ">=7.0", +# "netresearch/jsonmapper": "^1.0", +# "phpdocumentor/reflection-docblock": "^3.1" +Requires: php(language) >= 7.0 +Requires: php-composer(netresearch/jsonmapper) < 2 +Requires: php-composer(netresearch/jsonmapper) >= 1.0 +Requires: php-composer(phpdocumentor/reflection-docblock) < 4 +Requires: php-composer(phpdocumentor/reflection-docblock) >= 3.1 +# From phpcompatinfo report for version 2.0.3 +Requires: php-reflection +Requires: php-json +# Required by autoloader +Requires: php-composer(fedora/autoloader) + +Provides: php-composer(%{pk_vendor}/%{pk_project}) = %{version} + + +%description +Advanced JSONRPC + +Provides basic classes for requests and responses in JSONRPC and a +Dispatcher class that can decode a JSONRPC request and call appropiate +methods on a target, coercing types of parameters by type-hints and +@param tags. + +Supports nested targets: +If the method is something like myNestedTarget->theMethod, the dispatcher +will look for a myNestedTarget property on the target and call theMethod +on it. + +The delimiter is configurable and defaults to the PHP object operator ->. + +Autoloader: %{php_home}/%{ns_project}/autoload.php + + +%prep +%setup -q -n %{gh_project}-%{gh_commit} + +cat << 'EOF' | tee lib/autoload.php +<?php +/* Autoloader for %{name} and its dependencies */ +require_once '/usr/share/php/Fedora/Autoloader/autoload.php'; +\Fedora\Autoloader\Autoload::addPsr4('%{ns_project}\\', __DIR__); +\Fedora\Autoloader\Dependencies::required([ + '%{php_home}/phpDocumentor/Reflection/DocBlock/autoload.php', + '%{php_home}/netresearch/jsonmapper/autoload.php', +]); +EOF + + +%build +# Empty build section, most likely nothing required. + + +%install +: Library +mkdir -p %{buildroot}%{php_home} +cp -pr lib %{buildroot}%{php_home}/%{ns_project} + + +%check +%if %{with_tests} +cat << 'EOF' | tee bootstrap.php +<?php +require '%{buildroot}%{php_home}/%{ns_project}/autoload.php'; +\Fedora\Autoloader\Autoload::addPsr4('%{ns_project}\\Tests\\', __DIR__ . '/tests'); +EOF + +ret=0 +for cmd in php php70 php71 php72; do + if which $cmd; then + $cmd %{_bindir}/phpunit --bootstrap bootstrap.php --verbose tests || ret=1 + fi +done +exit $ret +%else +: Test suite disabled +%endif + + +%files +%{!?_licensedir:%global license %%doc} +# https://github.com/felixfbecker/php-advanced-json-rpc/issues/11 +#license LICENSE +%doc composer.json +%doc README.md +%{php_home}/%{ns_project} + + +%changelog +* Sat Oct 21 2017 Remi Collet <remi@remirepo.net> - 2.0.3-1 +- initial package, version 2.0.3 +- open https://github.com/felixfbecker/php-advanced-json-rpc/issues/11 - LICENSE |