Download the PHP package yomy/datastructures without Composer

On this page you can find all versions of the php package yomy/datastructures. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package datastructures

datastructures

Common data structures for PHP

Build Status

Installation and documentation

What is this library about

This library adds data structure classes that can be used for better organisation of your objects

Examples of value object

Creating an object:

Getting value from the object

Objects with the same value are going to be the same object

You can use type hinting in methods

You can extend the object for more detailed type hinting

Objects of different class or variable type are different

Instead of a strong (===) comparison operator, you could also use the equals() method

Generally, unserialize of a value object is prohibited, as this would break the ability to compare objects by reference. However, you might have a case you don't care about strict comparison, and need to unserialize the object. You can add a WeakValueObjectTrait usage to your custom object, which will allow unserializing it, and also compare objects by the values instead of reference when using equals() method

Examples of Enum value object

Creating an enum object

Creating enum objects

or by referring referring to key

You will get an error if you try to instantiate invalid value

Examples of Positive Integer value object

As value objects are commonly used as identifiers for database entities with an integer key, positive int value object ensures a valid key object for this purpose

Creating an object:

Usually, the id key in the db cannot be a 0, so these objects are invalid:

Of course, as with a basic value object, it is intended to use these in extended classes.

Examples of GenericCollection usage

Creating a collection object:

Adding objects to the collection

You could also add objects by using array syntax

Objects can be added multiple times

Collection supports adding an array of values at once

Removing objects from a collection - removes all occurrences of the object

Getting objects from the collection

Note that you cannot get objects with array syntax

You can also iterate trough the collection itself

Count the number of objects in a collection

Verify that the collection is empty

Verify that the collection contains an object

You can shallow copy the collection

You can append another collection to the collection

Collection supports custom sort of its objects.

Collection can be filtered to get a new collection with filtered objects

Collection can be transformed to array with a callback method. This allows extracting underlying data from objects or doing custom calculations

Collection can be transformed (appended) to another collection

Examples of ObjectCollection usage

ObjectCollection is an extension of GenericCollection that is intended to contain only objects of specific class.

Creating an ObjectCollection of specific type

All of the methods from GenericCollection work almost the same, except for the fact that only objects of the exact type that was passed in the Collection constructor are allowed.

Trying to add an object of wrong type will throw an InvalidArgumentException

Collection will work with extended objects as well

The primary intent of the ObjectCollection is to have a custom named collection

Having a collection such as this allows for type hinting in the code and we're sure that a collection only consists of objects of specific type

In some cases, we need to "try" and fill a collection from an unknown array of objects. tryAddArray() method will allow for safely trying to add all objects of correct type and provide an array of objects that have failed to be added.

Examples of KeyValueCollection usage

KeyValueCollection is a collection that is intended to contain Key=>Value pairs. Internally, this collection holds objects of Pair type, but the intention is not to use these Pair objects directly, but trough setting a key and value directly on a collection object.

A KeyValueCollection should be used via put() and get() methods.

You can also use the array syntax when using KeyValueCollection

KeyValueCollection has unique keys. This means that putting something on a key that already exists will owerwrite the value in the collection

Now, you might think that this is simply emulating an associative array, so why would you use this instead?

The power of KeyValueCollection is that it can hold objects as keys, so you can have:


All versions of datastructures with dependencies

PHP Build Version
Package Version
Requires php Version >=7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package yomy/datastructures contains the following files

Loading the files please wait ....