for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace PhpValueObjects\Spatial;
use PhpValueObjects\AbstractValueObject;
use PhpValueObjects\Spatial\Exception\InvalidPolygonException;
class PolygonValueObject extends AbstractValueObject
{
/**
* @param array $value
* @throws InvalidPolygonException
*/
protected function guard($value)
if (false === is_array($value)) {
throw new InvalidPolygonException();
}
if (3 > count($value)) {
$first = $value[0];
$end = end($value);
foreach ($value as $point) {
if (false === is_array($point)) {
if (2 !== count($point)) {
if (false === ($first == $end)) {