Required to run tests related to setlocale() function (and Meritoo\Common\Utilities\Locale class) properly
Meritoo Common Library
Common and useful classes, methods, exceptions etc.
Installation
Run Composer to install this package in your project:
$ composer require meritoo/common-library
How to install Composer: https://getcomposer.org/download
Rebuilding project and tests running
$ docker-compose up -d
$ docker-compose exec php-cli phing
What is Docker? https://www.docker.com/what-docker
Static methods
This package contains a lot of class with static methods, so usage is not so complicated. Just run the static method who would you like to use. Example:
use Meritoo\Common\Utilities\Arrays;
$firstElement = Arrays::getFirstElement(['lorem', 'ipsum']);
var_dump($firstElement); // string(5) "lorem"
Base test case with common methods and data providers
Located here: Meritoo\Common\Test\Base\BaseTestCase. Just extend the BaseTestCase class and use it like in Meritoo\Common\Test\Utilities\DateTest class:
class DateTest extends BaseTestCase
{
/**
* @param mixed $value Empty value, e.g. ""
* @dataProvider provideEmptyValue
*/
public function testGetDateTimeEmptyValue($value)
{
self::assertFalse(Date::getDateTime($value));
}
(...)
}
or in Meritoo\Common\Test\Utilities\MimeTypesTest class:
class MimeTypesTest extends BaseTestCase
{
(...)
/**
* @param bool $mimeType The mime type, e.g. "video/mpeg"
* @dataProvider provideBooleanValue
*/
public function testGetExtensionBooleanMimeType($mimeType)
{
self::assertEquals('', MimeTypes::getExtension($mimeType));
}
(...)
}
Collection of elements
Located here: Meritoo\Common\Collection\Collection. It's a set of some elements, e.g. objects. It's iterable and countable. Provides very useful methods. Some of them:
getFirst()- returns the first element in the collectiongetLast()- returns the last element in the collectionisEmpty()- returns information if collection is emptyadd($element, $index = null)- adds given element (at the end of collection)addMultiple($elements, $useIndexes = false)- adds given elements (at the end of collection)prepend($element)- prepends given element (adds given element at the beginning of collection)remove($element)- removes given element
Examples of usage below.
An empty collection
use Meritoo\Common\Collection\Collection;
$emptyCollection = new Collection();
var_dump($emptyCollection->isEmpty()); // bool(true)
Simple collection
use Meritoo\Common\Collection\Collection;
$elements = [
'lorem',
'ipsum',
123 => 'dolor',
345 => 'sit',
];
$simpleCollection = new Collection($elements);
var_dump($simpleCollection->has('dolor')); // bool(true)
Enjoy!