6.8 KiB
Meritoo Common Library
Common and useful classes, methods, exceptions etc.
Value Objects
Located in Meritoo\Common\ValueObject namespace and in src/ValueObject/ directory.
Address
Namespace
Meritoo\Common\ValueObject\Address
Info
Represents address of company, institution, user etc. Contains properties:
$street- the street$buildingNumber- the number of building$flatNumber- the number of flat$zipCode- the zip code$city- the city, location
New instance
New instance can be created using constructor
new Address('New York', '00123', '4th Avenue', '10', '200');
Methods
Has getters for each property, e.g. getFlatNumber() or getZipCode(), and 1 extra method:
getFullStreet()
that returns name of street with related numbers (building & flat number).
Example:
$address = new Address('New York', '00123', '4th Avenue', '10', '200');
$fullStreet = $address->getFullStreet(); // "4th Avenue 10/200"
Conversion to string (the __toString() method)
Instance of Address may be represented as string that contains all non-empty properties separated by , .
Example:
$address = new Address('New York', '00123', '4th Avenue', '10', '200');
$asString = (string)$address; // "4th Avenue 10/200, 00123, New York"
BankAccount
Namespace
Meritoo\Common\ValueObject\BankAccount
Info
Represents bank account. Contains properties:
$bankName- name of bank$accountNumber- number of bank's account
New instance
New instance can be created using constructor
new BankAccount('Bank of America', '1234567890')
Methods
Has getters for each property getBankName() and getAccountNumber().
Conversion to string (the __toString() method)
Instance of BankAccount may be represented as string that contains all non-empty properties separated by , .
Example:
$bank = new BankAccount('Bank of America', '1234567890');
$asString = (string)$bank; // "Bank of America, 1234567890"
Company
Namespace
Meritoo\Common\ValueObject\Company
Info
Represents a company. Contains properties:
$name- name of company$address- address of company$bankAccount- bank account of company
New instance
New instance can be created using constructor:
new Company(
'Test 1',
new Address('New York', '00123', '4th Avenue', '10', '200'),
new BankAccount('Bank 1', '12345')
);
Methods
Has getters for each property getName(), getAddress() and getBankAccount().
Conversion to string (the __toString() method)
Instance of Company may be represented as string that contains all non-empty properties separated by , .
Example:
$company = new Company(
'Test 1',
new Address('New York', '00123', '4th Avenue', '10', '200'),
new BankAccount('Bank 1', '12345')
);
$asString = (string)$company; // "Test 1, 4th Avenue 10/200, 00123, New York, Bank 1, 12345"
Human
Namespace
Meritoo\Common\ValueObject\Human
Info
Represents human. Based on \Meritoo\Common\Traits\ValueObject\HumanTrait trait. Contains properties same as HumanTrait trait:
$firstName- first name$lastName- last name$email- email address$birthDate- birth date
New instance
New instance can be created using constructor:
new Human('John', 'Scott', 'john@scott.com', new \DateTime('2001-01-01'));
Methods
Has getters for each property, e.g. getFirstName(), getEmail() etc.
Conversion to string (the __toString() method)
Instance of Human may be represented as string that contains first name, last name and email address (if provided).
Example:
$human1 = new Human('John', 'Scott');
$asString1 = (string)$human1; // "John Scott"
$human2 = new Human('John', 'Scott', 'john@scott.com', new \DateTime('2001-01-01'));
$asString2 = (string)$human2; // "John Scott <john@scott.com>"
Size
Namespace
Meritoo\Common\ValueObject\Size
Info
Size, e.g. of image. Contains properties:
width- the widthheight- the heightunit- unit used when width or height should be returned with unit, default:"px"separator- separator used when converting to string, default:" x "
New instance
New instance can be created using static methods:
-
fromArray()- creates new instance from given array// Using default "px" unit Size::fromArray([200, 100]); // With custom "mm" unit Size::fromArray([200, 100], 'mm'); -
fromString()- creates new instance from given string// Using default "px" unit and default " x " separator Size::fromString('200 x 100'); // With custom "mm" unit and " X " separator Size::fromString('200 X 100', 'mm', ' X ');
Methods
Has:
- getters and setters for
widthandheightproperties. - setter for
separatorproperty toString()andtoArray()methods that returns size represented as string and array
Conversion to string (using __toString() method)
Instance of Size may be represented as string that contains width and height separated by separator (default: " x ").
Example:
$size = Size::fromArray([200, 100]);
// With default separator
$asString1 = (string)$size; // "200 x 100"
// With custom separator
$size->setSeparator('X');
$asString2 = (string)$size; // "200X100"
Version
Namespace
Meritoo\Common\ValueObject\Version
Info
Represents version of software. Contains properties:
$majorPart- the "major" part of version$minorPart- the "minor" part of version$patchPart- the "patch" part of version
New instance
New instance can be created using:
-
Constructor:
new Version(1, 0, 2); -
Static methods:
fromArray()- creates new instance using given version as array
Version::fromArray([1, 0, 2]);fromString()- creates new instance using given version as string:
Version::fromString('1.0.2');
Methods
Has getters for each property: getMajorPart(), getMinorPart(), getPatchPart().
Conversion to string (using __toString() method)
Instance of Version may be represented as string that contains all properties separated by . ($majorPart.$minorPart.$patchPart).
Example:
$version = new Version(1, 0, 2);
$asString = (string)$version; // "1.0.2"