konsulting / laravel-extend-collections by konsulting

A few extensions to the Laravel Collection and Arr.
4,312
2
2
Package Data
Maintainer Username: konsulting
Maintainer Contact: keoghan@klever.co.uk (Keoghan Litchfield)
Package Create Date: 2017-02-06
Package Last Update: 2023-01-20
Language: PHP
License: MIT
Last Refreshed: 2024-05-12 03:02:25
Package Statistics
Total Downloads: 4,312
Monthly Downloads: 60
Daily Downloads: 0
Total Stars: 2
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

Laravel Extend Collections

A few extensions to the Laravel Collection and Arr.

Installation

composer require konsulting/laravel-extend-collections

Using Laravel

If you are using Laravel 5.5, this package will auto-register the service provider. However, if you have chosen not to auto-register, or are using an earlier version, add the CollectionsServiceProvider to your config/app.php.

'providers' => [
    // Other service providers...

    Konsulting\Laravel\CollectionsServiceProvider::class,
],

Not using Laravel

There is a simple namespaced helper function to assist with extending Collection and Arr.

// Inside your application code, run:

\Konsulting\Laravel\load_collection_extensions();

Arr Extensions

  • fromDot - convert an array where the keys are dot-notation indexed to a nested array

Collection extensions

  • dropEmpty - drop items whose values are empty()
  • deep - apply a function recursively through a collection, and through arrays/collections within it
  • dotGet - retrieve an item using dot-notation
  • dotSet - set an item using dot-notation
  • dotHas - check if an item exists using dot-notation
  • dot - convert a nested collection to dot-notation indexed collection
  • fromDot - convert a dot-notation indexed collection to a nested collection

Contributing

Contributions are welcome and will be fully credited. We will accept contributions by Pull Request.

Please:

  • Use the PSR-2 Coding Standard
  • Add tests, if you’re not sure how, please ask.
  • Document changes in behaviour, including readme.md.

Testing

We use PHPUnit

Run tests using PHPUnit: vendor/bin/phpunit