2017 © Pedro Peláez
 

library typed-collection

Laravel collections with strict type support.

image

nxu/typed-collection

Laravel collections with strict type support.

  • Thursday, July 26, 2018
  • by nXu
  • Repository
  • 0 Watchers
  • 2 Stars
  • 234 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 6 Versions
  • 123 % Grown

The README.md

This package is abandoned

Honestly - just use PHPStan at this point., (*1)


Stand With Ukraine, (*2)

Packagist StyleCI, (*3)

Typed Collections

While PHP 7 brings nice features for using types as intended, there are many things still missing. One thing I really miss is the use of generics, or simply the ability to type hint an array of elements with specific types. The aim of this package is to provide an alternative way to type-hinted arrays., (*4)

How to use?

This package is build upon Laravel's Collection and requires illuminate/support. Therefore, while not strictly tied to Laravel, it's intended to be used with the Laravel 5 framework., (*5)

It works by creating collection classes for each type and specifying the types of the elements. This will be enforced, and you can be sure the collection only contains elements with the specified type., (*6)

Installation

Use composer to install the package., (*7)

composer require nxu/typed-collection

Not using composer? Too bad., (*8)

Built-in collections

The package provides built in collections for all scalar types of PHP (other than null of course):, (*9)

  • ArrayCollection
  • BooleanCollection
  • CallableCollection
  • FloatCollection
  • IntegerCollection
  • ResourceCollection
  • StringCollection

Also, there is a DateTimeInterfaceCollection to be used., (*10)

Custom collection classes

For any other type, create a class and extend TypedCollection. Then simply set the protected $objectType property to the FQN of the type you wish to use:, (*11)

protected $objectType = \DateTime::class; 

That's all, adding any other types will throw an InvalidTypeException., (*12)

Even more customization

If you wish to customize the collection even more, you can override the isTypeValid($value): bool method and add any validation rule., (*13)

Helpers

Similarly to Laravel's collect() method, this package provides easy to use helper methods:, (*14)

  • collect_array()
  • collect_bool()
  • ...

License

This package is open source software licensed under the MIT License., (*15)

The Versions

26/07 2018

dev-master

9999999-dev

Laravel collections with strict type support.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Zsolt Fekete (nxu)

26/07 2018

v1.2

1.2.0.0

Laravel collections with strict type support.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Zsolt Fekete (nxu)

19/02 2018

v1.1.1

1.1.1.0

Laravel collections with strict type support.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Zsolt Fekete (nxu)

19/02 2018

dev-analysis-z4DoPN

dev-analysis-z4DoPN

Laravel collections with strict type support.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Zsolt Fekete (nxu)

19/02 2018

V1.1

1.1.0.0

Laravel collections with strict type support.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Zsolt Fekete (nxu)

18/02 2018

v1.0

1.0.0.0

Laravel collections with strict type support.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Zsolt Fekete (nxu)