for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* PHP Billing Library
*
* @link https://github.com/hiqdev/php-billing
* @package php-billing
* @license BSD-3-Clause
* @copyright Copyright (c) 2017, HiQDev (http://hiqdev.com/)
*/
namespace hiqdev\php\billing;
use DateTime;
use hiqdev\php\units\QuantityInterface;
* Simple Action.
* Charges only same target and same type.
* @author Andrii Vasyliev <[email protected]>
class SimpleAction extends AbstractAction
{
* @param mixed $id
$id
This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.
Consider the following example. The parameter $italy is not defined by the method finale(...).
$italy
finale(...)
/** * @param array $germany * @param array $island * @param array $italy */ function finale($germany, $island) { return "2:1"; }
The most likely cause is that the parameter was removed, but the annotation was not.
* @param CustomerInterface $customer
* @param TargetInterface $target
* @param QuantityInterface $quantity
* @param DateTime $time
* @param TypeInterface $type
public function __construct(
CustomerInterface $customer,
TargetInterface $target,
QuantityInterface $quantity,
DateTime $time,
TypeInterface $type
) {
parent::__construct($customer, $target, $quantity, $time);
$this->type = $type;
type
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
}
public function getType()
return $this->type;
* {@inheritdoc}
public function isApplicable(PriceInterface $price)
return $this->target->equals($price->getTarget()) &&
$this->getType()->equals($price->getType());
This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.
Consider the following example. The parameter
$italy
is not defined by the methodfinale(...)
.The most likely cause is that the parameter was removed, but the annotation was not.