Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Using Laravel Collections... Outside Laravel

Using Laravel Collections... Outside Laravel

Oliver Davies

August 28, 2018
Tweet

More Decks by Oliver Davies

Other Decks in Technology

Transcript

  1. USING LARAVEL
    COLLECTIONS...
    OUTSIDE LARAVEL

    View Slide

  2. COLLECTIONS

    View Slide

  3. collect(['foo', 'bar']); // ['foo', 'bar']
    collect('foobar'); // ['foobar']
    $object = new stdClass();
    $object->foo = 'bar';
    collect($object); // ['foo' => 'bar']
    collect($object)->get('foo'); // bar

    View Slide

  4. $collection = collect(['a', 'b', 1, 'c', 2, 'd', 'e', 3, 4]);
    $collection->count(); // 9
    $collection->first(); // a
    $collection->first(function ($item) {
    return is_numeric($item);
    }); // 1
    $collection->contains(2); // true
    $collection->contains([2, 10]); // false
    $collection->filter(function ($item) {
    return $item > 2;
    }); // [3, 4]

    View Slide

  5. $collection = collect([
    ['name' => 'John', 'email' => '[email protected]', 'age' => 31],
    ['name' => 'Jane', 'email' => '[email protected]', 'age' => 27],
    ]);
    $collection->pluck('name'); // ['John', 'Jane']
    $collection->pluck('name')->sort(); // ['Jane', 'John']
    $collection->filter(function ($person) {
    return $person['age'] >= 30;
    })->pluck('name'); // ['John']

    View Slide

  6. View Slide

  7. THERE’S A MODULE FOR THAT!
    - DRUPALERS

    View Slide

  8. THERE'S NOT A MODULE FOR THAT.
    - ME

    View Slide

  9. View Slide

  10. VERSION 1.0
    WRITE MY OWN COLLECTION
    CLASS

    View Slide

  11. View Slide

  12. View Slide

  13. COLLECT - ILLUMINATE COLLECTIONS AS A
    SEPARATE PACKAGE.
    HTTPS://PACKAGIST.ORG/PACKAGES/TIGHTENCO/COLLECT

    View Slide

  14. IMPORT LARAVEL'S COLLECTIONS INTO NON-
    LARAVEL PACKAGES EASILY, WITHOUT
    NEEDING TO REQUIRE THE ENTIRE
    ILLUMINATE\SUPPORT PACKAGE.
    HTTPS://PACKAGIST.ORG/PACKAGES/TIGHTENCO/COLLECT

    View Slide

  15. View Slide

  16. COMPOSER REQUIRE
    TIGHTENCO/COLLECT

    View Slide

  17. View Slide

  18. View Slide

  19. VERSION 2.0
    USE SOMEONE ELSE’S
    COLLECTION CLASS

    View Slide

  20. View Slide

  21. ▸ Install Composer
    ▸ Require tightenco/collect
    ▸ Include autoload.php
    ▸ collect() away!

    View Slide

  22. ▸ Install Composer
    ▸ Require tightenco/collect
    ▸ Include autoload.php
    ▸ collect() away!

    View Slide

  23. // index.php
    require __DIR__ . '/vendor/autoload.php';
    $collection = collect(['foo', 'bar']);
    $collection->each(function ($item) {
    // Do something.
    });

    View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. THANKS!
    @OPDAVIES
    OLIVERDAVIES.UK

    View Slide