--- /dev/null
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit php-pear-r2
+
+IUSE=""
+DESCRIPTION="PHP implementaion of json_encode/decode"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+PATCHES=( "${FILESDIR}/JSON-1.0.3-constructor.patch" )
+
+src_install() {
+ php-pear-r2_src_install
+ insinto /usr/share/php/Services
+ doins JSON.php
+}
--- /dev/null
+diff -aurN a/JSON.php b/JSON.php
+--- a/JSON.php 2011-01-13 21:40:48.000000000 -0500
++++ b/JSON.php 2018-02-15 11:42:06.551287857 -0500
+@@ -139,6 +139,14 @@
+ * strings or numbers, if you return an object, make sure it does
+ * not have a toJSON method, otherwise an error will occur.
+ */
++ function __construct($use = 0)
++ {
++ $this->use = $use;
++ $this->_mb_strlen = function_exists('mb_strlen');
++ $this->_mb_convert_encoding = function_exists('mb_convert_encoding');
++ $this->_mb_substr = function_exists('mb_substr');
++ }
++
+ function Services_JSON($use = 0)
+ {
+ $this->use = $use;
+@@ -909,6 +917,11 @@
+
+ class Services_JSON_Error extends PEAR_Error
+ {
++ function __construct($message = 'unknown error', $code = null,
++ $mode = null, $options = null, $userinfo = null)
++ {
++ parent::__construct($message, $code, $mode, $options, $userinfo);
++ }
+ function Services_JSON_Error($message = 'unknown error', $code = null,
+ $mode = null, $options = null, $userinfo = null)
+ {
+@@ -923,6 +936,11 @@
+ */
+ class Services_JSON_Error
+ {
++ function __construct($message = 'unknown error', $code = null,
++ $mode = null, $options = null, $userinfo = null)
++ {
++
++ }
+ function Services_JSON_Error($message = 'unknown error', $code = null,
+ $mode = null, $options = null, $userinfo = null)
+ {