Files
wiosna-dev_common-library/docs/Collection/BaseCollection.md
2022-02-12 14:46:47 +01:00

2.3 KiB
Raw Blame History

Meritoo Common Library

Common and useful classes, methods, exceptions etc.

BaseCollection

Namespace

Meritoo\Common\Collection\BaseCollection

Info

It's a set of some elements with the same type, e.g. objects. It's iterable and countable. Provides very useful methods. Some of them:

  • getFirst() - returns the first element in the collection
  • getLast() - returns the last element in the collection
  • isEmpty() - returns information if collection is empty
  • add($element, $index = null) - adds given element (at the end of collection)
  • addMultiple($elements, $useIndexes = false) - adds given elements (at the end of collection)
  • prepend($element) - prepends given element (adds given element at the beginning of collection)
  • remove($element) - removes given element

Implementation

You have to implement:

abstract protected function isValidType($element): bool;

This method verifies 1 element before it will be added to collection. Returns information if the element has valid, expected type.

Example (from Meritoo\Common\Collection\Templates class):

protected function isValidType($element): bool
{
    return $element instanceof Template;
}

Methods to overwrite

You can, if you wish, overwrite these methods:

  1. To prepare elements used to initialize the collection in your own way:

    protected function prepareElements(array $elements): array
    
  2. To validate type of elements in your own way:

    protected function getElementsWithValidType(array $elements): array
    

Examples of usage

use Meritoo\Common\Collection\StringCollection;

$emptyCollection = new StringCollection();
var_dump($emptyCollection->isEmpty()); // bool(true)

$elements = [
    'lorem',
    'ipsum',
    123 => 'dolor',
    345 => 'sit',
];

$simpleCollection = new StringCollection($elements);
var_dump($simpleCollection->has('dolor')); // bool(true)

More

  1. Base test case (with common methods and data providers)
  2. Collection of elements
  3. Templates
  4. Exceptions
  5. Static methods
    1. Arrays
    2. Regex
  6. Value Objects

Back to Readme