for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Thinktomorrow\Vine\Branch;
use ArrayAccess;
use ArrayIterator;
use Countable;
use IteratorAggregate;
/**
* Class Collection
*
* @property array $branches
*/
class ArrayCollection implements ArrayAccess, Countable, IteratorAggregate
{
protected $branches = [];
public function offsetSet($offset, $value) {
if (is_null($offset)) {
$this->branches[] = $value;
} else {
$this->branches[$offset] = $value;
}
public function offsetExists($offset) {
return isset($this->branches[$offset]);
public function offsetUnset($offset) {
unset($this->branches[$offset]);
public function offsetGet($offset) {
return isset($this->branches[$offset]) ? $this->branches[$offset] : null;
public function count()
return count($this->branches);
* Iterator for the branches
* @return \ArrayIterator
public function getIterator()
return new ArrayIterator($this->branches);
public function toArray()
return BuildArray::fromCollection($this);
$this
this<Thinktomorrow\Vine\Branch\ArrayCollection>
null|object<Thinktomorro...ranch\BranchCollection>
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example:
function acceptsInteger($int) { } $x = '123'; // string "123" // Instead of acceptsInteger($x); // we recommend to use acceptsInteger((integer) $x);
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: