PHP code example of rotexsoft / versatile-collections
1. Go to this page and download the library: Download rotexsoft/versatile-collections library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
rotexsoft / versatile-collections example snippets
use \VersatileCollections\GenericCollection;
// items to be stored in your collection
$item1 = ['yabadoo']; // an array
$item2 = function(){ echo 'Hello World!'; }; // a callable
$item3 = 777.888; // a float
$item4 = 777; // an int
$item5 = new \stdClass(); // an object
$item6 = new \ArrayObject([]); // another object
$item7 = tmpfile(); // a resource
$item8 = true; // a boolean
$item9 = "true"; // a string
// Technique 1: pass the items to the constructor of the collection class
$collection = new \VersatileCollections\GenericCollection(
$item1, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9
);
// Technique 2: pass the items in an array using argument unpacking
// to the constructor of the collection class
$collection = new GenericCollection(
...[$item1, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9]
);
// Technique 3: pass the items in an iterable (such as an array) to the static makeNew helper method
// available in all collection classes
$collection = GenericCollection::makeNew(
[$item1, $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9]
);
// Technique 4: create an empty collection object and subsequently add each
// item to the collection via array assignment syntax or object
// property assignment syntax or using the appendItem($item),
// prependItem($item, $key=null), push($item) or put($key, $value)
// methods
$collection = new GenericCollection(); // empty collection
// OR
$collection = GenericCollection::makeNew(); // empty collection
$collection[] = $item1; // array assignment syntax without key
// the item is automatically assigned
// the next available integer key. In
// this case 0
$collection[] = $item2; // array assignment syntax without key
// the next available integer key in this
// case is 1
$collection['some_key'] = $item3; // array assignment syntax with specified key `some_key`
$collection->some_key = $item4; // object property assignment syntax with specified property
// `some_key`. This will update $collection['some_key']
// changing its value from $item3 to $item4
$collection->appendItem($item3) // same effect as:
->appendItem($item5); // $collection[] = $item3;
// $collection[] = $item5;
// Adds an item to the end of the collection
// You can chain the method calls
$collection->prependItem($item6, 'new_key'); // adds an item with the optional
// specified key to the front of
// collection.
// You can chain the method calls
$collection->push($item7); // same effect as:
// $collection[] = $item7;
// Adds an item to the end of the collection
// You can chain the method calls
$collection->put('eight_item', $item8) // same effect as:
->put('ninth_item', $item9); // $collection['eight_item'] = $item8;
// $collection['ninth_item'] = $item9;
// Adds an item with the specified key to
// the collection. If the specified key
// already exists in the collection the
// item previously associated with the
// key is overwritten with the new item.
// You can chain the method calls
use \VersatileCollections\StrictlyTypedCollectionInterface;
class PdoCollection implements StrictlyTypedCollectionInterface { //1. Implement interface
use \VersatileCollections\StrictlyTypedCollectionInterfaceImplementationTrait; //2. Use trait
public function __construct(\PDO ...$pdo_objs) { //3. Optionally override the constructor with a type
// specific one
$this->versatile_collections_items = $pdo_objs;
}
/**
*
* @return bool true if $item is of the expected type, else false
*
*/
public function checkType(mixed $item): bool { //4. implement interface methods not implemented in trait above
return ($item instanceof \PDO);
}
/**
*
* @return string|array a string or array of strings of type name(s)
* for items acceptable in instances of this
* collection class
*
*/
public function getTypes(): \VersatileCollections\StringsCollection { //4. implement interface methods not implemented in trait above
return new \VersatileCollections\StringsCollection(\PDO::class);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.