An open API service indexing awesome lists of open source software.

https://github.com/compolomus/collection


https://github.com/compolomus/collection

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# Compolomus Collection

[![License](https://poser.pugx.org/compolomus/Collection/license)](https://packagist.org/packages/compolomus/Collection)

[![Build Status](https://scrutinizer-ci.com/g/Compolomus/Collection/badges/build.png?b=master)](https://scrutinizer-ci.com/g/Compolomus/Collection/build-status/master)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Compolomus/Collection/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Compolomus/Collection/?branch=master)
[![Code Coverage](https://scrutinizer-ci.com/g/Compolomus/Collection/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/Compolomus/Collection/?branch=master)
[![Code Climate](https://codeclimate.com/github/Compolomus/Collection/badges/gpa.svg)](https://codeclimate.com/github/Compolomus/Collection)
[![Downloads](https://poser.pugx.org/compolomus/Collection/downloads)](https://packagist.org/packages/compolomus/Collection)

# Install:

composer require compolomus/Collection

# Usage:

```php

use Compolomus\Collection\Collection;

require __DIR__ . '/vendor/autoload.php';

```

## New collection

### Single add

```php

$collection = new Collection('stdClass');

for ($i = 0; $i <= 42; $i++) {
$add = new stdClass();
$add->test = $i;
$collection->addOne($add);
}

```

### Batch add

```php

$array = [];
for ($i = 0; $i <= 42; $i++) {
$add = new stdClass();
$add->test = $i;
$array[] = $add;
}
$collection->addAll($array);

```

## Limit

### Count limit

```php

$limit1 = $collection->immutable()->limit(5);

echo '

' . print_r($limit1->get(), true) . '
';
/*
Array
(
[0] => stdClass Object
(
[test] => 0
)

[1] => stdClass Object
(
[test] => 1
)

[2] => stdClass Object
(
[test] => 2
)

[3] => stdClass Object
(
[test] => 3
)

[4] => stdClass Object
(
[test] => 4
)
)
*/

```

### Limit with offset

```php

$limit2 = $collection->immutable()->limit(3, 3);

echo '

' . print_r($limit2->get(), true) . '
';
/*
Array
(
[0] => stdClass Object
(
[test] => 3
)

[1] => stdClass Object
(
[test] => 4
)

[2] => stdClass Object
(
[test] => 5
)
)
*/

```

## Count

```php

echo $collection->count(); //43
echo $limit1->count(); // 5
echo $limit2->count(); // 3

```

## Sort

```php

$sort = $limit2->immutable()->sort('test', Collection::DESC);

echo '

' . print_r($sort->get(), true) . '
';
/*
Array
(
[2] => stdClass Object
(
[test] => 5
)

[1] => stdClass Object
(
[test] => 4
)

[0] => stdClass Object
(
[test] => 3
)
)
*/

```

## LINQ

```php

$linq = $collection->where('test > 33');

echo '

' . print_r($linq->get(), true) . '
';
/*
Array
(
[0] => stdClass Object
(
[test] => 34
)

[1] => stdClass Object
(
[test] => 35
)

[2] => stdClass Object
(
[test] => 36
)

[3] => stdClass Object
(
[test] => 37
)

[4] => stdClass Object
(
[test] => 38
)

[5] => stdClass Object
(
[test] => 39
)

[6] => stdClass Object
(
[test] => 40
)

[7] => stdClass Object
(
[test] => 41
)

[8] => stdClass Object
(
[test] => 42
)
)
*/

```