Issues (456)

Form/DataProvider/PrepaymentDataProvider.php (1 issue)

1
<?php
2
3
/**
4
 * MIT License
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Yves\Ratepay\Form\DataProvider;
9
10
use Generated\Shared\Transfer\PaymentTransfer;
11
use Generated\Shared\Transfer\RatepayPaymentPrepaymentTransfer;
12
use Spryker\Shared\Kernel\Transfer\AbstractTransfer;
13
14
class PrepaymentDataProvider extends DataProviderAbstract
15
{
16
    /**
17
     * @param \Spryker\Shared\Kernel\Transfer\AbstractTransfer|\Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
18
     *
19
     * @return \Spryker\Shared\Kernel\Transfer\AbstractTransfer|\Generated\Shared\Transfer\QuoteTransfer
20
     */
21
    public function getData(AbstractTransfer $quoteTransfer)
22
    {
23
        if ($quoteTransfer->getPayment() === null) {
24
            $paymentTransfer = new PaymentTransfer();
25
            $paymentMethodTransfer = new RatepayPaymentPrepaymentTransfer();
26
            $paymentMethodTransfer->setPhone($this->getPhoneNumber($quoteTransfer));
27
            $paymentTransfer->setRatepayPrepayment($paymentMethodTransfer);
28
29
            $quoteTransfer->setPayment($paymentTransfer);
30
        }
31
32
        return $quoteTransfer;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $quoteTransfer returns the type Spryker\Shared\Kernel\Transfer\AbstractTransfer which is incompatible with the return type mandated by Spryker\Yves\StepEngine\...derInterface::getData() of Generated\Shared\Transfer\QuoteTransfer.

In the issue above, the returned value is violating the contract defined by the mentioned interface.

Let's take a look at an example:

interface HasName {
    /** @return string */
    public function getName();
}

class Name {
    public $name;
}

class User implements HasName {
    /** @return string|Name */
    public function getName() {
        return new Name('foo'); // This is a violation of the ``HasName`` interface
                                // which only allows a string value to be returned.
    }
}
Loading history...
33
    }
34
}
35