help me please
geting error sizeof(): Parameter must be an array or an object that implements Countable
ErrorException {#654 ▼
#message: "sizeof(): Parameter must be an array or an object that implements Countable"
#code: 0
#file: "C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php"
#line: 179
#severity: E_WARNING
trace: {▼
C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php:179 {▶}
Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() {}
C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php:179 {▶}
C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php:281 {▶}
C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php:296 {▶}
C:\Primer_Proyecto\Ventas\vendor\paypal\rest-api-sdk-php\lib\PayPal\Api\Payment.php:557 {▶}
C:\Primer_Proyecto\Ventas\app\paypal.php:26 {▼
› try{\r
› \t$payment->create($this->_apiContext);\r
› }\r
arguments: {▶}
}
This is the paypal.php code
public function generate(){
$payment = \PaypalPayment::payment()->setIntent("sale")
->setPayer($this->payer())
->setTransactions([$this->transaction()])
->setRedirectURLs($this->redirectURLs());
try {
$payment->create($this->_apiContext);
}
catch(\Exception $ex){
dd($ex);
exit(1);
}
return $payment;
}
public function __construct($shopping_cart){
$this->_apiContext = \PaypalPayment::ApiContext($this->_ClientId, $this ->_ClientSecrete);
$config = config("paypal_payment");
$flatConfig = array_dot($config);
$this->_apiContext->setConfig($flatConfig);
$this->shopping_cart = $shopping_cart;
}
I do not see the error, I have stayed too long looking for what is my mistake
The error is in the paypal\rest-api-sdk-php
package you are using. The version of the package you are using is, apparently, not exactly compatible with PHP 7.2.
The specific error you are getting has been fixed in the latest version of the package (1.13.0
). Update the package to the latest version, and this issue will be fixed. I cannot say what other issues may pop up, though.
In the 1.12.0
version, the specific line that is failing is:
} elseif (sizeof($v) <= 0 && is_array($v)) {
In PHP 7.2, if $v
is not Countable, the sizeof()
call will emit a warning, and Laravel will turn that warning into an exception.
In the 1.13.0
version, they updated the condition to be
} elseif (is_array($v) && sizeof($v) <= 0) {
Now, sizeof()
will only be called when $v
is an array, and therefore is guaranteed to be Countable, thus eliminating the warning.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With