22 Commits

Author SHA1 Message Date
meritoo
b9dfa713ff Apply fixes from StyleCI 2017-09-20 08:29:52 +00:00
Meritoo
94a464cb4d Readme - TravisCI badge - do not support PHP 7.2, because friendsofphp/php-cs-fixer package can be run using PHP lower than 7.2 only
Details:
$ composer install
Your requirements could not be resolved to an installable set of packages
friendsofphp/php-cs-fixer v2.3.2 requires php ^5.6 || >=7.0 <7.2 -> your PHP version (7.3.0-dev) does not satisfy that requirement
2017-09-19 18:09:13 +02:00
Meritoo
463ee751b2 Readme - TravisCI badge - do not support nightly build of PHP, because friendsofphp/php-cs-fixer pacakge cane be run using maximum PHP 7.2
Details:
$ composer install
Your requirements could not be resolved to an installable set of packages
friendsofphp/php-cs-fixer v2.3.2 requires php ^5.6 || >=7.0 <7.2 -> your PHP version (7.3.0-dev) does not satisfy that requirement
2017-09-19 17:55:41 +02:00
Meritoo
89af7145f6 Readme - TravisCI badge - fix bug related to PHP 5.6 while running PHPUnit
Bug:
PHP Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in tests/Meritoo/Common/Test/Utilities/DateTest.php
2017-09-19 17:53:07 +02:00
Meritoo
09c8569938 Readme - TravisCI badge - update configuration file 2017-09-19 17:37:58 +02:00
Meritoo
5ab2cd9de8 Readme - add badges - TravisCI, Packagist, StyleCI, GitHub commits, GitHub license, Coverage 2017-09-19 17:10:03 +02:00
Meritoo
60eff29e82 Readme - update usage information and add examples 2017-09-19 17:06:29 +02:00
Meritoo
5aa5ff4380 BaseTestCase - fix typo 2017-09-16 14:06:19 +02:00
Meritoo
6483a8f5b7 BaseTypeTestCase - base test case for the type of something 2017-09-16 14:02:10 +02:00
Meritoo
5c0ef79b15 TestCase - make abstract & move from namespace Meritoo\Common\Utilities to Meritoo\Common\Test\Base 2017-09-16 14:01:20 +02:00
Meritoo
324f64f912 Tests - modify namespace "Meritoo\Common\Tests" -> "Meritoo\Common\Test" 2017-09-11 19:57:36 +02:00
Meritoo
5940ebba9a PHPUnit - use "Meritoo Package" as project name 2017-09-11 13:33:52 +02:00
Meritoo
787b8c697c Phing - use "Meritoo Package" as project name 2017-09-10 14:16:21 +02:00
Meritoo
96c02cdc3d Tests - verifyMethodVisibilityAndArguments() method - implementation 2017-09-10 10:22:07 +02:00
Meritoo
87d7bff5f5 TestCase - verifyMethodVisibilityAndArguments() method - verify visibility and arguments of method or class constructor 2017-09-10 10:21:28 +02:00
Meritoo
bd7c874e88 Refactor & fix coding standard 2017-09-09 21:33:49 +02:00
Meritoo
e1ffb78214 Collection of elements (class & tests) 2017-09-07 22:17:44 +02:00
Meritoo
d4dc274763 Add missing information about license 2017-09-07 15:17:52 +02:00
Meritoo
aeea1df04b Exception - InvalidUrlException - an exception used while url is invalid 2017-08-30 21:27:36 +02:00
Meritoo
b5e63ff619 Regex - move exceptions related to regular expressions to namespace with "Regex" 2017-08-30 21:25:26 +02:00
Meritoo
ecaebcca0e Remove & ignore the ".idea" folder 2017-08-30 21:07:53 +02:00
Meritoo
17ac1dc72c Readme - update installation instructions 2017-08-29 23:17:55 +02:00
73 changed files with 2656 additions and 1833 deletions

55
.gitignore vendored
View File

@@ -54,60 +54,9 @@
# ---------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------
### JetBrains template ### JetBrains
# ---------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm /.idea
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff:
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/dictionaries
.idea/vcs.xml
.idea/jsLibraryMappings.xml
# Sensitive or high-churn files:
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.xml
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
# Gradle:
.idea/**/gradle.xml
.idea/**/libraries
# CMake
cmake-build-debug/
# Mongo Explorer plugin:
.idea/**/mongoSettings.xml
## File-based project format:
*.iws
## Plugin-specific files:
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# ---------------------------------------------------------------------------------------------------------------------- # ----------------------------------------------------------------------------------------------------------------------

1
.idea/.name generated
View File

@@ -1 +0,0 @@
Common Library (GitHub)

View File

@@ -1,210 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/tests/Meritoo/Common/Tests" isTestSource="false" packagePrefix="Meritoo\Common\Tests\" />
<sourceFolder url="file://$MODULE_DIR$/src/Meritoo/Common" isTestSource="false" packagePrefix="Meritoo\Common\" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/vendor/behat/transliterator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/collections" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/orm" />
<excludeFolder url="file://$MODULE_DIR$/vendor/friendsofphp/php-cs-fixer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/gecko-packages/gecko-php-unit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/gedmo/doctrine-extensions" />
<excludeFolder url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
<excludeFolder url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phploc/phploc" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/finder-facade" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/git" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/phpcpd" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/sebastian/version" />
<excludeFolder url="file://$MODULE_DIR$/vendor/squizlabs/php_codesniffer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/config" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/console" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/debug" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/finder" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/process" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/stopwatch" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<excludeFolder url="file://$MODULE_DIR$/vendor/theseer/fdomdocument" />
<excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library name="PHP" type="php">
<CLASSES>
<root url="file://$MODULE_DIR$/vendor/behat/transliterator" />
<root url="file://$MODULE_DIR$/vendor/composer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
<root url="file://$MODULE_DIR$/vendor/doctrine/cache" />
<root url="file://$MODULE_DIR$/vendor/doctrine/collections" />
<root url="file://$MODULE_DIR$/vendor/doctrine/common" />
<root url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<root url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<root url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<root url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/orm" />
<root url="file://$MODULE_DIR$/vendor/friendsofphp/php-cs-fixer" />
<root url="file://$MODULE_DIR$/vendor/gecko-packages/gecko-php-unit" />
<root url="file://$MODULE_DIR$/vendor/gedmo/doctrine-extensions" />
<root url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<root url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
<root url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<root url="file://$MODULE_DIR$/vendor/phploc/phploc" />
<root url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<root url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<root url="file://$MODULE_DIR$/vendor/psr/container" />
<root url="file://$MODULE_DIR$/vendor/psr/log" />
<root url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<root url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<root url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<root url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<root url="file://$MODULE_DIR$/vendor/sebastian/finder-facade" />
<root url="file://$MODULE_DIR$/vendor/sebastian/git" />
<root url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<root url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/phpcpd" />
<root url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<root url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<root url="file://$MODULE_DIR$/vendor/sebastian/version" />
<root url="file://$MODULE_DIR$/vendor/squizlabs/php_codesniffer" />
<root url="file://$MODULE_DIR$/vendor/symfony/config" />
<root url="file://$MODULE_DIR$/vendor/symfony/console" />
<root url="file://$MODULE_DIR$/vendor/symfony/debug" />
<root url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<root url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
<root url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<root url="file://$MODULE_DIR$/vendor/symfony/finder" />
<root url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
<root url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
<root url="file://$MODULE_DIR$/vendor/symfony/process" />
<root url="file://$MODULE_DIR$/vendor/symfony/stopwatch" />
<root url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<root url="file://$MODULE_DIR$/vendor/theseer/fdomdocument" />
<root url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</CLASSES>
<SOURCES>
<root url="file://$MODULE_DIR$/vendor/behat/transliterator" />
<root url="file://$MODULE_DIR$/vendor/composer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
<root url="file://$MODULE_DIR$/vendor/doctrine/cache" />
<root url="file://$MODULE_DIR$/vendor/doctrine/collections" />
<root url="file://$MODULE_DIR$/vendor/doctrine/common" />
<root url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<root url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<root url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<root url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<root url="file://$MODULE_DIR$/vendor/doctrine/orm" />
<root url="file://$MODULE_DIR$/vendor/friendsofphp/php-cs-fixer" />
<root url="file://$MODULE_DIR$/vendor/gecko-packages/gecko-php-unit" />
<root url="file://$MODULE_DIR$/vendor/gedmo/doctrine-extensions" />
<root url="file://$MODULE_DIR$/vendor/myclabs/deep-copy" />
<root url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
<root url="file://$MODULE_DIR$/vendor/pdepend/pdepend" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<root url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<root url="file://$MODULE_DIR$/vendor/phploc/phploc" />
<root url="file://$MODULE_DIR$/vendor/phpmd/phpmd" />
<root url="file://$MODULE_DIR$/vendor/phpspec/prophecy" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-code-coverage" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-file-iterator" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-text-template" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<root url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<root url="file://$MODULE_DIR$/vendor/phpunit/phpunit-mock-objects" />
<root url="file://$MODULE_DIR$/vendor/psr/container" />
<root url="file://$MODULE_DIR$/vendor/psr/log" />
<root url="file://$MODULE_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<root url="file://$MODULE_DIR$/vendor/sebastian/comparator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/diff" />
<root url="file://$MODULE_DIR$/vendor/sebastian/environment" />
<root url="file://$MODULE_DIR$/vendor/sebastian/exporter" />
<root url="file://$MODULE_DIR$/vendor/sebastian/finder-facade" />
<root url="file://$MODULE_DIR$/vendor/sebastian/git" />
<root url="file://$MODULE_DIR$/vendor/sebastian/global-state" />
<root url="file://$MODULE_DIR$/vendor/sebastian/object-enumerator" />
<root url="file://$MODULE_DIR$/vendor/sebastian/phpcpd" />
<root url="file://$MODULE_DIR$/vendor/sebastian/recursion-context" />
<root url="file://$MODULE_DIR$/vendor/sebastian/resource-operations" />
<root url="file://$MODULE_DIR$/vendor/sebastian/version" />
<root url="file://$MODULE_DIR$/vendor/squizlabs/php_codesniffer" />
<root url="file://$MODULE_DIR$/vendor/symfony/config" />
<root url="file://$MODULE_DIR$/vendor/symfony/console" />
<root url="file://$MODULE_DIR$/vendor/symfony/debug" />
<root url="file://$MODULE_DIR$/vendor/symfony/dependency-injection" />
<root url="file://$MODULE_DIR$/vendor/symfony/event-dispatcher" />
<root url="file://$MODULE_DIR$/vendor/symfony/filesystem" />
<root url="file://$MODULE_DIR$/vendor/symfony/finder" />
<root url="file://$MODULE_DIR$/vendor/symfony/http-foundation" />
<root url="file://$MODULE_DIR$/vendor/symfony/options-resolver" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
<root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php72" />
<root url="file://$MODULE_DIR$/vendor/symfony/process" />
<root url="file://$MODULE_DIR$/vendor/symfony/stopwatch" />
<root url="file://$MODULE_DIR$/vendor/symfony/yaml" />
<root url="file://$MODULE_DIR$/vendor/theseer/fdomdocument" />
<root url="file://$MODULE_DIR$/vendor/webmozart/assert" />
</SOURCES>
</library>
</orderEntry>
</component>
</module>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ComposerJsonPluginSettings">
<unboundedVersionInspectionSettings>
<excludedPackages />
</unboundedVersionInspectionSettings>
<customRepositories />
</component>
</project>

6
.idea/encodings.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

8
.idea/modules.xml generated
View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Common Library (GitHub).iml" filepath="$PROJECT_DIR$/.idea/Common Library (GitHub).iml" />
</modules>
</component>
</project>

75
.idea/php.xml generated
View File

@@ -1,75 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/vendor/doctrine/annotations" />
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/vendor/doctrine/common" />
<path value="$PROJECT_DIR$/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/doctrine/collections" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/phpspec/prophecy" />
<path value="$PROJECT_DIR$/vendor/symfony/yaml" />
<path value="$PROJECT_DIR$/vendor/symfony/config" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/symfony/stopwatch" />
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/vendor/behat/transliterator" />
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php70" />
<path value="$PROJECT_DIR$/vendor/theseer/fdomdocument" />
<path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" />
<path value="$PROJECT_DIR$/vendor/symfony/debug" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
<path value="$PROJECT_DIR$/vendor/symfony/options-resolver" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/symfony/process" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit-mock-objects" />
<path value="$PROJECT_DIR$/vendor/gecko-packages/gecko-php-unit" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
<path value="$PROJECT_DIR$/vendor/sebastian/finder-facade" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/sebastian/git" />
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/vendor/friendsofphp/php-cs-fixer" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
<path value="$PROJECT_DIR$/vendor/doctrine/orm" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
<path value="$PROJECT_DIR$/vendor/pdepend/pdepend" />
<path value="$PROJECT_DIR$/vendor/sebastian/phpcpd" />
<path value="$PROJECT_DIR$/vendor/phploc/phploc" />
<path value="$PROJECT_DIR$/vendor/squizlabs/php_codesniffer" />
<path value="$PROJECT_DIR$/vendor/phpmd/phpmd" />
<path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/gedmo/doctrine-extensions" />
</include_path>
</component>
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings load_method="CUSTOM_LOADER" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="" />
</phpunit_settings>
</component>
</project>

14
.idea/webResources.xml generated
View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WebResourcesPaths">
<contentEntries>
<entry url="file://$PROJECT_DIR$">
<entryData>
<resourceRoots>
<path value="file://$PROJECT_DIR$/data" />
</resourceRoots>
</entryData>
</entry>
</contentEntries>
</component>
</project>

1
.styleci.yml Normal file
View File

@@ -0,0 +1 @@
preset: symfony

12
.travis.yml Normal file
View File

@@ -0,0 +1,12 @@
language: php
php:
- 5.6
- 7.0
- 7.1
install:
- composer install
script:
- php ./vendor/bin/phpunit

103
README.md
View File

@@ -1,22 +1,9 @@
# Meritoo Common Library # Meritoo Common Library [![Travis](https://img.shields.io/travis/rust-lang/rust.svg?style=flat-square)](https://travis-ci.org/meritoo/common-library) [![Packagist](https://img.shields.io/packagist/v/meritoo/common-library.svg?style=flat-square)](https://packagist.org/packages/meritoo/common-library) [![StyleCI](https://styleci.io/repos/101790028/shield?branch=master)](https://styleci.io/repos/101790028) [![license](https://img.shields.io/github/license/meritoo/common-library.svg?style=flat-square)](https://github.com/meritoo/common-library) [![GitHub commits](https://img.shields.io/github/commits-since/meritoo/common-library/0.0.1.svg?style=flat-square)](https://github.com/meritoo/common-library) [![Coverage Status](https://coveralls.io/repos/github/meritoo/common-library/badge.svg?branch=master)](https://coveralls.io/github/meritoo/common-library?branch=master)
Useful classes, methods, extensions etc. Useful classes, methods, extensions etc.
## Installation ## Installation
#### Composer Run [Composer](https://getcomposer.org) to install new package:
1. Open ```composer.json``` and add address of repository in ```repositories``` section:
```json
"repositories": [
{
"type": "vcs",
"url": "git@github.com:meritoo/common-library.git"
}
]
```
2. Run [Composer](https://getcomposer.org) to install new package:
```bash ```bash
$ composer require meritoo/common-library $ composer require meritoo/common-library
@@ -24,15 +11,93 @@ Useful classes, methods, extensions etc.
> How to install Composer: https://getcomposer.org/download > How to install Composer: https://getcomposer.org/download
## Usage ## Static methods
This package contains a lot of static methods, so usage is not so complicated. Just run the static method who would you like to use. Example: 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:
```php ```php
use Meritoo\Common\Utilities\Arrays; use Meritoo\Common\Utilities\Arrays;
$firstElement = Arrays::getFirstElement(['lorem' 'ipsum']); $firstElement = Arrays::getFirstElement(['lorem', 'ipsum']);
// result: "lorem" 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:
```php
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:
```php
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 collection
- `getLast()` - returns the last element in the collection
- `isEmpty()` - returns information if collection is empty
- `add($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
```php
use Meritoo\Common\Collection\Collection;
$emptyCollection = new Collection();
var_dump($emptyCollection->isEmpty()); // bool(true)
```
#### Simple collection
```php
use Meritoo\Common\Collection\Collection;
$elements = [
'lorem',
'ipsum',
123 => 'dolor',
345 => 'sit',
];
$simpleCollection = new Collection($elements);
var_dump($simpleCollection->has('dolor')); // bool(true)
``` ```
Enjoy! Enjoy!

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project name="Meritoo Common Library" basedir="." default="build:main" phingVersion="2.14.0"> <project name="Meritoo Package" basedir="." default="build:main" phingVersion="2.14.0">
<!-- Properties --> <!-- Properties -->
<if> <if>
<available file="phing/properties" property="custom.properties.available"/> <available file="phing/properties" property="custom.properties.available"/>

View File

@@ -2,7 +2,7 @@
"name": "meritoo/common-library", "name": "meritoo/common-library",
"description": "Useful classes, methods, extensions etc.", "description": "Useful classes, methods, extensions etc.",
"license": "MIT", "license": "MIT",
"version": "0.0.1", "version": "0.0.7",
"authors": [ "authors": [
{ {
"name": "Meritoo.pl", "name": "Meritoo.pl",
@@ -28,7 +28,7 @@
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Meritoo\\Common\\": "src/Meritoo/Common/", "Meritoo\\Common\\": "src/Meritoo/Common/",
"Meritoo\\Common\\Tests\\": "tests/Meritoo/Common/Tests/" "Meritoo\\Common\\Test\\": "tests/Meritoo/Common/Test/"
} }
} }
} }

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project name="Meritoo Common Library" basedir="." default="build:main" phingVersion="2.14.0"> <project name="Meritoo Package" basedir="." default="build:main" phingVersion="2.14.0">
<!-- Properties --> <!-- Properties -->
<if> <if>
<available file="phing/properties" property="custom.properties.available"/> <available file="phing/properties" property="custom.properties.available"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project name="Meritoo Common Library" basedir="." default="build:main" phingVersion="2.14.0"> <project name="Meritoo Package" basedir="." default="build:main" phingVersion="2.14.0">
<!-- <!--
The AutoloaderTask is required to load binaries installed by Composer. The AutoloaderTask is required to load binaries installed by Composer.
The "autoloaderpath" attribute of this task is not required, because it's default value is: vendor/autoload.php. The "autoloaderpath" attribute of this task is not required, because it's default value is: vendor/autoload.php.

View File

@@ -12,7 +12,7 @@
bootstrap="./vendor/autoload.php" bootstrap="./vendor/autoload.php"
> >
<testsuites> <testsuites>
<testsuite name="Meritoo's Common Library Test Suite"> <testsuite name="Meritoo Package - Main Test Suite">
<directory>./tests/</directory> <directory>./tests/</directory>
</testsuite> </testsuite>
</testsuites> </testsuites>

View File

@@ -0,0 +1,295 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Collection;
use ArrayAccess;
use ArrayIterator;
use Countable;
use IteratorAggregate;
use Meritoo\Common\Utilities\Arrays;
/**
* Collection of elements.
* It's a set of some elements, e.g. objects.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class Collection implements Countable, ArrayAccess, IteratorAggregate
{
/**
* The elements of collection.
*
* @var array
*/
private $elements;
/**
* Class constructor.
*
* @param array $elements (optional) The elements of collection
*/
public function __construct(array $elements = [])
{
$this->elements = $elements;
}
/**
* {@inheritdoc}
* Required by interface Countable.
*/
public function count()
{
return count($this->elements);
}
/**
* {@inheritdoc}
* Required by interface ArrayAccess.
*/
public function offsetExists($offset)
{
return $this->exists($offset);
}
/**
* {@inheritdoc}
* Required by interface ArrayAccess.
*/
public function offsetGet($offset)
{
if ($this->exists($offset)) {
return $this->elements[$offset];
}
return null;
}
/**
* {@inheritdoc}
* Required by interface ArrayAccess.
*/
public function offsetSet($offset, $value)
{
$this->elements[$offset] = $value;
}
/**
* {@inheritdoc}
* Required by interface ArrayAccess.
*/
public function offsetUnset($offset)
{
if ($this->exists($offset)) {
unset($this->elements[$offset]);
}
}
/**
* {@inheritdoc}
* Required by interface IteratorAggregate.
*/
public function getIterator()
{
return new ArrayIterator($this->elements);
}
/**
* Adds given element (at the end of collection).
*
* @param mixed $element The element to add
* @param mixed $index (optional) Index / key of the element
*
* @return $this
*/
public function add($element, $index = null)
{
if ($index === null) {
$this->elements[] = $element;
} else {
$this->elements[$index] = $element;
}
return $this;
}
/**
* Adds given elements (at the end of collection).
*
* @param array|Collection $elements The elements to add
* @param bool|false $useIndexes (optional) If is set to true, indexes of given elements will be used in
* this collection. Otherwise - not.
*
* @return $this
*/
public function addMultiple($elements, $useIndexes = false)
{
if (!empty($elements)) {
foreach ($elements as $index => $element) {
if (!$useIndexes) {
$index = null;
}
$this->add($element, $index);
}
}
return $this;
}
/**
* Prepends given element (adds given element at the beginning of collection).
*
* @param mixed $element The element to prepend
*
* @return $this
*/
public function prepend($element)
{
array_unshift($this->elements, $element);
return $this;
}
/**
* Removes given element.
*
* @param mixed $element The element to remove
*
* @return $this
*/
public function remove($element)
{
if ($this->count() > 0) {
foreach ($this->elements as $index => $existing) {
if ($element === $existing) {
unset($this->elements[$index]);
break;
}
}
}
return $this;
}
/**
* Returns information if collection is empty.
*
* @return bool
*/
public function isEmpty()
{
return empty($this->elements);
}
/**
* Returns information if given element is first in the collection.
*
* @param mixed $element The element to verify
*
* @return bool
*/
public function isFirst($element)
{
return reset($this->elements) === $element;
}
/**
* Returns information if given element is last in the collection.
*
* @param mixed $element The element to verify
*
* @return bool
*/
public function isLast($element)
{
return end($this->elements) === $element;
}
/**
* Returns information if the collection has given element, iow. if given element exists in the collection.
*
* @param mixed $element The element to verify
*
* @return bool
*/
public function has($element)
{
$index = Arrays::getIndexOf($this->elements, $element);
return $index !== null && $index !== false;
}
/**
* Returns previous element for given element.
*
* @param mixed $element The element to verify
*
* @return mixed|null
*/
public function getPrevious($element)
{
return Arrays::getPreviousElement($this->elements, $element);
}
/**
* Returns next element for given element.
*
* @param mixed $element The element to verify
*
* @return mixed|null
*/
public function getNext($element)
{
return Arrays::getNextElement($this->elements, $element);
}
/**
* Returns the first element in the collection.
*
* @return mixed
*/
public function getFirst()
{
return Arrays::getFirstElement($this->elements);
}
/**
* Returns the last element in the collection.
*
* @return mixed
*/
public function getLast()
{
return Arrays::getLastElement($this->elements);
}
/**
* Returns an array representation of the collection.
*
* @return array
*/
public function toArray()
{
return $this->elements;
}
/**
* Returns information if element with given index/key exists.
*
* @param string|int $index The index/key of element
*
* @return bool
*/
private function exists($index)
{
return isset($this->elements[$index]) || array_key_exists($index, $this->elements);
}
}

View File

@@ -13,7 +13,7 @@ use Meritoo\Common\Type\Base\BaseType;
use Meritoo\Common\Utilities\Arrays; use Meritoo\Common\Utilities\Arrays;
/** /**
* An exception used while type of something is unknown * An exception used while type of something is unknown.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -21,7 +21,7 @@ use Meritoo\Common\Utilities\Arrays;
abstract class UnknownTypeException extends Exception abstract class UnknownTypeException extends Exception
{ {
/** /**
* Class constructor * Class constructor.
* *
* @param string|int $unknownType The unknown type of something (value of constant) * @param string|int $unknownType The unknown type of something (value of constant)
* @param BaseType $typeInstance An instance of class that contains type of the something * @param BaseType $typeInstance An instance of class that contains type of the something

View File

@@ -1,32 +0,0 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Exception\Date;
use Exception;
/**
* An exception used while given part of date is incorrect, e.g. value of year is incorrect
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class IncorrectDatePartException extends Exception
{
/**
* Class constructor
*
* @param string $value Incorrect value
* @param string $datePart Type of date part, e.g. "year". One of \Meritoo\Common\Type\DatePartType class constants.
*/
public function __construct($value, $datePart)
{
$message = sprintf('Value of %s \'%s\' is incorrect. Is there everything ok?', $datePart, $value);
parent::__construct($message);
}
}

View File

@@ -0,0 +1,32 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Exception\Date;
use Meritoo\Common\Exception\Base\UnknownTypeException;
use Meritoo\Common\Type\DatePartType;
/**
* An exception used while type of date part, e.g. "year", is unknown.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UnknownDatePartTypeException extends UnknownTypeException
{
/**
* Class constructor.
*
* @param string $unknownDatePart Type of date part, e.g. "year". One of DatePartType class constants.
* @param string $value Incorrect value
*/
public function __construct($unknownDatePart, $value)
{
parent::__construct($unknownDatePart, new DatePartType(), sprintf('date part (with value %s)', $value));
}
}

View File

@@ -11,7 +11,7 @@ namespace Meritoo\Common\Exception\Reflection;
use Exception; use Exception;
/** /**
* An exception used while name of class or trait cannot be resolved * An exception used while name of class or trait cannot be resolved.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -19,7 +19,7 @@ use Exception;
class CannotResolveClassNameException extends Exception class CannotResolveClassNameException extends Exception
{ {
/** /**
* Class constructor * Class constructor.
* *
* @param array|object|string $source Source of the class's / trait's name. It cane be an array of objects, * @param array|object|string $source Source of the class's / trait's name. It cane be an array of objects,
* namespaces, object or namespace. * namespaces, object or namespace.

View File

@@ -12,7 +12,7 @@ use Exception;
use Meritoo\Common\Utilities\Reflection; use Meritoo\Common\Utilities\Reflection;
/** /**
* An exception used while given class has no child classes * An exception used while given class has no child classes.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -20,7 +20,7 @@ use Meritoo\Common\Utilities\Reflection;
class MissingChildClassesException extends Exception class MissingChildClassesException extends Exception
{ {
/** /**
* Class constructor * Class constructor.
* *
* @param array|object|string $parentClass Class that hasn't child classes, but it should. An array of objects, * @param array|object|string $parentClass Class that hasn't child classes, but it should. An array of objects,
* strings, object or string. * strings, object or string.

View File

@@ -12,7 +12,7 @@ use Exception;
use Meritoo\Common\Utilities\Reflection; use Meritoo\Common\Utilities\Reflection;
/** /**
* An exception used while given class has more than one child class * An exception used while given class has more than one child class.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -20,7 +20,7 @@ use Meritoo\Common\Utilities\Reflection;
class TooManyChildClassesException extends Exception class TooManyChildClassesException extends Exception
{ {
/** /**
* Class constructor * Class constructor.
* *
* @param array|object|string $parentClass Class that has more than one child class, but it shouldn't. An array * @param array|object|string $parentClass Class that has more than one child class, but it shouldn't. An array
* of objects, strings, object or string. * of objects, strings, object or string.

View File

@@ -6,10 +6,10 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Exception; namespace Meritoo\Common\Exception\Regex;
/** /**
* An exception used while length of given hexadecimal value of color is incorrect * An exception used while length of given hexadecimal value of color is incorrect.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -17,7 +17,7 @@ namespace Meritoo\Common\Exception;
class IncorrectColorHexLengthException extends \Exception class IncorrectColorHexLengthException extends \Exception
{ {
/** /**
* Class constructor * Class constructor.
* *
* @param string $color Incorrect hexadecimal value of color * @param string $color Incorrect hexadecimal value of color
*/ */

View File

@@ -6,10 +6,10 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Exception; namespace Meritoo\Common\Exception\Regex;
/** /**
* An exception used while given hexadecimal value of color is incorrect * An exception used while given hexadecimal value of color is invalid.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -17,13 +17,13 @@ namespace Meritoo\Common\Exception;
class InvalidColorHexValueException extends \Exception class InvalidColorHexValueException extends \Exception
{ {
/** /**
* Class constructor * Class constructor.
* *
* @param string $color Incorrect hexadecimal value of color * @param string $color Invalid hexadecimal value of color
*/ */
public function __construct($color) public function __construct($color)
{ {
$message = sprintf('Hexadecimal value of color \'%s\' is incorrect. Is there everything ok?', $color); $message = sprintf('Hexadecimal value of color \'%s\' is invalid. Is there everything ok?', $color);
parent::__construct($message); parent::__construct($message);
} }
} }

View File

@@ -0,0 +1,23 @@
<?php
namespace Meritoo\Common\Exception\Regex;
/**
* An exception used while url is invalid.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class InvalidUrlException extends \Exception
{
/**
* Class constructor.
*
* @param string $url Invalid url
*/
public function __construct($url)
{
$message = sprintf('Url \'%s\' is invalid. Is there everything ok?', $url);
parent::__construct($message);
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace Meritoo\Common\Exception\Type;
use Meritoo\Common\Exception\Base\UnknownTypeException;
use Meritoo\Common\Type\OopVisibilityType;
/**
* An exception used while the visibility of a property, a method or (as of PHP 7.1.0) a constant is unknown.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class UnknownOopVisibilityTypeException extends UnknownTypeException
{
/**
* {@inheritdoc}
*/
public function __construct($unknownType)
{
parent::__construct($unknownType, new OopVisibilityType(), 'OOP-related visibility');
}
}

View File

@@ -0,0 +1,205 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Base;
use DateTime;
use Generator;
use Meritoo\Common\Exception\Type\UnknownOopVisibilityTypeException;
use Meritoo\Common\Type\OopVisibilityType;
use PHPUnit_Framework_TestCase;
use ReflectionClass;
use ReflectionMethod;
/**
* Base test case with common methods and data providers.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
abstract class BaseTestCase extends PHPUnit_Framework_TestCase
{
/**
* Provides an empty value.
*
* @return Generator
*/
public function provideEmptyValue()
{
yield[''];
yield[' '];
yield[null];
yield[0];
yield[false];
yield[[]];
}
/**
* Provides boolean value.
*
* @return Generator
*/
public function provideBooleanValue()
{
yield[false];
yield[true];
}
/**
* Provides instance of DateTime class.
*
* @return Generator
*/
public function provideDateTimeInstance()
{
yield[new DateTime()];
yield[new DateTime('yesterday')];
yield[new DateTime('now')];
yield[new DateTime('tomorrow')];
}
/**
* Provides relative / compound format of DateTime.
*
* @return Generator
*/
public function provideDateTimeRelativeFormat()
{
yield['now'];
yield['yesterday'];
yield['tomorrow'];
yield['back of 10'];
yield['front of 10'];
yield['last day of February'];
yield['first day of next month'];
yield['last day of previous month'];
yield['last day of next month'];
yield['Y-m-d'];
yield['Y-m-d 10:00'];
}
/**
* Provides path of not existing file, e.g. "lorem/ipsum.jpg".
*
* @return Generator
*/
public function provideNotExistingFilePath()
{
yield['lets-test.doc'];
yield['lorem/ipsum.jpg'];
yield['surprise/me/one/more/time.txt'];
}
/**
* Returns path of file used by tests.
* It should be placed in /data/tests directory of this project.
*
* @param string $fileName Name of file
* @param string $directoryPath (optional) Path of directory containing the file
*
* @return string
*/
public function getFilePathToTests($fileName, $directoryPath = '')
{
if (!empty($directoryPath)) {
$directoryPath = '/'.$directoryPath;
}
return sprintf('%s/../../../../../data/tests/%s%s', __DIR__, $fileName, $directoryPath);
}
/**
* Verifies visibility and arguments of method.
*
* @param string $classNamespace Namespace of class that contains method to verify
* @param string|ReflectionMethod $method Name of method or just the method to verify
* @param string $visibilityType Expected visibility of verified method. One of
* OopVisibilityType class constants.
* @param int $argumentsCount (optional) Expected count/amount of arguments of the
* verified method
* @param int $requiredArgumentsCount (optional) Expected count/amount of required arguments
* of the verified method
*
* @throws UnknownOopVisibilityTypeException
*
* Attention. 2nd argument, the $method, may be:
* - string - name of the method
* - instance of ReflectionMethod - just the method (provided by ReflectionClass::getMethod() method)
*/
protected function verifyMethodVisibilityAndArguments(
$classNamespace,
$method,
$visibilityType,
$argumentsCount = 0,
$requiredArgumentsCount = 0
) {
/*
* Type of visibility is correct?
*/
if (!(new OopVisibilityType())->isCorrectType($visibilityType)) {
throw new UnknownOopVisibilityTypeException($visibilityType);
}
$reflection = new ReflectionClass($classNamespace);
/*
* Name of method provided only?
* Let's find instance of the method (based on reflection)
*/
if (!$method instanceof ReflectionMethod) {
$method = $reflection->getMethod($method);
}
switch ($visibilityType) {
case OopVisibilityType::IS_PUBLIC:
static::assertTrue($method->isPublic());
break;
case OopVisibilityType::IS_PROTECTED:
static::assertTrue($method->isProtected());
break;
case OopVisibilityType::IS_PRIVATE:
static::assertTrue($method->isPrivate());
break;
}
static::assertEquals($argumentsCount, $method->getNumberOfParameters());
static::assertEquals($requiredArgumentsCount, $method->getNumberOfRequiredParameters());
}
/**
* Verifies visibility and arguments of class constructor.
*
* @param string $classNamespace Namespace of class that contains method to verify
* @param string $visibilityType Expected visibility of verified method. One of OopVisibilityType class
* constants.
* @param int $argumentsCount (optional) Expected count/amount of arguments of the verified method
* @param int $requiredArgumentsCount (optional) Expected count/amount of required arguments of the verified
* method
*
* @throws UnknownOopVisibilityTypeException
*/
protected function verifyConstructorVisibilityAndArguments(
$classNamespace,
$visibilityType,
$argumentsCount = 0,
$requiredArgumentsCount = 0
) {
/*
* Let's grab the constructor
*/
$reflection = new ReflectionClass($classNamespace);
$method = $reflection->getConstructor();
return $this->verifyMethodVisibilityAndArguments($classNamespace, $method, $visibilityType, $argumentsCount, $requiredArgumentsCount);
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace Meritoo\Common\Test\Base;
use Generator;
use Meritoo\Common\Type\Base\BaseType;
/**
* Base test case for the type of something.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
abstract class BaseTypeTestCase extends BaseTestCase
{
/**
* Verifies availability of all types.
*/
public function testAvailabilityOfAllTypes()
{
$available = $this->getTestedTypeInstance()->getAll();
$all = $this->getAllExpectedTypes();
static::assertEquals($all, $available);
}
/**
* Verifies whether given type is correct or not.
*
* @param string $type Type to verify
* @param bool $expected Information if given type is correct or not
*
* @dataProvider provideTypeToVerify
*/
public function testIfGivenTypeIsCorrect($type, $expected)
{
static::assertEquals($expected, $this->getTestedTypeInstance()->isCorrectType($type));
}
/**
* Provides type to verify and information if it's correct.
*
* @return Generator
*/
abstract public function provideTypeToVerify();
/**
* Returns instance of the tested type.
*
* @return BaseType
*/
abstract protected function getTestedTypeInstance();
/**
* Returns all expected types of the tested type.
*
* @return array
*/
abstract protected function getAllExpectedTypes();
}

View File

@@ -20,14 +20,14 @@ use Meritoo\Common\Utilities\Reflection;
abstract class BaseType abstract class BaseType
{ {
/** /**
* All types * All types.
* *
* @var array * @var array
*/ */
private $all; private $all;
/** /**
* Returns all types * Returns all types.
* *
* @return array * @return array
*/ */
@@ -41,9 +41,10 @@ abstract class BaseType
} }
/** /**
* Returns information if given type is correct * Returns information if given type is correct.
* *
* @param string $type The type to check * @param string $type The type to check
*
* @return bool * @return bool
*/ */
public function isCorrectType($type) public function isCorrectType($type)

View File

@@ -1,11 +1,17 @@
<?php <?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Type; namespace Meritoo\Common\Type;
use Meritoo\Common\Type\Base\BaseType; use Meritoo\Common\Type\Base\BaseType;
/** /**
* Type of date part, e.g. "year" * Type of date part, e.g. "year".
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -13,42 +19,42 @@ use Meritoo\Common\Type\Base\BaseType;
class DatePartType extends BaseType class DatePartType extends BaseType
{ {
/** /**
* The "day" date part * The "day" date part.
* *
* @var string * @var string
*/ */
const DAY = 'day'; const DAY = 'day';
/** /**
* The "hour" date part * The "hour" date part.
* *
* @var string * @var string
*/ */
const HOUR = 'hour'; const HOUR = 'hour';
/** /**
* The "minute" date part * The "minute" date part.
* *
* @var string * @var string
*/ */
const MINUTE = 'minute'; const MINUTE = 'minute';
/** /**
* The "month" date part * The "month" date part.
* *
* @var string * @var string
*/ */
const MONTH = 'month'; const MONTH = 'month';
/** /**
* The "second" date part * The "second" date part.
* *
* @var string * @var string
*/ */
const SECOND = 'second'; const SECOND = 'second';
/** /**
* The "year" date part * The "year" date part.
* *
* @var string * @var string
*/ */

View File

@@ -0,0 +1,37 @@
<?php
namespace Meritoo\Common\Type;
use Meritoo\Common\Type\Base\BaseType;
/**
* The visibility of a property, a method or (as of PHP 7.1.0) a constant.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*
* @see http://php.net/manual/en/language.oop5.visibility.php
*/
class OopVisibilityType extends BaseType
{
/**
* The "private" visibility of OOP.
*
* @var int
*/
const IS_PRIVATE = 3;
/**
* The "protected" visibility of OOP.
*
* @var int
*/
const IS_PROTECTED = 2;
/**
* The "public" visibility of OOP.
*
* @var int
*/
const IS_PUBLIC = 1;
}

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities; namespace Meritoo\Common\Utilities;
/** /**
* Useful arrays methods * Useful arrays methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -17,7 +17,7 @@ namespace Meritoo\Common\Utilities;
class Arrays class Arrays
{ {
/** /**
* Name of the array's key used to store position of element of the array * Name of the array's key used to store position of element of the array.
* *
* @var string * @var string
*/ */
@@ -30,6 +30,7 @@ class Arrays
* @param array $array Array data to be converted * @param array $array Array data to be converted
* @param string|int $arrayColumnKey (optional) Column name * @param string|int $arrayColumnKey (optional) Column name
* @param string $separator (optional) Separator used in resultant string * @param string $separator (optional) Separator used in resultant string
*
* @return string * @return string
*/ */
public static function values2string(array $array, $arrayColumnKey = '', $separator = ',') public static function values2string(array $array, $arrayColumnKey = '', $separator = ',')
@@ -79,12 +80,13 @@ class Arrays
} }
/** /**
* Converts given array to string with keys, e.g. abc=1&def=2 or abc="1" def="2" * Converts given array to string with keys, e.g. abc=1&def=2 or abc="1" def="2".
* *
* @param array $array Array data to be converted * @param array $array Array data to be converted
* @param string $separator (optional) Separator used between name-value pairs in resultant string * @param string $separator (optional) Separator used between name-value pairs in resultant string
* @param string $valuesKeysSeparator (optional) Separator used between name and value in resultant string * @param string $valuesKeysSeparator (optional) Separator used between name and value in resultant string
* @param string $valuesWrapper (optional) Wrapper used to wrap values, e.g. double-quote: key="value" * @param string $valuesWrapper (optional) Wrapper used to wrap values, e.g. double-quote: key="value"
*
* @return string * @return string
*/ */
public static function valuesKeys2string($array, $separator = ',', $valuesKeysSeparator = '=', $valuesWrapper = '') public static function valuesKeys2string($array, $separator = ',', $valuesKeysSeparator = '=', $valuesWrapper = '')
@@ -109,10 +111,11 @@ class Arrays
} }
/** /**
* Converts given array's rows to csv string * Converts given array's rows to csv string.
* *
* @param array $array Array data to be converted. It have to be an array that represents database table. * @param array $array Array data to be converted. It have to be an array that represents database table.
* @param string $separator (optional) Separator used in resultant string * @param string $separator (optional) Separator used in resultant string
*
* @return string * @return string
*/ */
public static function values2csv($array, $separator = ',') public static function values2csv($array, $separator = ',')
@@ -145,12 +148,13 @@ class Arrays
} }
/** /**
* Returns information if given element is the first one * Returns information if given element is the first one.
* *
* @param array $array The array to get the first element of * @param array $array The array to get the first element of
* @param mixed $element The element to check / verify * @param mixed $element The element to check / verify
* @param bool $firstLevelOnly (optional) If is set to true, first element is returned. Otherwise - totally * @param bool $firstLevelOnly (optional) If is set to true, first element is returned. Otherwise - totally
* first element is returned (first of the First array). * first element is returned (first of the First array).
*
* @return bool * @return bool
*/ */
public static function isFirstElement(array $array, $element, $firstLevelOnly = true) public static function isFirstElement(array $array, $element, $firstLevelOnly = true)
@@ -161,7 +165,7 @@ class Arrays
} }
/** /**
* Returns the first element of given array * Returns the first element of given array.
* *
* It may be first element of given array or the totally first element from the all elements (first element of the * It may be first element of given array or the totally first element from the all elements (first element of the
* first array). * first array).
@@ -169,6 +173,7 @@ class Arrays
* @param array $array The array to get the first element of * @param array $array The array to get the first element of
* @param bool $firstLevelOnly (optional) If is set to true, first element is returned. Otherwise - totally * @param bool $firstLevelOnly (optional) If is set to true, first element is returned. Otherwise - totally
* first element is returned (first of the first array). * first element is returned (first of the first array).
*
* @return mixed * @return mixed
*/ */
public static function getFirstElement(array $array, $firstLevelOnly = true) public static function getFirstElement(array $array, $firstLevelOnly = true)
@@ -192,9 +197,10 @@ class Arrays
} }
/** /**
* Returns first key of array * Returns first key of array.
* *
* @param array $array The array to get the first key of * @param array $array The array to get the first key of
*
* @return mixed * @return mixed
*/ */
public static function getFirstKey(array $array) public static function getFirstKey(array $array)
@@ -213,12 +219,13 @@ class Arrays
} }
/** /**
* Returns information if given element is the last one * Returns information if given element is the last one.
* *
* @param array $array The array to get the last element of * @param array $array The array to get the last element of
* @param mixed $element The element to check / verify * @param mixed $element The element to check / verify
* @param bool $firstLevelOnly (optional) If is set to true, last element is returned. Otherwise - totally * @param bool $firstLevelOnly (optional) If is set to true, last element is returned. Otherwise - totally
* last element is returned (last of the latest array). * last element is returned (last of the latest array).
*
* @return bool * @return bool
*/ */
public static function isLastElement(array $array, $element, $firstLevelOnly = true) public static function isLastElement(array $array, $element, $firstLevelOnly = true)
@@ -229,7 +236,7 @@ class Arrays
} }
/** /**
* Returns the last element of given array * Returns the last element of given array.
* *
* It may be last element of given array or the totally last element from the all elements (last element of the * It may be last element of given array or the totally last element from the all elements (last element of the
* latest array). * latest array).
@@ -237,6 +244,7 @@ class Arrays
* @param array $array The array to get the last element of * @param array $array The array to get the last element of
* @param bool $firstLevelOnly (optional) If is set to true, last element is returned. Otherwise - totally * @param bool $firstLevelOnly (optional) If is set to true, last element is returned. Otherwise - totally
* last element is returned (last of the latest array). * last element is returned (last of the latest array).
*
* @return mixed * @return mixed
*/ */
public static function getLastElement(array $array, $firstLevelOnly = true) public static function getLastElement(array $array, $firstLevelOnly = true)
@@ -259,10 +267,11 @@ class Arrays
} }
/** /**
* Returns breadcrumb (a path) to the last element of array * Returns breadcrumb (a path) to the last element of array.
* *
* @param array $array The array to get the breadcrumb * @param array $array The array to get the breadcrumb
* @param string $separator (optional) Separator used to stick the elements * @param string $separator (optional) Separator used to stick the elements
*
* @return string * @return string
*/ */
public static function getLastElementBreadCrumb($array, $separator = '/') public static function getLastElementBreadCrumb($array, $separator = '/')
@@ -285,9 +294,10 @@ class Arrays
} }
/** /**
* Returns the last row of array * Returns the last row of array.
* *
* @param array $array The array to get the last row of * @param array $array The array to get the last row of
*
* @return mixed * @return mixed
*/ */
public static function getLastRow(array $array) public static function getLastRow(array $array)
@@ -322,11 +332,12 @@ class Arrays
} }
/** /**
* Replaces array keys that match given pattern with new key name * Replaces array keys that match given pattern with new key name.
* *
* @param array $dataArray The array * @param array $dataArray The array
* @param string $oldKeyPattern Old key pattern * @param string $oldKeyPattern Old key pattern
* @param string $newKey New key name * @param string $newKey New key name
*
* @return array * @return array
*/ */
public static function replaceArrayKeys($dataArray, $oldKeyPattern, $newKey) public static function replaceArrayKeys($dataArray, $oldKeyPattern, $newKey)
@@ -351,12 +362,13 @@ class Arrays
} }
/** /**
* Generates JavaScript code for given PHP array * Generates JavaScript code for given PHP array.
* *
* @param array $array The array that should be generated to JavaScript * @param array $array The array that should be generated to JavaScript
* @param string $jsVariableName (optional) Name of the variable that will be in generated JavaScript code * @param string $jsVariableName (optional) Name of the variable that will be in generated JavaScript code
* @param bool $preserveIndexes (optional) If is set to true and $jsVariableName isn't empty, indexes also * @param bool $preserveIndexes (optional) If is set to true and $jsVariableName isn't empty, indexes also
* will be added to the JavaScript code. Otherwise not. * will be added to the JavaScript code. Otherwise not.
*
* @return string|null * @return string|null
*/ */
public static function array2JavaScript(array $array, $jsVariableName = '', $preserveIndexes = false) public static function array2JavaScript(array $array, $jsVariableName = '', $preserveIndexes = false)
@@ -401,7 +413,7 @@ class Arrays
if (is_array($value)) { if (is_array($value)) {
$variable = $index; $variable = $index;
if (is_integer($index)) { if (is_int($index)) {
$variable = 'value_'.$variable; $variable = 'value_'.$variable;
} }
@@ -452,9 +464,10 @@ class Arrays
} }
/** /**
* Quotes (adds quotes) to elements of an array that are strings * Quotes (adds quotes) to elements of an array that are strings.
* *
* @param array $array The array to check for string values * @param array $array The array to check for string values
*
* @return array * @return array
*/ */
public static function quoteStrings($array) public static function quoteStrings($array)
@@ -481,10 +494,11 @@ class Arrays
} }
/** /**
* Removes marginal element (first or last) * Removes marginal element (first or last).
* *
* @param string|array $item The item which should be shortened * @param string|array $item The item which should be shortened
* @param bool $last (optional) If is set to true, last element is removed. Otherwise - first. * @param bool $last (optional) If is set to true, last element is removed. Otherwise - first.
*
* @return string|array * @return string|array
*/ */
public static function removeMarginalElement($item, $last = true) public static function removeMarginalElement($item, $last = true)
@@ -509,9 +523,10 @@ class Arrays
} }
/** /**
* Returns last key of array * Returns last key of array.
* *
* @param array $array The array to get the last key of * @param array $array The array to get the last key of
*
* @return mixed * @return mixed
*/ */
public static function getLastKey(array $array) public static function getLastKey(array $array)
@@ -522,10 +537,11 @@ class Arrays
} }
/** /**
* Removes element / item of given array * Removes element / item of given array.
* *
* @param array $array The array that contains element / item which should be removed * @param array $array The array that contains element / item which should be removed
* @param mixed $item The element / item which should be removed * @param mixed $item The element / item which should be removed
*
* @return bool|array * @return bool|array
*/ */
public static function removeElement(array $array, $item) public static function removeElement(array $array, $item)
@@ -553,7 +569,7 @@ class Arrays
} }
/** /**
* Removes items from given array starting at given element (before or after the element) * Removes items from given array starting at given element (before or after the element).
* *
* @param array $array The array which contains items to remove * @param array $array The array which contains items to remove
* @param mixed $needle The element which is start point of deletion * @param mixed $needle The element which is start point of deletion
@@ -605,6 +621,7 @@ class Arrays
* value will be used with it's key, because other will be overridden. * value will be used with it's key, because other will be overridden.
* Otherwise - values are preserved and keys assigned to that values are * Otherwise - values are preserved and keys assigned to that values are
* returned as an array. * returned as an array.
*
* @return array * @return array
* *
* Example of $ignoreDuplicatedValues = false: * Example of $ignoreDuplicatedValues = false:
@@ -639,6 +656,7 @@ class Arrays
*/ */
if (is_array($value)) { if (is_array($value)) {
$replaced[$key] = self::setKeysAsValues($value, $ignoreDuplicatedValues); $replaced[$key] = self::setKeysAsValues($value, $ignoreDuplicatedValues);
continue; continue;
} }
@@ -666,10 +684,11 @@ class Arrays
} }
/** /**
* Applies ksort() function recursively in the given array * Applies ksort() function recursively in the given array.
* *
* @param array $array The array to sort * @param array $array The array to sort
* @param int $sortFlags (optional) Options of ksort() function * @param int $sortFlags (optional) Options of ksort() function
*
* @return array|null * @return array|null
*/ */
public static function ksortRecursive(array &$array, $sortFlags = SORT_REGULAR) public static function ksortRecursive(array &$array, $sortFlags = SORT_REGULAR)
@@ -695,9 +714,10 @@ class Arrays
} }
/** /**
* Returns count / amount of elements that are not array * Returns count / amount of elements that are not array.
* *
* @param array $array The array to count * @param array $array The array to count
*
* @return int|null * @return int|null
*/ */
public static function getNonArrayElementsCount(array $array) public static function getNonArrayElementsCount(array $array)
@@ -715,6 +735,7 @@ class Arrays
foreach ($array as &$value) { foreach ($array as &$value) {
if (is_array($value)) { if (is_array($value)) {
$count += self::getNonArrayElementsCount($value); $count += self::getNonArrayElementsCount($value);
continue; continue;
} }
@@ -725,7 +746,7 @@ class Arrays
} }
/** /**
* Converts given string with special separators to array * Converts given string with special separators to array.
* *
* Example: * Example:
* ~ string: * ~ string:
@@ -740,6 +761,7 @@ class Arrays
* @param string $string The string to be converted * @param string $string The string to be converted
* @param string $separator (optional) Separator used between name-value pairs in the string * @param string $separator (optional) Separator used between name-value pairs in the string
* @param string $valuesKeysSeparator (optional) Separator used between name and value in the string * @param string $valuesKeysSeparator (optional) Separator used between name and value in the string
*
* @return array * @return array
*/ */
public static function string2array($string, $separator = '|', $valuesKeysSeparator = ':') public static function string2array($string, $separator = '|', $valuesKeysSeparator = ':')
@@ -770,11 +792,12 @@ class Arrays
} }
/** /**
* Returns information if given keys exist in given array * Returns information if given keys exist in given array.
* *
* @param array $keys The keys to find * @param array $keys The keys to find
* @param array $array The array which maybe contains keys * @param array $array The array which maybe contains keys
* @param bool $explicit (optional) If is set to true, all keys should exist in given array. Otherwise - not all. * @param bool $explicit (optional) If is set to true, all keys should exist in given array. Otherwise - not all.
*
* @return bool * @return bool
*/ */
public static function areKeysInArray($keys, $array, $explicit = true) public static function areKeysInArray($keys, $array, $explicit = true)
@@ -812,7 +835,7 @@ class Arrays
} }
/** /**
* Returns paths of the last elements * Returns paths of the last elements.
* *
* @param array $array The array with elements * @param array $array The array with elements
* @param string $separator (optional) Separator used in resultant strings. Default: ".". * @param string $separator (optional) Separator used in resultant strings. Default: ".".
@@ -820,6 +843,7 @@ class Arrays
* @param string|array $stopIfMatchedBy (optional) Patterns of keys or paths that matched will stop the process * @param string|array $stopIfMatchedBy (optional) Patterns of keys or paths that matched will stop the process
* of path building and including children of those keys or paths (recursive * of path building and including children of those keys or paths (recursive
* will not be used for keys in lower level of given array) * will not be used for keys in lower level of given array)
*
* @return array * @return array
* *
* Examples - $stopIfMatchedBy argument: * Examples - $stopIfMatchedBy argument:
@@ -862,6 +886,7 @@ class Arrays
if (preg_match($pattern, $key) || preg_match($pattern, $path)) { if (preg_match($pattern, $key) || preg_match($pattern, $path)) {
$stopRecursion = true; $stopRecursion = true;
break; break;
} }
} }
@@ -875,6 +900,7 @@ class Arrays
*/ */
if (!is_array($value) || (is_array($value) && empty($value)) || $stopRecursion) { if (!is_array($value) || (is_array($value) && empty($value)) || $stopRecursion) {
$paths[$path] = $value; $paths[$path] = $value;
continue; continue;
} }
@@ -892,9 +918,10 @@ class Arrays
} }
/** /**
* Makes and returns an array for given variable * Makes and returns an array for given variable.
* *
* @param mixed $variable Variable that should be an array * @param mixed $variable Variable that should be an array
*
* @return array * @return array
*/ */
public static function makeArray($variable) public static function makeArray($variable)
@@ -907,12 +934,13 @@ class Arrays
} }
/** /**
* Returns information if keys / indexes of given array are matched by given pattern * Returns information if keys / indexes of given array are matched by given pattern.
* *
* @param array $array The array to check * @param array $array The array to check
* @param string $pattern The pattern which keys / indexes should match, e.g. "\d+" * @param string $pattern The pattern which keys / indexes should match, e.g. "\d+"
* @param bool $firstLevelOnly (optional) If is set to true, all keys / indexes are checked. Otherwise - from the * @param bool $firstLevelOnly (optional) If is set to true, all keys / indexes are checked. Otherwise - from the
* first level only. * first level only.
*
* @return bool * @return bool
*/ */
public static function areAllKeysMatchedByPattern($array, $pattern, $firstLevelOnly = false) public static function areAllKeysMatchedByPattern($array, $pattern, $firstLevelOnly = false)
@@ -943,6 +971,7 @@ class Arrays
*/ */
if (!preg_match($pattern, $key)) { if (!preg_match($pattern, $key)) {
$areMatched = false; $areMatched = false;
break; break;
} }
@@ -960,11 +989,12 @@ class Arrays
/** /**
* Returns information if keys / indexes of given array are integers, in other words if the array contains * Returns information if keys / indexes of given array are integers, in other words if the array contains
* zero-based keys / indexes * zero-based keys / indexes.
* *
* @param array $array The array to check * @param array $array The array to check
* @param bool $firstLevelOnly (optional) If is set to true, all keys / indexes are checked. Otherwise - from the * @param bool $firstLevelOnly (optional) If is set to true, all keys / indexes are checked. Otherwise - from the
* first level only. * first level only.
*
* @return bool * @return bool
*/ */
public static function areAllKeysIntegers($array, $firstLevelOnly = false) public static function areAllKeysIntegers($array, $firstLevelOnly = false)
@@ -980,6 +1010,7 @@ class Arrays
* *
* @param array $array The array which should contains a value * @param array $array The array which should contains a value
* @param array $keys Keys, path of keys, to find in given array * @param array $keys Keys, path of keys, to find in given array
*
* @return mixed * @return mixed
* *
* Examples: * Examples:
@@ -1029,6 +1060,7 @@ class Arrays
* *
* @param array $array The array to check * @param array $array The array to check
* @param array $keys Keys, path of keys, to find in given array * @param array $keys Keys, path of keys, to find in given array
*
* @return bool * @return bool
* *
* Examples: * Examples:
@@ -1079,6 +1111,7 @@ class Arrays
* *
* @param array $array The array which should contain values of the key * @param array $array The array which should contain values of the key
* @param string $key The key * @param string $key The key
*
* @return array|null * @return array|null
*/ */
public static function getAllValuesOfKey(array $array, $key) public static function getAllValuesOfKey(array $array, $key)
@@ -1092,6 +1125,7 @@ class Arrays
foreach ($array as $index => $value) { foreach ($array as $index => $value) {
if ($index === $key) { if ($index === $key) {
$values[] = $value; $values[] = $value;
continue; continue;
} }
@@ -1108,7 +1142,7 @@ class Arrays
} }
/** /**
* Sets positions for each element / child of given array and returns the array * Sets positions for each element / child of given array and returns the array.
* *
* Position for the 1st element / child of a parent is set to 1 and incremented for the next element and * Position for the 1st element / child of a parent is set to 1 and incremented for the next element and
* so on. Each parent is treated as separate array, so its elements are treated as positioned at 1st level. * so on. Each parent is treated as separate array, so its elements are treated as positioned at 1st level.
@@ -1117,6 +1151,7 @@ class Arrays
* @param string $keyName (optional) Name of key which will contain the position value * @param string $keyName (optional) Name of key which will contain the position value
* @param int $startPosition (optional) Default, start value of the position for main / given array, not the * @param int $startPosition (optional) Default, start value of the position for main / given array, not the
* children * children
*
* @return array * @return array
*/ */
public static function setPositions(array $array, $keyName = self::POSITION_KEY_NAME, $startPosition = null) public static function setPositions(array $array, $keyName = self::POSITION_KEY_NAME, $startPosition = null)
@@ -1140,9 +1175,10 @@ class Arrays
} }
/** /**
* Trims string values of given array and returns the new array * Trims string values of given array and returns the new array.
* *
* @param array $array The array which values should be trimmed * @param array $array The array which values should be trimmed
*
* @return array * @return array
*/ */
public static function trimRecursive(array $array) public static function trimRecursive(array $array)
@@ -1155,6 +1191,7 @@ class Arrays
foreach ($array as $key => $value) { foreach ($array as $key => $value) {
if (is_array($value)) { if (is_array($value)) {
$effect[$key] = self::trimRecursive($value); $effect[$key] = self::trimRecursive($value);
continue; continue;
} }
@@ -1210,6 +1247,7 @@ class Arrays
* *
* @param array $array An array to sort * @param array $array An array to sort
* @param array $keysOrder An array with keys of the 1st argument in proper / required order * @param array $keysOrder An array with keys of the 1st argument in proper / required order
*
* @return array|null * @return array|null
*/ */
public static function sortByCustomKeysOrder(array $array, array $keysOrder) public static function sortByCustomKeysOrder(array $array, array $keysOrder)
@@ -1251,7 +1289,7 @@ class Arrays
} }
/** /**
* Returns smartly imploded string * Returns smartly imploded string.
* *
* Separators located at the beginning or end of elements are removed. * Separators located at the beginning or end of elements are removed.
* It's required to avoid problems with duplicated separator, e.g. "first//second/third", where separator is a * It's required to avoid problems with duplicated separator, e.g. "first//second/third", where separator is a
@@ -1259,6 +1297,7 @@ class Arrays
* *
* @param array $array The array with elements to implode * @param array $array The array with elements to implode
* @param string $separator Separator used to stick together elements of given array * @param string $separator Separator used to stick together elements of given array
*
* @return string * @return string
*/ */
public static function implodeSmart(array $array, $separator) public static function implodeSmart(array $array, $separator)
@@ -1289,11 +1328,12 @@ class Arrays
} }
/** /**
* Returns information if given array is empty, iow. information if all elements of given array are empty * Returns information if given array is empty, iow. information if all elements of given array are empty.
* *
* @param array $array The array to verify * @param array $array The array to verify
* @param bool $strictNull (optional) If is set to true elements are verified if they are null. Otherwise - only * @param bool $strictNull (optional) If is set to true elements are verified if they are null. Otherwise - only
* if they are empty (e.g. null, '', 0, array()). * if they are empty (e.g. null, '', 0, array()).
*
* @return bool * @return bool
*/ */
public static function areAllValuesEmpty(array $array, $strictNull = false) public static function areAllValuesEmpty(array $array, $strictNull = false)
@@ -1343,6 +1383,7 @@ class Arrays
* @param array $array2 The 2nd array to verify * @param array $array2 The 2nd array to verify
* @param bool $valuesOnly (optional) If is set to true, compares values only. Otherwise - keys and values * @param bool $valuesOnly (optional) If is set to true, compares values only. Otherwise - keys and values
* (default behaviour). * (default behaviour).
*
* @return array * @return array
*/ */
public static function arrayDiffRecursive(array $array1, array $array2, $valuesOnly = false) public static function arrayDiffRecursive(array $array1, array $array2, $valuesOnly = false)
@@ -1429,10 +1470,11 @@ class Arrays
} }
/** /**
* Returns an index / key of given element in given array * Returns an index / key of given element in given array.
* *
* @param array $array The array to verify * @param array $array The array to verify
* @param mixed $element The element who index / key is needed * @param mixed $element The element who index / key is needed
*
* @return bool|null|mixed * @return bool|null|mixed
*/ */
public static function getIndexOf(array $array, $element) public static function getIndexOf(array $array, $element)
@@ -1455,12 +1497,13 @@ class Arrays
} }
/** /**
* Returns an array with incremented indexes / keys * Returns an array with incremented indexes / keys.
* *
* @param array $array The array which indexes / keys should be incremented * @param array $array The array which indexes / keys should be incremented
* @param int|null $startIndex (optional) Index from which incrementation should be started. If not provided, * @param int|null $startIndex (optional) Index from which incrementation should be started. If not provided,
* the first index / key will be used. * the first index / key will be used.
* @param int $incrementStep (optional) Value used for incrementation. The step of incrementation. * @param int $incrementStep (optional) Value used for incrementation. The step of incrementation.
*
* @return array * @return array
*/ */
public static function incrementIndexes(array $array, $startIndex = null, $incrementStep = 1) public static function incrementIndexes(array $array, $startIndex = null, $incrementStep = 1)
@@ -1511,10 +1554,11 @@ class Arrays
} }
/** /**
* Returns next element of given array related to given element * Returns next element of given array related to given element.
* *
* @param array $array The array with elements * @param array $array The array with elements
* @param mixed $element Element for who next element should be returned * @param mixed $element Element for who next element should be returned
*
* @return null|mixed * @return null|mixed
*/ */
public static function getNextElement(array $array, $element) public static function getNextElement(array $array, $element)
@@ -1523,10 +1567,11 @@ class Arrays
} }
/** /**
* Returns previous element of given array related to given element * Returns previous element of given array related to given element.
* *
* @param array $array The array with elements * @param array $array The array with elements
* @param mixed $element Element for who previous element should be returned * @param mixed $element Element for who previous element should be returned
*
* @return null|mixed * @return null|mixed
*/ */
public static function getPreviousElement(array $array, $element) public static function getPreviousElement(array $array, $element)
@@ -1535,9 +1580,10 @@ class Arrays
} }
/** /**
* Returns information if given array is a multi dimensional array * Returns information if given array is a multi dimensional array.
* *
* @param array $array The array to verify * @param array $array The array to verify
*
* @return bool|null * @return bool|null
*/ */
public static function isMultiDimensional(array $array) public static function isMultiDimensional(array $array)
@@ -1554,9 +1600,10 @@ class Arrays
} }
/** /**
* Returns count of dimensions, maximum nesting level actually, in given array * Returns count of dimensions, maximum nesting level actually, in given array.
* *
* @param array $array The array to verify * @param array $array The array to verify
*
* @return int * @return int
*/ */
public static function getDimensionsCount(array $array) public static function getDimensionsCount(array $array)
@@ -1581,11 +1628,12 @@ class Arrays
} }
/** /**
* Returns neighbour (next or previous element) for given element * Returns neighbour (next or previous element) for given element.
* *
* @param array $array The array with elements * @param array $array The array with elements
* @param mixed $element Element for who next element should be returned * @param mixed $element Element for who next element should be returned
* @param bool $next (optional) If is set to true, returns next neighbour. Otherwise - previous. * @param bool $next (optional) If is set to true, returns next neighbour. Otherwise - previous.
*
* @return mixed|null * @return mixed|null
*/ */
private static function getNeighbour(array $array, $element, $next = true) private static function getNeighbour(array $array, $element, $next = true)

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities; namespace Meritoo\Common\Utilities;
/** /**
* Useful methods for bundle * Useful methods for bundle.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -17,11 +17,12 @@ namespace Meritoo\Common\Utilities;
class Bundle class Bundle
{ {
/** /**
* Returns path to view / template of given bundle * Returns path to view / template of given bundle.
* *
* @param string $viewPath Path of the view / template, e.g. "MyDirectory/my-template" * @param string $viewPath Path of the view / template, e.g. "MyDirectory/my-template"
* @param string $bundleName Name of the bundle, e.g. "MyExtraBundle" * @param string $bundleName Name of the bundle, e.g. "MyExtraBundle"
* @param string $extension (optional) Extension of the view / template * @param string $extension (optional) Extension of the view / template
*
* @return string|null * @return string|null
*/ */
public static function getBundleViewPath($viewPath, $bundleName, $extension = 'html.twig') public static function getBundleViewPath($viewPath, $bundleName, $extension = 'html.twig')

View File

@@ -11,7 +11,7 @@ namespace Meritoo\Common\Utilities;
use stdClass; use stdClass;
/** /**
* Useful Composer-related methods (only static functions) * Useful Composer-related methods (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -19,17 +19,18 @@ use stdClass;
class Composer class Composer
{ {
/** /**
* Name of the Composer's main file with configuration in Json format * Name of the Composer's main file with configuration in Json format.
* *
* @var string * @var string
*/ */
const FILE_NAME_MAIN = 'composer.json'; const FILE_NAME_MAIN = 'composer.json';
/** /**
* Returns value from composer.json file * Returns value from composer.json file.
* *
* @param string $composerJsonPath Path of composer.json file * @param string $composerJsonPath Path of composer.json file
* @param string $nodeName Name of node who value should be returned * @param string $nodeName Name of node who value should be returned
*
* @return string|null * @return string|null
*/ */
public static function getValue($composerJsonPath, $nodeName) public static function getValue($composerJsonPath, $nodeName)

View File

@@ -10,11 +10,11 @@ namespace Meritoo\Common\Utilities;
use DateInterval; use DateInterval;
use DateTime; use DateTime;
use Meritoo\Common\Exception\Date\IncorrectDatePartException; use Meritoo\Common\Exception\Date\UnknownDatePartTypeException;
use Meritoo\Common\Type\DatePartType; use Meritoo\Common\Type\DatePartType;
/** /**
* Useful date methods * Useful date methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -66,6 +66,7 @@ class Date
* The dates are returned in an array with indexes 'start' and 'end'. * The dates are returned in an array with indexes 'start' and 'end'.
* *
* @param int $period The period, type of period. One of DatePeriod class constants, e.g. DatePeriod::LAST_WEEK. * @param int $period The period, type of period. One of DatePeriod class constants, e.g. DatePeriod::LAST_WEEK.
*
* @return DatePeriod * @return DatePeriod
*/ */
public static function getDatesForPeriod($period) public static function getDatesForPeriod($period)
@@ -160,10 +161,11 @@ class Date
} }
/** /**
* Generates and returns random time (the hour, minute and second values) * Generates and returns random time (the hour, minute and second values).
* *
* @param string $format (optional) Format of returned value. A string acceptable by the DateTime::format() * @param string $format (optional) Format of returned value. A string acceptable by the DateTime::format()
* method. * method.
*
* @return string|null * @return string|null
*/ */
public static function generateRandomTime($format = 'H:i:s') public static function generateRandomTime($format = 'H:i:s')
@@ -207,7 +209,7 @@ class Date
} }
/** /**
* Returns current day of week * Returns current day of week.
* *
* @return int * @return int
*/ */
@@ -231,7 +233,8 @@ class Date
* @param int $day The day value * @param int $day The day value
* *
* @return int * @return int
* @throws IncorrectDatePartException *
* @throws UnknownDatePartTypeException
*/ */
public static function getDayOfWeek($year, $month, $day) public static function getDayOfWeek($year, $month, $day)
{ {
@@ -243,21 +246,21 @@ class Date
* Oops, incorrect year * Oops, incorrect year
*/ */
if ($year <= 0) { if ($year <= 0) {
throw new IncorrectDatePartException($year, DatePartType::YEAR); throw new UnknownDatePartTypeException(DatePartType::YEAR, $year);
} }
/* /*
* Oops, incorrect month * Oops, incorrect month
*/ */
if ($month < 1 || $month > 12) { if ($month < 1 || $month > 12) {
throw new IncorrectDatePartException($month, DatePartType::MONTH); throw new UnknownDatePartTypeException(DatePartType::MONTH, $month);
} }
/* /*
* Oops, incorrect day * Oops, incorrect day
*/ */
if ($day < 1 || $day > 31) { if ($day < 1 || $day > 31) {
throw new IncorrectDatePartException($day, DatePartType::DAY); throw new UnknownDatePartTypeException(DatePartType::DAY, $day);
} }
if ($month < 3) { if ($month < 3) {
@@ -277,7 +280,7 @@ class Date
} }
/** /**
* Returns based on locale name of current weekday * Returns based on locale name of current weekday.
* *
* @return string * @return string
*/ */
@@ -293,11 +296,12 @@ class Date
} }
/** /**
* Returns name of weekday based on locale * Returns name of weekday based on locale.
* *
* @param int $year The year value * @param int $year The year value
* @param int $month The month value * @param int $month The month value
* @param int $day The day value * @param int $day The day value
*
* @return string * @return string
*/ */
public static function getDayOfWeekName($year, $month, $day) public static function getDayOfWeekName($year, $month, $day)
@@ -338,6 +342,7 @@ class Date
* @param int $differenceUnit (optional) Unit of date difference. One of this class * @param int $differenceUnit (optional) Unit of date difference. One of this class
* DATE_DIFFERENCE_UNIT_* constants. If is set to null all units are * DATE_DIFFERENCE_UNIT_* constants. If is set to null all units are
* returned in the array. * returned in the array.
*
* @return array|int * @return array|int
*/ */
public static function getDateDifference($dateStart, $dateEnd, $differenceUnit = null) public static function getDateDifference($dateStart, $dateEnd, $differenceUnit = null)
@@ -475,6 +480,7 @@ class Date
* @param string $intervalTemplate (optional) Template used to build date interval. It should contain "%d" as the * @param string $intervalTemplate (optional) Template used to build date interval. It should contain "%d" as the
* placeholder which is replaced with a number that represents each iteration. * placeholder which is replaced with a number that represents each iteration.
* Default: interval for days. * Default: interval for days.
*
* @return array * @return array
*/ */
public static function getDatesCollection(DateTime $startDate, $datesCount, $intervalTemplate = 'P%dD') public static function getDatesCollection(DateTime $startDate, $datesCount, $intervalTemplate = 'P%dD')
@@ -513,13 +519,14 @@ class Date
} }
/** /**
* Returns random date based on given start date * Returns random date based on given start date.
* *
* @param DateTime $startDate The start date. Start of the random date. * @param DateTime $startDate The start date. Start of the random date.
* @param int $start (optional) Start of random partition * @param int $start (optional) Start of random partition
* @param int $end (optional) End of random partition * @param int $end (optional) End of random partition
* @param string $intervalTemplate (optional) Template used to build date interval. The placeholder is replaced * @param string $intervalTemplate (optional) Template used to build date interval. The placeholder is replaced
* with next, iterated value. * with next, iterated value.
*
* @return DateTime * @return DateTime
*/ */
public static function getRandomDate(DateTime $startDate = null, $start = 1, $end = 100, $intervalTemplate = 'P%sD') public static function getRandomDate(DateTime $startDate = null, $start = 1, $end = 100, $intervalTemplate = 'P%sD')
@@ -556,6 +563,7 @@ class Date
* @param string $dateFormat (optional) Format of date used to verify if given value is actually a date. * @param string $dateFormat (optional) Format of date used to verify if given value is actually a date.
* It should be format matched to the given value, e.g. "Y-m-d H:i" for * It should be format matched to the given value, e.g. "Y-m-d H:i" for
* "2015-01-01 10:00" value. * "2015-01-01 10:00" value.
*
* @return DateTime|bool * @return DateTime|bool
*/ */
public static function getDateTime($value, $allowCompoundFormats = false, $dateFormat = 'Y-m-d') public static function getDateTime($value, $allowCompoundFormats = false, $dateFormat = 'Y-m-d')
@@ -658,12 +666,13 @@ class Date
} }
/** /**
* Returns information if given value is valid date * Returns information if given value is valid date.
* *
* @param mixed $value The value which maybe is a date * @param mixed $value The value which maybe is a date
* @param bool $allowCompoundFormats (optional) If is set to true, the compound formats used to create an * @param bool $allowCompoundFormats (optional) If is set to true, the compound formats used to create an
* instance of DateTime class are allowed (e.g. "now", "last day of next * instance of DateTime class are allowed (e.g. "now", "last day of next
* month", "yyyy"). Otherwise - not and every incorrect value is refused. * month", "yyyy"). Otherwise - not and every incorrect value is refused.
*
* @return bool * @return bool
*/ */
public static function isValidDate($value, $allowCompoundFormats = false) public static function isValidDate($value, $allowCompoundFormats = false)
@@ -672,9 +681,10 @@ class Date
} }
/** /**
* Returns information if given format of date is valid * Returns information if given format of date is valid.
* *
* @param string $format The validated format of date * @param string $format The validated format of date
*
* @return bool * @return bool
*/ */
public static function isValidDateFormat($format) public static function isValidDateFormat($format)

View File

@@ -20,84 +20,84 @@ use DateTime;
class DatePeriod class DatePeriod
{ {
/** /**
* The period constant: last month * The period constant: last month.
* *
* @var int * @var int
*/ */
const LAST_MONTH = 4; const LAST_MONTH = 4;
/** /**
* The period constant: last week * The period constant: last week.
* *
* @var int * @var int
*/ */
const LAST_WEEK = 1; const LAST_WEEK = 1;
/** /**
* The period constant: last year * The period constant: last year.
* *
* @var int * @var int
*/ */
const LAST_YEAR = 7; const LAST_YEAR = 7;
/** /**
* The period constant: next month * The period constant: next month.
* *
* @var int * @var int
*/ */
const NEXT_MONTH = 6; const NEXT_MONTH = 6;
/** /**
* The period constant: next week * The period constant: next week.
* *
* @var int * @var int
*/ */
const NEXT_WEEK = 3; const NEXT_WEEK = 3;
/** /**
* The period constant: next year * The period constant: next year.
* *
* @var int * @var int
*/ */
const NEXT_YEAR = 9; const NEXT_YEAR = 9;
/** /**
* The period constant: this month * The period constant: this month.
* *
* @var int * @var int
*/ */
const THIS_MONTH = 5; const THIS_MONTH = 5;
/** /**
* The period constant: this week * The period constant: this week.
* *
* @var int * @var int
*/ */
const THIS_WEEK = 2; const THIS_WEEK = 2;
/** /**
* The period constant: this year * The period constant: this year.
* *
* @var int * @var int
*/ */
const THIS_YEAR = 8; const THIS_YEAR = 8;
/** /**
* The start date of period * The start date of period.
* *
* @var DateTime * @var DateTime
*/ */
private $startDate; private $startDate;
/** /**
* The end date of period * The end date of period.
* *
* @var DateTime * @var DateTime
*/ */
private $endDate; private $endDate;
/** /**
* Class constructor * Class constructor.
* *
* @param DateTime $startDate (optional) The start date of period * @param DateTime $startDate (optional) The start date of period
* @param DateTime $endDate (optional) The end date of period * @param DateTime $endDate (optional) The end date of period
@@ -109,9 +109,10 @@ class DatePeriod
} }
/** /**
* Returns information if given period is correct * Returns information if given period is correct.
* *
* @param int $period The period to verify * @param int $period The period to verify
*
* @return bool * @return bool
*/ */
public static function isCorrectPeriod($period) public static function isCorrectPeriod($period)
@@ -120,10 +121,11 @@ class DatePeriod
} }
/** /**
* Returns formatted one of the period's date: start date or end date * Returns formatted one of the period's date: start date or end date.
* *
* @param string $format Format used to format the date * @param string $format Format used to format the date
* @param bool $startDate (optional) If is set to true, start date is formatted. Otherwise - end date. * @param bool $startDate (optional) If is set to true, start date is formatted. Otherwise - end date.
*
* @return string * @return string
*/ */
public function getFormattedDate($format, $startDate = true) public function getFormattedDate($format, $startDate = true)
@@ -148,7 +150,7 @@ class DatePeriod
} }
/** /**
* Returns the end date of period * Returns the end date of period.
* *
* @return DateTime * @return DateTime
*/ */
@@ -158,9 +160,10 @@ class DatePeriod
} }
/** /**
* Sets the end date of period * Sets the end date of period.
* *
* @param DateTime $endDate (optional) The end date of period * @param DateTime $endDate (optional) The end date of period
*
* @return $this * @return $this
*/ */
public function setEndDate(DateTime $endDate = null) public function setEndDate(DateTime $endDate = null)
@@ -171,7 +174,7 @@ class DatePeriod
} }
/** /**
* Returns the start date of period * Returns the start date of period.
* *
* @return DateTime * @return DateTime
*/ */
@@ -181,9 +184,10 @@ class DatePeriod
} }
/** /**
* Sets the start date of period * Sets the start date of period.
* *
* @param DateTime $startDate (optional) The start date of period * @param DateTime $startDate (optional) The start date of period
*
* @return $this * @return $this
*/ */
public function setStartDate(DateTime $startDate = null) public function setStartDate(DateTime $startDate = null)

View File

@@ -11,7 +11,7 @@ namespace Meritoo\Common\Utilities;
use Generator; use Generator;
/** /**
* Useful methods for the Generator class (only static functions) * Useful methods for the Generator class (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -19,9 +19,10 @@ use Generator;
class GeneratorUtility class GeneratorUtility
{ {
/** /**
* Returns elements of generator * Returns elements of generator.
* *
* @param Generator $generator The generator who elements should be returned * @param Generator $generator The generator who elements should be returned
*
* @return array * @return array
*/ */
public static function getGeneratorElements(Generator $generator) public static function getGeneratorElements(Generator $generator)

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities; namespace Meritoo\Common\Utilities;
/** /**
* Useful locale methods * Useful locale methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -17,12 +17,13 @@ namespace Meritoo\Common\Utilities;
class Locale class Locale
{ {
/** /**
* Sets locale for given category using given language and country code * Sets locale for given category using given language and country code.
* *
* @param int $category Named constant specifying the category of the functions affected by the locale * @param int $category Named constant specifying the category of the functions affected by the locale
* setting. It's the same constant as required by setlocale() function. * setting. It's the same constant as required by setlocale() function.
* @param string $languageCode Language code, in ISO 639-1 format. Short form of the locale, e.g. "fr". * @param string $languageCode Language code, in ISO 639-1 format. Short form of the locale, e.g. "fr".
* @param string $countryCode (optional) Country code, in ISO 3166-1 alpha-2 format, e.g. "FR" * @param string $countryCode (optional) Country code, in ISO 3166-1 alpha-2 format, e.g. "FR"
*
* @return bool * @return bool
* *
* Available categories (values of $category argument): * Available categories (values of $category argument):
@@ -63,11 +64,12 @@ class Locale
} }
/** /**
* Returns long form of the locale * Returns long form of the locale.
* *
* @param string $languageCode Language code, in ISO 639-1 format. Short form of the locale, e.g. "fr". * @param string $languageCode Language code, in ISO 639-1 format. Short form of the locale, e.g. "fr".
* @param string $countryCode (optional) Country code, in ISO 3166-1 alpha-2 format, e.g. "FR" * @param string $countryCode (optional) Country code, in ISO 3166-1 alpha-2 format, e.g. "FR"
* @param string $encoding (optional) Encoding of the final locale * @param string $encoding (optional) Encoding of the final locale
*
* @return string * @return string
* *
* Example: * Example:

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities; namespace Meritoo\Common\Utilities;
/** /**
* Useful methods for mime types of files * Useful methods for mime types of files.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -17,7 +17,7 @@ namespace Meritoo\Common\Utilities;
class MimeTypes class MimeTypes
{ {
/** /**
* Mime types data * Mime types data.
* *
* @var array * @var array
*/ */
@@ -680,11 +680,12 @@ class MimeTypes
]; ];
/** /**
* Returns extensions for given mimes types * Returns extensions for given mimes types.
* *
* @param array $mimesTypes The mimes types, e.g. ['video/mpeg', 'image/jpeg'] * @param array $mimesTypes The mimes types, e.g. ['video/mpeg', 'image/jpeg']
* @param bool $asUpperCase (optional) If is set to true, extensions are returned as upper case. Otherwise - lower * @param bool $asUpperCase (optional) If is set to true, extensions are returned as upper case. Otherwise - lower
* case. * case.
*
* @return array * @return array
*/ */
public static function getExtensions(array $mimesTypes, $asUpperCase = false) public static function getExtensions(array $mimesTypes, $asUpperCase = false)
@@ -726,9 +727,10 @@ class MimeTypes
} }
/** /**
* Returns extension for given mime type * Returns extension for given mime type.
* *
* @param string $mimeType The mime type, e.g. "video/mpeg" * @param string $mimeType The mime type, e.g. "video/mpeg"
*
* @return string|array * @return string|array
*/ */
public static function getExtension($mimeType) public static function getExtension($mimeType)
@@ -743,9 +745,10 @@ class MimeTypes
} }
/** /**
* Returns information whether file with the given path is an image * Returns information whether file with the given path is an image.
* *
* @param string $path Path of the file to check * @param string $path Path of the file to check
*
* @return bool * @return bool
*/ */
public static function isImagePath($path) public static function isImagePath($path)
@@ -756,9 +759,10 @@ class MimeTypes
} }
/** /**
* Returns mime type of given file * Returns mime type of given file.
* *
* @param string $filePath Path of the file to check * @param string $filePath Path of the file to check
*
* @return string * @return string
* *
* @throws \RuntimeException * @throws \RuntimeException
@@ -796,13 +800,15 @@ class MimeTypes
.' mime type of file \'%s\'.'; .' mime type of file \'%s\'.';
$message = sprintf($template, $filePath); $message = sprintf($template, $filePath);
throw new \RuntimeException($message); throw new \RuntimeException($message);
} }
/** /**
* Returns information whether the given file type is an image * Returns information whether the given file type is an image.
* *
* @param string $mimeType The mime type of file * @param string $mimeType The mime type of file
*
* @return bool * @return bool
*/ */
public static function isImage($mimeType) public static function isImage($mimeType)

View File

@@ -13,7 +13,7 @@ use Symfony\Component\HttpFoundation\Cookie;
use Transliterator; use Transliterator;
/** /**
* Miscellaneous methods (only static functions) * Miscellaneous methods (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -21,13 +21,14 @@ use Transliterator;
class Miscellaneous class Miscellaneous
{ {
/** /**
* Returns directory's content (names of directories and files) * Returns directory's content (names of directories and files).
* *
* @param string $directoryPath Path of directory who content should be returned * @param string $directoryPath Path of directory who content should be returned
* @param bool $recursive (optional) If is set to true, sub-directories are also searched for content. * @param bool $recursive (optional) If is set to true, sub-directories are also searched for content.
* Otherwise - only content of given directory is returned. * Otherwise - only content of given directory is returned.
* @param int $maxFilesCount (optional) Maximum files that will be returned. If it's null, all files are * @param int $maxFilesCount (optional) Maximum files that will be returned. If it's null, all files are
* returned. * returned.
*
* @return array|null * @return array|null
*/ */
public static function getDirectoryContent($directoryPath, $recursive = false, $maxFilesCount = null) public static function getDirectoryContent($directoryPath, $recursive = false, $maxFilesCount = null)
@@ -105,9 +106,10 @@ class Miscellaneous
} }
/** /**
* Returns information if given path it's a file's path, if the path contains file name * Returns information if given path it's a file's path, if the path contains file name.
* *
* @param string $path The path to check * @param string $path The path to check
*
* @return bool * @return bool
*/ */
public static function isFilePath($path) public static function isFilePath($path)
@@ -118,9 +120,10 @@ class Miscellaneous
} }
/** /**
* Converts checkbox value to boolean * Converts checkbox value to boolean.
* *
* @param string $checkboxValue Checkbox value * @param string $checkboxValue Checkbox value
*
* @return bool * @return bool
*/ */
public static function checkboxValue2Boolean($checkboxValue) public static function checkboxValue2Boolean($checkboxValue)
@@ -140,9 +143,10 @@ class Miscellaneous
} }
/** /**
* Converts checkbox value to integer * Converts checkbox value to integer.
* *
* @param string $checkboxValue Checkbox value * @param string $checkboxValue Checkbox value
*
* @return int * @return int
*/ */
public static function checkboxValue2Integer($checkboxValue) public static function checkboxValue2Integer($checkboxValue)
@@ -151,10 +155,11 @@ class Miscellaneous
} }
/** /**
* Returns name of file with given extension after verification if it contains the extension * Returns name of file with given extension after verification if it contains the extension.
* *
* @param string $fileName The file name to verify * @param string $fileName The file name to verify
* @param string $extension The extension to verify and include * @param string $extension The extension to verify and include
*
* @return string * @return string
*/ */
public static function includeFileExtension($fileName, $extension) public static function includeFileExtension($fileName, $extension)
@@ -167,10 +172,11 @@ class Miscellaneous
} }
/** /**
* Returns file extension * Returns file extension.
* *
* @param string $fileName File name * @param string $fileName File name
* @param bool $asLowerCase (optional) if true extension is returned as lowercase string * @param bool $asLowerCase (optional) if true extension is returned as lowercase string
*
* @return string * @return string
*/ */
public static function getFileExtension($fileName, $asLowerCase = false) public static function getFileExtension($fileName, $asLowerCase = false)
@@ -190,9 +196,10 @@ class Miscellaneous
} }
/** /**
* Returns file name from given path * Returns file name from given path.
* *
* @param string $path A path that contains file name * @param string $path A path that contains file name
*
* @return string * @return string
*/ */
public static function getFileNameFromPath($path) public static function getFileNameFromPath($path)
@@ -208,11 +215,12 @@ class Miscellaneous
} }
/** /**
* Returns unique name for file based on given original name * Returns unique name for file based on given original name.
* *
* @param string $originalFileName Original name of the file * @param string $originalFileName Original name of the file
* @param int $objectId (optional) Object ID, the ID of database's row. May be included into the * @param int $objectId (optional) Object ID, the ID of database's row. May be included into the
* generated / unique name. * generated / unique name.
*
* @return string * @return string
*/ */
public static function getUniqueFileName($originalFileName, $objectId = 0) public static function getUniqueFileName($originalFileName, $objectId = 0)
@@ -260,9 +268,10 @@ class Miscellaneous
} }
/** /**
* Returns file name without extension * Returns file name without extension.
* *
* @param string $fileName The file name * @param string $fileName The file name
*
* @return string * @return string
*/ */
public static function getFileNameWithoutExtension($fileName) public static function getFileNameWithoutExtension($fileName)
@@ -277,10 +286,11 @@ class Miscellaneous
} }
/** /**
* Converts value to non-negative integer (element of the set {0, 1, 2, 3, ...}) * Converts value to non-negative integer (element of the set {0, 1, 2, 3, ...}).
* *
* @param mixed $value Value to convert * @param mixed $value Value to convert
* @param int $negativeReplacement (optional) Replacement for negative value * @param int $negativeReplacement (optional) Replacement for negative value
*
* @return int * @return int
*/ */
public static function value2NonNegativeInteger($value, $negativeReplacement = 0) public static function value2NonNegativeInteger($value, $negativeReplacement = 0)
@@ -295,7 +305,7 @@ class Miscellaneous
} }
/** /**
* Displays variable content as preformatted text (fixed-width font and preserves both spaces and line breaks) * Displays variable content as preformatted text (fixed-width font and preserves both spaces and line breaks).
* *
* If xdebug php module is loaded, displays variable using var_dump(), otherwise <pre>var_dump()</pre>. * If xdebug php module is loaded, displays variable using var_dump(), otherwise <pre>var_dump()</pre>.
* You can pass as many variables as you wish. * You can pass as many variables as you wish.
@@ -323,9 +333,10 @@ class Miscellaneous
} }
/** /**
* Returns information if given PHP module is compiled and loaded * Returns information if given PHP module is compiled and loaded.
* *
* @param string $phpModuleName PHP module name * @param string $phpModuleName PHP module name
*
* @return bool * @return bool
*/ */
public static function isPhpModuleLoaded($phpModuleName) public static function isPhpModuleLoaded($phpModuleName)
@@ -336,13 +347,14 @@ class Miscellaneous
} }
/** /**
* Converts given string characters to latin characters * Converts given string characters to latin characters.
* *
* @param string $string String to convert * @param string $string String to convert
* @param bool $lowerCaseHuman (optional) If is set to true, converted string is returned as lowercase and * @param bool $lowerCaseHuman (optional) If is set to true, converted string is returned as lowercase and
* human-readable. Otherwise - as original. * human-readable. Otherwise - as original.
* @param string $replacementChar (optional) Replacement character for all non-latin characters and uppercase * @param string $replacementChar (optional) Replacement character for all non-latin characters and uppercase
* letters, if 2nd argument is set to true * letters, if 2nd argument is set to true
*
* @return string * @return string
*/ */
public static function toLatin($string, $lowerCaseHuman = true, $replacementChar = '-') public static function toLatin($string, $lowerCaseHuman = true, $replacementChar = '-')
@@ -394,11 +406,12 @@ class Miscellaneous
} }
/** /**
* Returns unique string * Returns unique string.
* *
* @param string $prefix (optional) Prefix of the unique string. May be used while generating the unique * @param string $prefix (optional) Prefix of the unique string. May be used while generating the unique
* string simultaneously on several hosts at the same microsecond. * string simultaneously on several hosts at the same microsecond.
* @param bool $hashed (optional) If is set to true, the unique string is hashed additionally. Otherwise - not. * @param bool $hashed (optional) If is set to true, the unique string is hashed additionally. Otherwise - not.
*
* @return string * @return string
*/ */
public static function getUniqueString($prefix = '', $hashed = false) public static function getUniqueString($prefix = '', $hashed = false)
@@ -422,6 +435,7 @@ class Miscellaneous
* @param string|array $replacement The string or an array of strings to replace. It may be: string or an array * @param string|array $replacement The string or an array of strings to replace. It may be: string or an array
* of strings. * of strings.
* @param bool $quoteStrings (optional) If is set to true, strings are surrounded with single quote sign * @param bool $quoteStrings (optional) If is set to true, strings are surrounded with single quote sign
*
* @return string * @return string
* *
* Example: * Example:
@@ -549,6 +563,7 @@ class Miscellaneous
if ($subjectIsArray) { if ($subjectIsArray) {
$effect[] = $subEffect; $effect[] = $subEffect;
continue; continue;
} }
@@ -560,11 +575,12 @@ class Miscellaneous
} }
/** /**
* Returns new file name after adding prefix or suffix (or both of them) to the name * Returns new file name after adding prefix or suffix (or both of them) to the name.
* *
* @param string $fileName The file name * @param string $fileName The file name
* @param string $prefix File name prefix * @param string $prefix File name prefix
* @param string $suffix File name suffix * @param string $suffix File name suffix
*
* @return string * @return string
*/ */
public static function getNewFileName($fileName, $prefix, $suffix) public static function getNewFileName($fileName, $prefix, $suffix)
@@ -582,7 +598,7 @@ class Miscellaneous
} }
/** /**
* Returns operating system name PHP is running on * Returns operating system name PHP is running on.
* *
* @return string * @return string
*/ */
@@ -592,11 +608,12 @@ class Miscellaneous
} }
/** /**
* Returns part of string preserving words * Returns part of string preserving words.
* *
* @param string $text The string / text * @param string $text The string / text
* @param int $maxLength Maximum length of given string * @param int $maxLength Maximum length of given string
* @param string $suffix (optional) The suffix to add at the end of string * @param string $suffix (optional) The suffix to add at the end of string
*
* @return string * @return string
*/ */
public static function substringToWord($text, $maxLength, $suffix = '...') public static function substringToWord($text, $maxLength, $suffix = '...')
@@ -623,13 +640,14 @@ class Miscellaneous
} }
/** /**
* Breaks long text * Breaks long text.
* *
* @param string $text The text to check and break * @param string $text The text to check and break
* @param int $perLine (optional) Characters count per line * @param int $perLine (optional) Characters count per line
* @param string $separator (optional) Separator that is placed beetwen lines * @param string $separator (optional) Separator that is placed beetwen lines
* @param string $encoding (optional) Character encoding. Used by mb_substr(). * @param string $encoding (optional) Character encoding. Used by mb_substr().
* @param int $proportionalAberration (optional) Proportional aberration for chars (percent value) * @param int $proportionalAberration (optional) Proportional aberration for chars (percent value)
*
* @return string * @return string
*/ */
public static function breakLongText( public static function breakLongText(
@@ -717,6 +735,7 @@ class Miscellaneous
* @param string $directoryPath Directory path * @param string $directoryPath Directory path
* @param bool $contentOnly (optional) If is set to true, only content of the directory is removed, not * @param bool $contentOnly (optional) If is set to true, only content of the directory is removed, not
* directory. Otherwise - directory is removed too. * directory. Otherwise - directory is removed too.
*
* @return bool * @return bool
*/ */
public static function removeDirectory($directoryPath, $contentOnly = false) public static function removeDirectory($directoryPath, $contentOnly = false)
@@ -747,9 +766,10 @@ class Miscellaneous
} }
/** /**
* Returns information if value is decimal * Returns information if value is decimal.
* *
* @param mixed $value The value to check * @param mixed $value The value to check
*
* @return bool * @return bool
*/ */
public static function isDecimal($value) public static function isDecimal($value)
@@ -758,10 +778,11 @@ class Miscellaneous
} }
/** /**
* Returns the string in camel case * Returns the string in camel case.
* *
* @param string $string The string to convert e.g. this-is-eXamplE (return: thisIsExample) * @param string $string The string to convert e.g. this-is-eXamplE (return: thisIsExample)
* @param string $separator (optional) Separator used to find parts of the string, e.g. '-' or ',' * @param string $separator (optional) Separator used to find parts of the string, e.g. '-' or ','
*
* @return string * @return string
*/ */
public static function getCamelCase($string, $separator = ' ') public static function getCamelCase($string, $separator = ' ')
@@ -787,10 +808,11 @@ class Miscellaneous
} }
/** /**
* Make a string's first character lowercase * Make a string's first character lowercase.
* *
* @param string $text The text to get first character lowercase * @param string $text The text to get first character lowercase
* @param bool|null $restLowercase (optional) Information that to do with rest of given string * @param bool|null $restLowercase (optional) Information that to do with rest of given string
*
* @return string * @return string
* *
* Values of the $restLowercase argument: * Values of the $restLowercase argument:
@@ -829,10 +851,11 @@ class Miscellaneous
} }
/** /**
* Make a string's first character uppercase * Make a string's first character uppercase.
* *
* @param string $text The text to get uppercase * @param string $text The text to get uppercase
* @param bool|null $restLowercase (optional) Information that to do with rest of given string * @param bool|null $restLowercase (optional) Information that to do with rest of given string
*
* @return string * @return string
* *
* Values of the $restLowercase argument: * Values of the $restLowercase argument:
@@ -867,10 +890,11 @@ class Miscellaneous
} }
/** /**
* Quotes given value with apostrophes or quotation marks * Quotes given value with apostrophes or quotation marks.
* *
* @param mixed $value The value to quote * @param mixed $value The value to quote
* @param bool $useApostrophe (optional) If is set to true, apostrophes are used. Otherwise - quotation marks. * @param bool $useApostrophe (optional) If is set to true, apostrophes are used. Otherwise - quotation marks.
*
* @return string * @return string
*/ */
public static function quoteValue($value, $useApostrophe = true) public static function quoteValue($value, $useApostrophe = true)
@@ -889,9 +913,10 @@ class Miscellaneous
} }
/** /**
* Returns size (of file or directory) in human readable format * Returns size (of file or directory) in human readable format.
* *
* @param int $sizeInBytes The size in bytes * @param int $sizeInBytes The size in bytes
*
* @return string * @return string
*/ */
public static function getHumanReadableSize($sizeInBytes) public static function getHumanReadableSize($sizeInBytes)
@@ -918,6 +943,7 @@ class Miscellaneous
* *
* @param string $string The string to check * @param string $string The string to check
* @param string $separator The separator which divides elements of string * @param string $separator The separator which divides elements of string
*
* @return string * @return string
*/ */
public static function getStringWithoutLastElement($string, $separator) public static function getStringWithoutLastElement($string, $separator)
@@ -931,10 +957,11 @@ class Miscellaneous
} }
/** /**
* Returns elements of given string divided by given separator * Returns elements of given string divided by given separator.
* *
* @param string $string The string to check * @param string $string The string to check
* @param string $separator The separator which divides elements of string * @param string $separator The separator which divides elements of string
*
* @return array * @return array
*/ */
public static function getStringElements($string, $separator) public static function getStringElements($string, $separator)
@@ -951,10 +978,11 @@ class Miscellaneous
} }
/** /**
* Returns the last element of given string divided by given separator * Returns the last element of given string divided by given separator.
* *
* @param string $string The string to check * @param string $string The string to check
* @param string $separator The separator which divides elements of string * @param string $separator The separator which divides elements of string
*
* @return string|null * @return string|null
*/ */
public static function getLastElementOfString($string, $separator) public static function getLastElementOfString($string, $separator)
@@ -979,6 +1007,7 @@ class Miscellaneous
* If the string is empty, contains only spaces, e.g. " ", nothing is done and the original string is returned. * If the string is empty, contains only spaces, e.g. " ", nothing is done and the original string is returned.
* *
* @param string $string The string to trim * @param string $string The string to trim
*
* @return string * @return string
*/ */
public static function trimSmart($string) public static function trimSmart($string)
@@ -993,7 +1022,7 @@ class Miscellaneous
} }
/** /**
* Returns concatenated given paths * Returns concatenated given paths.
* *
* The paths may be passed as: * The paths may be passed as:
* - an array of paths / strings * - an array of paths / strings
@@ -1005,6 +1034,7 @@ class Miscellaneous
* *
* @param string|array $paths Paths co concatenate. As described above: an array of paths / strings or strings * @param string|array $paths Paths co concatenate. As described above: an array of paths / strings or strings
* passed as following arguments. * passed as following arguments.
*
* @return string * @return string
*/ */
public static function concatenatePaths($paths) public static function concatenatePaths($paths)
@@ -1067,6 +1097,7 @@ class Miscellaneous
*/ */
if ($firstWindowsBased && empty($concatenated)) { if ($firstWindowsBased && empty($concatenated)) {
$concatenated = $path; $concatenated = $path;
continue; continue;
} }
@@ -1080,11 +1111,12 @@ class Miscellaneous
} }
/** /**
* Removes the starting / beginning directory's separator * Removes the starting / beginning directory's separator.
* *
* @param string $text Text that may contain a directory's separator at the start / beginning * @param string $text Text that may contain a directory's separator at the start / beginning
* @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), separator * @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), separator
* provided by operating system will be used. * provided by operating system will be used.
*
* @return string * @return string
*/ */
public static function removeStartingDirectorySeparator($text, $separator = '') public static function removeStartingDirectorySeparator($text, $separator = '')
@@ -1111,11 +1143,12 @@ class Miscellaneous
} }
/** /**
* Removes the ending directory's separator * Removes the ending directory's separator.
* *
* @param string $text Text that may contain a directory's separator at the end * @param string $text Text that may contain a directory's separator at the end
* @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's * @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's
* separator is used. * separator is used.
*
* @return string * @return string
*/ */
public static function removeEndingDirectorySeparator($text, $separator = '') public static function removeEndingDirectorySeparator($text, $separator = '')
@@ -1142,11 +1175,12 @@ class Miscellaneous
} }
/** /**
* Returns safely value of global variable, found in one of the global arrays / variables, e.g. $_GET * Returns safely value of global variable, found in one of the global arrays / variables, e.g. $_GET.
* *
* @param int $globalSourceType Represents the global array / variable. One of constants: INPUT_GET, INPUT_POST, * @param int $globalSourceType Represents the global array / variable. One of constants: INPUT_GET, INPUT_POST,
* INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV. * INPUT_COOKIE, INPUT_SERVER, or INPUT_ENV.
* @param string $variableName Name of the variable to return value * @param string $variableName Name of the variable to return value
*
* @return mixed * @return mixed
*/ */
public static function getSafelyGlobalVariable($globalSourceType, $variableName) public static function getSafelyGlobalVariable($globalSourceType, $variableName)
@@ -1159,22 +1193,27 @@ class Miscellaneous
switch ($globalSourceType) { switch ($globalSourceType) {
case INPUT_GET: case INPUT_GET:
$globalSource = $_GET; $globalSource = $_GET;
break; break;
case INPUT_POST: case INPUT_POST:
$globalSource = $_POST; $globalSource = $_POST;
break; break;
case INPUT_COOKIE: case INPUT_COOKIE:
$globalSource = $_COOKIE; $globalSource = $_COOKIE;
break; break;
case INPUT_SERVER: case INPUT_SERVER:
$globalSource = $_SERVER; $globalSource = $_SERVER;
break; break;
case INPUT_ENV: case INPUT_ENV:
$globalSource = $_ENV; $globalSource = $_ENV;
break; break;
} }
@@ -1191,7 +1230,7 @@ class Miscellaneous
} }
/** /**
* Returns a CURL response with parsed HTTP headers as array with "headers", "cookies" and "content" keys * Returns a CURL response with parsed HTTP headers as array with "headers", "cookies" and "content" keys.
* *
* The headers and cookies are parsed and returned as an array, and an array of Cookie objects. Returned array looks * The headers and cookies are parsed and returned as an array, and an array of Cookie objects. Returned array looks
* like this example: * like this example:
@@ -1216,6 +1255,7 @@ class Miscellaneous
* *
* @param string $response the full content of response, including HTTP headers * @param string $response the full content of response, including HTTP headers
* @param int $headerSize The length of HTTP headers in content * @param int $headerSize The length of HTTP headers in content
*
* @return array * @return array
*/ */
public static function getCurlResponseWithHeaders($response, $headerSize) public static function getCurlResponseWithHeaders($response, $headerSize)
@@ -1263,6 +1303,7 @@ class Miscellaneous
if ($j === 0) { if ($j === 0) {
$name = trim($param[0]); $name = trim($param[0]);
$value = trim($param[1]); $value = trim($param[1]);
continue; continue;
} }
@@ -1284,18 +1325,23 @@ class Miscellaneous
switch ($paramName) { switch ($paramName) {
case 'expires': case 'expires':
$expire = $paramValue; $expire = $paramValue;
break; break;
case 'path': case 'path':
$path = $paramValue; $path = $paramValue;
break; break;
case 'domain': case 'domain':
$domain = $paramValue; $domain = $paramValue;
break; break;
case 'secure': case 'secure':
$secure = $paramValue; $secure = $paramValue;
break; break;
case 'httponly': case 'httponly':
$httpOnly = $paramValue; $httpOnly = $paramValue;
break; break;
} }
} }
@@ -1305,6 +1351,7 @@ class Miscellaneous
* I must skip to next header as cookies shouldn't be saved in "headers" array. * I must skip to next header as cookies shouldn't be saved in "headers" array.
*/ */
$cookies[] = new Cookie($name, $value, $expire, $path, $domain, $secure, $httpOnly); $cookies[] = new Cookie($name, $value, $expire, $path, $domain, $secure, $httpOnly);
continue; continue;
} }
@@ -1323,7 +1370,7 @@ class Miscellaneous
} }
/** /**
* Adds missing the "0" characters to given number until given length is reached * Adds missing the "0" characters to given number until given length is reached.
* *
* Example: * Example:
* - number: 201 * - number: 201
@@ -1336,6 +1383,7 @@ class Miscellaneous
* @param mixed $number Number for who the "0" characters should be inserted * @param mixed $number Number for who the "0" characters should be inserted
* @param int $length Wanted length of final number * @param int $length Wanted length of final number
* @param bool $before (optional) If false, 0 characters will be inserted after given number * @param bool $before (optional) If false, 0 characters will be inserted after given number
*
* @return string * @return string
*/ */
public static function fillMissingZeros($number, $length, $before = true) public static function fillMissingZeros($number, $length, $before = true)
@@ -1358,6 +1406,7 @@ class Miscellaneous
for ($i = ($length - $textLength); 0 < $i; --$i) { for ($i = ($length - $textLength); 0 < $i; --$i) {
if ($before) { if ($before) {
$text = '0'.$text; $text = '0'.$text;
continue; continue;
} }
@@ -1368,11 +1417,12 @@ class Miscellaneous
} }
/** /**
* Returns information if given value is located in interval between given utmost left and right values * Returns information if given value is located in interval between given utmost left and right values.
* *
* @param int|float $value Value to verify * @param int|float $value Value to verify
* @param int|float $left Left utmost value of interval * @param int|float $left Left utmost value of interval
* @param int|float $right Right utmost value of interval * @param int|float $right Right utmost value of interval
*
* @return bool * @return bool
*/ */
public static function isBetween($value, $left, $right) public static function isBetween($value, $left, $right)
@@ -1385,6 +1435,7 @@ class Miscellaneous
* If it's an object, full class name is returned. * If it's an object, full class name is returned.
* *
* @param mixed $variable Variable who type should be returned * @param mixed $variable Variable who type should be returned
*
* @return string * @return string
*/ */
public static function getType($variable) public static function getType($variable)
@@ -1403,6 +1454,7 @@ class Miscellaneous
* @param int $colorComponent Color's component to verify. Decimal value, e.g. 255. * @param int $colorComponent Color's component to verify. Decimal value, e.g. 255.
* @param bool $asHexadecimal (optional) If is set to true, hexadecimal value is returned (default behaviour). * @param bool $asHexadecimal (optional) If is set to true, hexadecimal value is returned (default behaviour).
* Otherwise - decimal. * Otherwise - decimal.
*
* @return int|string * @return int|string
*/ */
public static function getValidColorComponent($colorComponent, $asHexadecimal = true) public static function getValidColorComponent($colorComponent, $asHexadecimal = true)
@@ -1427,9 +1479,10 @@ class Miscellaneous
} }
/** /**
* Returns inverted value of color for given color * Returns inverted value of color for given color.
* *
* @param string $color Hexadecimal value of color to invert (with or without hash), e.g. "dd244c" or "#22a5fe" * @param string $color Hexadecimal value of color to invert (with or without hash), e.g. "dd244c" or "#22a5fe"
*
* @return string * @return string
*/ */
public static function getInvertedColor($color) public static function getInvertedColor($color)

View File

@@ -15,7 +15,7 @@ use Doctrine\ORM\Query\Parameter;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
/** /**
* Useful methods for query builder (the Doctrine's QueryBuilder class) * Useful methods for query builder (the Doctrine's QueryBuilder class).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -27,6 +27,7 @@ class QueryBuilderUtility
* If null is returned, alias was not found. * If null is returned, alias was not found.
* *
* @param QueryBuilder $queryBuilder The query builder to retrieve root alias * @param QueryBuilder $queryBuilder The query builder to retrieve root alias
*
* @return null|string * @return null|string
*/ */
public static function getRootAlias(QueryBuilder $queryBuilder) public static function getRootAlias(QueryBuilder $queryBuilder)
@@ -47,6 +48,7 @@ class QueryBuilderUtility
* *
* @param QueryBuilder $queryBuilder The query builder to verify * @param QueryBuilder $queryBuilder The query builder to verify
* @param string $property Name of property that maybe is joined * @param string $property Name of property that maybe is joined
*
* @return null|string * @return null|string
*/ */
public static function getJoinedPropertyAlias(QueryBuilder $queryBuilder, $property) public static function getJoinedPropertyAlias(QueryBuilder $queryBuilder, $property)
@@ -75,13 +77,14 @@ class QueryBuilderUtility
} }
/** /**
* Sets the WHERE criteria in given query builder * Sets the WHERE criteria in given query builder.
* *
* @param QueryBuilder $queryBuilder The query builder * @param QueryBuilder $queryBuilder The query builder
* @param array $criteria (optional) The criteria used in WHERE clause. It may simple array with pairs * @param array $criteria (optional) The criteria used in WHERE clause. It may simple array with pairs
* key-value or an array of arrays where second element of sub-array is the * key-value or an array of arrays where second element of sub-array is the
* comparison operator. Example below. * comparison operator. Example below.
* @param string $alias (optional) Alias used in the query * @param string $alias (optional) Alias used in the query
*
* @return QueryBuilder * @return QueryBuilder
* *
* Example of the $criteria argument: * Example of the $criteria argument:
@@ -132,12 +135,13 @@ class QueryBuilderUtility
} }
/** /**
* Deletes given entities * Deletes given entities.
* *
* @param EntityManager $entityManager The entity manager * @param EntityManager $entityManager The entity manager
* @param array|ArrayCollection $entities The entities to delete * @param array|ArrayCollection $entities The entities to delete
* @param bool $flushDeleted (optional) If is set to true, flushes the deleted objects. * @param bool $flushDeleted (optional) If is set to true, flushes the deleted objects.
* Otherwise - not. * Otherwise - not.
*
* @return bool * @return bool
*/ */
public static function deleteEntities(EntityManager $entityManager, $entities, $flushDeleted = true) public static function deleteEntities(EntityManager $entityManager, $entities, $flushDeleted = true)
@@ -171,6 +175,7 @@ class QueryBuilderUtility
* @param QueryBuilder $queryBuilder The query builder * @param QueryBuilder $queryBuilder The query builder
* @param array|ArrayCollection $parameters Parameters to add. Collection of instances of * @param array|ArrayCollection $parameters Parameters to add. Collection of instances of
* Doctrine\ORM\Query\Parameter class or an array with key-value pairs. * Doctrine\ORM\Query\Parameter class or an array with key-value pairs.
*
* @return QueryBuilder * @return QueryBuilder
*/ */
public static function addParameters(QueryBuilder $queryBuilder, $parameters) public static function addParameters(QueryBuilder $queryBuilder, $parameters)

View File

@@ -21,7 +21,7 @@ use ReflectionObject;
use ReflectionProperty; use ReflectionProperty;
/** /**
* Useful reflection methods * Useful reflection methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -29,11 +29,12 @@ use ReflectionProperty;
class Reflection class Reflection
{ {
/** /**
* Returns names of methods for given class / object * Returns names of methods for given class / object.
* *
* @param object|string $class The object or name of object's class * @param object|string $class The object or name of object's class
* @param bool $withoutInheritance (optional) If is set to true, only methods for given class are returned. * @param bool $withoutInheritance (optional) If is set to true, only methods for given class are returned.
* Otherwise - all methods, with inherited methods too. * Otherwise - all methods, with inherited methods too.
*
* @return array * @return array
*/ */
public static function getMethods($class, $withoutInheritance = false) public static function getMethods($class, $withoutInheritance = false)
@@ -61,9 +62,10 @@ class Reflection
} }
/** /**
* Returns constants of given class / object * Returns constants of given class / object.
* *
* @param object|string $class The object or name of object's class * @param object|string $class The object or name of object's class
*
* @return array * @return array
*/ */
public static function getConstants($class) public static function getConstants($class)
@@ -78,6 +80,7 @@ class Reflection
* Values of constants should be integers. * Values of constants should be integers.
* *
* @param object|string $class The object or name of object's class * @param object|string $class The object or name of object's class
*
* @return int|null * @return int|null
*/ */
public static function getMaxNumberConstant($class) public static function getMaxNumberConstant($class)
@@ -100,10 +103,11 @@ class Reflection
} }
/** /**
* Returns information if given class / object has given method * Returns information if given class / object has given method.
* *
* @param object|string $class The object or name of object's class * @param object|string $class The object or name of object's class
* @param string $method Name of the method to find * @param string $method Name of the method to find
*
* @return bool * @return bool
*/ */
public static function hasMethod($class, $method) public static function hasMethod($class, $method)
@@ -114,10 +118,11 @@ class Reflection
} }
/** /**
* Returns information if given class / object has given property * Returns information if given class / object has given property.
* *
* @param object|string $class The object or name of object's class * @param object|string $class The object or name of object's class
* @param string $property Name of the property to find * @param string $property Name of the property to find
*
* @return bool * @return bool
*/ */
public static function hasProperty($class, $property) public static function hasProperty($class, $property)
@@ -128,10 +133,11 @@ class Reflection
} }
/** /**
* Returns information if given class / object has given constant * Returns information if given class / object has given constant.
* *
* @param object|string $class The object or name of object's class * @param object|string $class The object or name of object's class
* @param string $constant Name of the constant to find * @param string $constant Name of the constant to find
*
* @return bool * @return bool
*/ */
public static function hasConstant($class, $constant) public static function hasConstant($class, $constant)
@@ -142,10 +148,11 @@ class Reflection
} }
/** /**
* Returns value of given constant * Returns value of given constant.
* *
* @param object|string $class The object or name of object's class * @param object|string $class The object or name of object's class
* @param string $constant Name of the constant that contains a value * @param string $constant Name of the constant that contains a value
*
* @return mixed * @return mixed
*/ */
public static function getConstantValue($class, $constant) public static function getConstantValue($class, $constant)
@@ -168,6 +175,7 @@ class Reflection
* dot-separated, e.g. "invoice.user.email". * dot-separated, e.g. "invoice.user.email".
* @param bool $force (optional) If is set to true, try to retrieve value even if the object doesn't have * @param bool $force (optional) If is set to true, try to retrieve value even if the object doesn't have
* property. Otherwise - not. * property. Otherwise - not.
*
* @return mixed * @return mixed
*/ */
public static function getPropertyValue($object, $property, $force = false) public static function getPropertyValue($object, $property, $force = false)
@@ -241,6 +249,7 @@ class Reflection
if ($class->hasMethod($method)) { if ($class->hasMethod($method)) {
$value = $object->{$method}(); $value = $object->{$method}();
$valueFound = true; $valueFound = true;
break; break;
} }
} }
@@ -271,6 +280,7 @@ class Reflection
* @param string $property Name of the property that contains a value * @param string $property Name of the property that contains a value
* @param bool $force (optional) If is set to true, try to retrieve value even if the * @param bool $force (optional) If is set to true, try to retrieve value even if the
* object does not have property. Otherwise - not. * object does not have property. Otherwise - not.
*
* @return array * @return array
*/ */
public static function getPropertyValues($objects, $property, $force = false) public static function getPropertyValues($objects, $property, $force = false)
@@ -294,11 +304,12 @@ class Reflection
} }
/** /**
* Returns a class name for given source * Returns a class name for given source.
* *
* @param array|object|string $source An array of objects, namespaces, object or namespace * @param array|object|string $source An array of objects, namespaces, object or namespace
* @param bool $withoutNamespace (optional) If is set to true, namespace is omitted. Otherwise - * @param bool $withoutNamespace (optional) If is set to true, namespace is omitted. Otherwise -
* not, full name of class is returned, with namespace. * not, full name of class is returned, with namespace.
*
* @return string|null * @return string|null
*/ */
public static function getClassName($source, $withoutNamespace = false) public static function getClassName($source, $withoutNamespace = false)
@@ -356,9 +367,10 @@ class Reflection
} }
/** /**
* Returns namespace of class for given source * Returns namespace of class for given source.
* *
* @param array|object|string $source An array of objects, namespaces, object or namespace * @param array|object|string $source An array of objects, namespaces, object or namespace
*
* @return string * @return string
*/ */
public static function getClassNamespace($source) public static function getClassNamespace($source)
@@ -379,10 +391,11 @@ class Reflection
} }
/** /**
* Returns information if given interface is implemented by given class / object * Returns information if given interface is implemented by given class / object.
* *
* @param array|object|string $source An array of objects, namespaces, object or namespace * @param array|object|string $source An array of objects, namespaces, object or namespace
* @param string $interface The interface that should be implemented * @param string $interface The interface that should be implemented
*
* @return bool * @return bool
*/ */
public static function isInterfaceImplemented($source, $interface) public static function isInterfaceImplemented($source, $interface)
@@ -394,10 +407,11 @@ class Reflection
} }
/** /**
* Returns information if given child class is a subclass of given parent class * Returns information if given child class is a subclass of given parent class.
* *
* @param array|object|string $childClass The child class. An array of objects, namespaces, object or namespace. * @param array|object|string $childClass The child class. An array of objects, namespaces, object or namespace.
* @param array|object|string $parentClass The parent class. An array of objects, namespaces, object or namespace. * @param array|object|string $parentClass The parent class. An array of objects, namespaces, object or namespace.
*
* @return bool * @return bool
*/ */
public static function isChildOfClass($childClass, $parentClass) public static function isChildOfClass($childClass, $parentClass)
@@ -415,11 +429,12 @@ class Reflection
} }
/** /**
* Returns given object properties * Returns given object properties.
* *
* @param array|object|string $source An array of objects, namespaces, object or namespace * @param array|object|string $source An array of objects, namespaces, object or namespace
* @param int $filter (optional) Filter of properties. Uses ReflectionProperty class constants. * @param int $filter (optional) Filter of properties. Uses ReflectionProperty class constants.
* By default all properties are returned. * By default all properties are returned.
*
* @return array|ReflectionProperty * @return array|ReflectionProperty
*/ */
public static function getProperties($source, $filter = null) public static function getProperties($source, $filter = null)
@@ -438,9 +453,10 @@ class Reflection
} }
/** /**
* Returns a parent class * Returns a parent class.
* *
* @param array|object|string $source An array of objects, namespaces, object or namespace * @param array|object|string $source An array of objects, namespaces, object or namespace
*
* @return ReflectionClass * @return ReflectionClass
*/ */
public static function getParentClass($source) public static function getParentClass($source)
@@ -457,7 +473,9 @@ class Reflection
* *
* @param array|object|string $class Class who child classes should be returned. An array of objects, strings, * @param array|object|string $class Class who child classes should be returned. An array of objects, strings,
* object or string. * object or string.
*
* @return array|null * @return array|null
*
* @throws CannotResolveClassNameException * @throws CannotResolveClassNameException
*/ */
public static function getChildClasses($class) public static function getChildClasses($class)
@@ -512,6 +530,7 @@ class Reflection
* *
* @param array|object|string $parentClass Class who child class should be returned. An array of objects, * @param array|object|string $parentClass Class who child class should be returned. An array of objects,
* namespaces, object or namespace. * namespaces, object or namespace.
*
* @return mixed * @return mixed
* *
* @throws MissingChildClassesException * @throws MissingChildClassesException
@@ -541,12 +560,13 @@ class Reflection
} }
/** /**
* Returns property, the ReflectionProperty instance, of given object * Returns property, the ReflectionProperty instance, of given object.
* *
* @param array|object|string $class An array of objects, namespaces, object or namespace * @param array|object|string $class An array of objects, namespaces, object or namespace
* @param string $property Name of the property * @param string $property Name of the property
* @param int $filter (optional) Filter of properties. Uses ReflectionProperty class constants. * @param int $filter (optional) Filter of properties. Uses ReflectionProperty class constants.
* By default all properties are allowed / processed. * By default all properties are allowed / processed.
*
* @return null|ReflectionProperty * @return null|ReflectionProperty
*/ */
public static function getProperty($class, $property, $filter = null) public static function getProperty($class, $property, $filter = null)
@@ -567,13 +587,15 @@ class Reflection
} }
/** /**
* Returns information if given class / object uses / implements given trait * Returns information if given class / object uses / implements given trait.
* *
* @param array|object|string $class An array of objects, namespaces, object or namespace * @param array|object|string $class An array of objects, namespaces, object or namespace
* @param array|string $trait An array of strings or string * @param array|string $trait An array of strings or string
* @param bool $verifyParents If is set to true, parent classes are verified if they use given * @param bool $verifyParents If is set to true, parent classes are verified if they use given
* trait. Otherwise - not. * trait. Otherwise - not.
*
* @return bool|null * @return bool|null
*
* @throws CannotResolveClassNameException * @throws CannotResolveClassNameException
*/ */
public static function usesTrait($class, $trait, $verifyParents = false) public static function usesTrait($class, $trait, $verifyParents = false)
@@ -616,6 +638,7 @@ class Reflection
* If given class does not extend another, returns null. * If given class does not extend another, returns null.
* *
* @param array|object|string $class An array of objects, namespaces, object or namespace * @param array|object|string $class An array of objects, namespaces, object or namespace
*
* @return string|null * @return string|null
*/ */
public static function getParentClassName($class) public static function getParentClassName($class)

View File

@@ -8,11 +8,11 @@
namespace Meritoo\Common\Utilities; namespace Meritoo\Common\Utilities;
use Meritoo\Common\Exception\IncorrectColorHexLengthException; use Meritoo\Common\Exception\Regex\IncorrectColorHexLengthException;
use Meritoo\Common\Exception\InvalidColorHexValueException; use Meritoo\Common\Exception\Regex\InvalidColorHexValueException;
/** /**
* Useful regular expressions methods * Useful regular expressions methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -20,7 +20,7 @@ use Meritoo\Common\Exception\InvalidColorHexValueException;
class Regex class Regex
{ {
/** /**
* Patterns used to validate / verify values * Patterns used to validate / verify values.
* *
* @var array * @var array
*/ */
@@ -40,9 +40,10 @@ class Regex
]; ];
/** /**
* Returns information if given e-mail address is valid * Returns information if given e-mail address is valid.
* *
* @param string $email E-mail address to validate / verify * @param string $email E-mail address to validate / verify
*
* @return bool * @return bool
* *
* Examples: * Examples:
@@ -62,9 +63,10 @@ class Regex
} }
/** /**
* Returns information if given tax ID (in polish: NIP) is valid * Returns information if given tax ID (in polish: NIP) is valid.
* *
* @param string $taxidString Tax ID (NIP) string * @param string $taxidString Tax ID (NIP) string
*
* @return bool * @return bool
*/ */
public static function isValidTaxid($taxidString) public static function isValidTaxid($taxidString)
@@ -99,11 +101,12 @@ class Regex
} }
/** /**
* Returns information if given url address is valid * Returns information if given url address is valid.
* *
* @param string $url The url to validate / verify * @param string $url The url to validate / verify
* @param bool $requireProtocol (optional) If is set to true, the protocol is required to be passed in the url. * @param bool $requireProtocol (optional) If is set to true, the protocol is required to be passed in the url.
* Otherwise - not. * Otherwise - not.
*
* @return bool * @return bool
*/ */
public static function isValidUrl($url, $requireProtocol = false) public static function isValidUrl($url, $requireProtocol = false)
@@ -114,9 +117,10 @@ class Regex
} }
/** /**
* Returns information if given phone number is valid * Returns information if given phone number is valid.
* *
* @param string $phoneNumber The phone number to validate / verify * @param string $phoneNumber The phone number to validate / verify
*
* @return bool * @return bool
*/ */
public static function isValidPhoneNumber($phoneNumber) public static function isValidPhoneNumber($phoneNumber)
@@ -127,12 +131,13 @@ class Regex
} }
/** /**
* Returns array values that matches given pattern (or values that keys matches) * Returns array values that matches given pattern (or values that keys matches).
* *
* @param string $pattern Pattern to match * @param string $pattern Pattern to match
* @param array $dataArray The array * @param array $dataArray The array
* @param bool $itsKeyPattern (optional) If is set to true, keys are checks if they match pattern. Otherwise - * @param bool $itsKeyPattern (optional) If is set to true, keys are checks if they match pattern. Otherwise -
* values are checks. * values are checks.
*
* @return array * @return array
*/ */
public static function getArrayValuesByPattern($pattern, $dataArray, $itsKeyPattern = false) public static function getArrayValuesByPattern($pattern, $dataArray, $itsKeyPattern = false)
@@ -157,7 +162,7 @@ class Regex
} }
/** /**
* Filters array by given expression and column * Filters array by given expression and column.
* *
* Expression can be simple compare expression, like ' == 2', or regular expression. * Expression can be simple compare expression, like ' == 2', or regular expression.
* Returns filtered array. * Returns filtered array.
@@ -167,6 +172,7 @@ class Regex
* @param string $filterExpression Filter expression, e.g. '== 2' or '!= \'home\'' * @param string $filterExpression Filter expression, e.g. '== 2' or '!= \'home\''
* @param bool $itsRegularExpression (optional) If is set to true, means that filter expression is a * @param bool $itsRegularExpression (optional) If is set to true, means that filter expression is a
* regular expression * regular expression
*
* @return array * @return array
*/ */
public static function arrayFilter($array, $arrayColumnKey, $filterExpression, $itsRegularExpression = false) public static function arrayFilter($array, $arrayColumnKey, $filterExpression, $itsRegularExpression = false)
@@ -217,6 +223,7 @@ class Regex
* @param string $subject The string to check * @param string $subject The string to check
* @param bool $mustAllMatch (optional) If is set to true, $subject must match all $patterns. Otherwise - * @param bool $mustAllMatch (optional) If is set to true, $subject must match all $patterns. Otherwise -
* not. * not.
*
* @return bool * @return bool
*/ */
public static function pregMultiMatch($patterns, $subject, $mustAllMatch = false) public static function pregMultiMatch($patterns, $subject, $mustAllMatch = false)
@@ -238,6 +245,7 @@ class Regex
} else { } else {
if ($matched) { if ($matched) {
$effect = $matched; $effect = $matched;
break; break;
} }
} }
@@ -248,11 +256,12 @@ class Regex
} }
/** /**
* Returns string in human readable style generated from given camel case string / text * Returns string in human readable style generated from given camel case string / text.
* *
* @param string $string The string / text to convert * @param string $string The string / text to convert
* @param bool $applyUpperCaseFirst (optional) If is set to true, first word / element from the converted * @param bool $applyUpperCaseFirst (optional) If is set to true, first word / element from the converted
* string is uppercased. Otherwise - not. * string is uppercased. Otherwise - not.
*
* @return string * @return string
*/ */
public static function camelCase2humanReadable($string, $applyUpperCaseFirst = false) public static function camelCase2humanReadable($string, $applyUpperCaseFirst = false)
@@ -277,9 +286,10 @@ class Regex
} }
/** /**
* Returns parts of given camel case string / text * Returns parts of given camel case string / text.
* *
* @param string $string The string / text to retrieve parts * @param string $string The string / text to retrieve parts
*
* @return array * @return array
*/ */
public static function getCamelCaseParts($string) public static function getCamelCaseParts($string)
@@ -292,11 +302,12 @@ class Regex
} }
/** /**
* Returns simple, lowercase string generated from given camel case string / text * Returns simple, lowercase string generated from given camel case string / text.
* *
* @param string $string The string / text to convert * @param string $string The string / text to convert
* @param string $separator (optional) Separator used to concatenate parts of the string, e.g. '-' or '_' * @param string $separator (optional) Separator used to concatenate parts of the string, e.g. '-' or '_'
* @param bool $applyLowercase (optional) If is set to true, returned string will be lowercased. Otherwise - not. * @param bool $applyLowercase (optional) If is set to true, returned string will be lowercased. Otherwise - not.
*
* @return string * @return string
*/ */
public static function camelCase2simpleLowercase($string, $separator = '', $applyLowercase = true) public static function camelCase2simpleLowercase($string, $separator = '', $applyLowercase = true)
@@ -315,7 +326,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify or get e-mail address * Returns pattern used to validate / verify or get e-mail address.
* *
* @return string * @return string
*/ */
@@ -325,7 +336,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify or get phone number * Returns pattern used to validate / verify or get phone number.
* *
* @return string * @return string
*/ */
@@ -335,7 +346,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify or get camel case parts of string * Returns pattern used to validate / verify or get camel case parts of string.
* *
* @return string * @return string
*/ */
@@ -345,10 +356,11 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify or get url address * Returns pattern used to validate / verify or get url address.
* *
* @param bool $requireProtocol (optional) If is set to true, the protocol is required to be passed in the url. * @param bool $requireProtocol (optional) If is set to true, the protocol is required to be passed in the url.
* Otherwise - not. * Otherwise - not.
*
* @return string * @return string
*/ */
public static function getUrlPattern($requireProtocol = false) public static function getUrlPattern($requireProtocol = false)
@@ -365,10 +377,11 @@ class Regex
} }
/** /**
* Returns information if given path is sub-path of another path, e.g. path file is owned by path of directory * Returns information if given path is sub-path of another path, e.g. path file is owned by path of directory.
* *
* @param string $subPath Path to verify, probably sub-path * @param string $subPath Path to verify, probably sub-path
* @param string $path Main / parent path * @param string $path Main / parent path
*
* @return bool * @return bool
*/ */
public static function isSubPathOf($subPath, $path) public static function isSubPathOf($subPath, $path)
@@ -399,7 +412,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify letter or digit * Returns pattern used to validate / verify letter or digit.
* *
* @return string * @return string
*/ */
@@ -409,9 +422,10 @@ class Regex
} }
/** /**
* Returns information if given character is a letter or digit * Returns information if given character is a letter or digit.
* *
* @param string $char Character to check * @param string $char Character to check
*
* @return bool * @return bool
*/ */
public static function isLetterOrDigit($char) public static function isLetterOrDigit($char)
@@ -422,10 +436,11 @@ class Regex
} }
/** /**
* Returns information if the string starts with given beginning / characters * Returns information if the string starts with given beginning / characters.
* *
* @param string $string String to check * @param string $string String to check
* @param string $beginning The beginning of string, one or more characters * @param string $beginning The beginning of string, one or more characters
*
* @return bool * @return bool
*/ */
public static function startsWith($string, $beginning) public static function startsWith($string, $beginning)
@@ -444,10 +459,11 @@ class Regex
} }
/** /**
* Returns information if the string ends with given ending / characters * Returns information if the string ends with given ending / characters.
* *
* @param string $string String to check * @param string $string String to check
* @param string $ending The ending of string, one or more characters * @param string $ending The ending of string, one or more characters
*
* @return bool * @return bool
*/ */
public static function endsWith($string, $ending) public static function endsWith($string, $ending)
@@ -460,11 +476,12 @@ class Regex
} }
/** /**
* Returns information if the string starts with directory's separator * Returns information if the string starts with directory's separator.
* *
* @param string $string String that may contain a directory's separator at the start / beginning * @param string $string String that may contain a directory's separator at the start / beginning
* @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's * @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's
* separator is used. * separator is used.
*
* @return bool * @return bool
*/ */
public static function startsWithDirectorySeparator($string, $separator = '') public static function startsWithDirectorySeparator($string, $separator = '')
@@ -477,11 +494,12 @@ class Regex
} }
/** /**
* Returns information if the string ends with directory's separator * Returns information if the string ends with directory's separator.
* *
* @param string $text String that may contain a directory's separator at the end * @param string $text String that may contain a directory's separator at the end
* @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's * @param string $separator (optional) The directory's separator, e.g. "/". If is empty (not provided), system's
* separator is used. * separator is used.
*
* @return string * @return string
*/ */
public static function endsWithDirectorySeparator($text, $separator = '') public static function endsWithDirectorySeparator($text, $separator = '')
@@ -494,10 +512,11 @@ class Regex
} }
/** /**
* Returns information if uri contains parameter * Returns information if uri contains parameter.
* *
* @param string $uri Uri string (e.g. $_SERVER['REQUEST_URI']) * @param string $uri Uri string (e.g. $_SERVER['REQUEST_URI'])
* @param string $parameterName Uri parameter name * @param string $parameterName Uri parameter name
*
* @return bool * @return bool
*/ */
public static function isSetUriParameter($uri, $parameterName) public static function isSetUriParameter($uri, $parameterName)
@@ -506,7 +525,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify html entity * Returns pattern used to validate / verify html entity.
* *
* @return string * @return string
*/ */
@@ -516,9 +535,10 @@ class Regex
} }
/** /**
* Returns information if the string contains html entities * Returns information if the string contains html entities.
* *
* @param string $string String to check * @param string $string String to check
*
* @return bool * @return bool
*/ */
public static function containsEntities($string) public static function containsEntities($string)
@@ -529,10 +549,11 @@ class Regex
} }
/** /**
* Returns information if one string contains another string * Returns information if one string contains another string.
* *
* @param string $haystack The string to search in * @param string $haystack The string to search in
* @param string $needle The string to be search for * @param string $needle The string to be search for
*
* @return bool * @return bool
*/ */
public static function contains($haystack, $needle) public static function contains($haystack, $needle)
@@ -545,7 +566,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify name of file * Returns pattern used to validate / verify name of file.
* *
* @return string * @return string
*/ */
@@ -559,6 +580,7 @@ class Regex
* Verifies if given name contains a dot and an extension, e.g. "My File 001.jpg". * Verifies if given name contains a dot and an extension, e.g. "My File 001.jpg".
* *
* @param string $fileName Name of file to check. It may be path of file also. * @param string $fileName Name of file to check. It may be path of file also.
*
* @return bool * @return bool
*/ */
public static function isFileName($fileName) public static function isFileName($fileName)
@@ -569,7 +591,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify if value is quoted (by apostrophes or quotation marks) * Returns pattern used to validate / verify if value is quoted (by apostrophes or quotation marks).
* *
* @return string * @return string
*/ */
@@ -579,9 +601,10 @@ class Regex
} }
/** /**
* Returns information if given value is quoted (by apostrophes or quotation marks) * Returns information if given value is quoted (by apostrophes or quotation marks).
* *
* @param mixed $value The value to check * @param mixed $value The value to check
*
* @return bool * @return bool
*/ */
public static function isQuoted($value) public static function isQuoted($value)
@@ -592,7 +615,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify if given path is a Windows-based path, e.g. "C:\path\to\file.jpg" * Returns pattern used to validate / verify if given path is a Windows-based path, e.g. "C:\path\to\file.jpg".
* *
* @return string * @return string
*/ */
@@ -602,9 +625,10 @@ class Regex
} }
/** /**
* Returns information if given path is a Windows-based path, e.g. "C:\path\to\file.jpg" * Returns information if given path is a Windows-based path, e.g. "C:\path\to\file.jpg".
* *
* @param string $path The path to verify * @param string $path The path to verify
*
* @return bool * @return bool
*/ */
public static function isWindowsBasedPath($path) public static function isWindowsBasedPath($path)
@@ -615,9 +639,10 @@ class Regex
} }
/** /**
* Returns information if given NIP number is valid * Returns information if given NIP number is valid.
* *
* @param string $nip A given NIP number * @param string $nip A given NIP number
*
* @return bool * @return bool
* *
* @see https://pl.wikipedia.org/wiki/NIP#Znaczenie_numeru * @see https://pl.wikipedia.org/wiki/NIP#Znaczenie_numeru
@@ -659,7 +684,7 @@ class Regex
} }
/** /**
* Returns pattern used to validate / verify if given value is money-related value * Returns pattern used to validate / verify if given value is money-related value.
* *
* @return string * @return string
*/ */
@@ -669,9 +694,10 @@ class Regex
} }
/** /**
* Returns information if given value is valid money-related value * Returns information if given value is valid money-related value.
* *
* @param mixed $value Value to verify * @param mixed $value Value to verify
*
* @return bool * @return bool
*/ */
public static function isValidMoneyValue($value) public static function isValidMoneyValue($value)
@@ -688,6 +714,7 @@ class Regex
* @param string $color Color to verify * @param string $color Color to verify
* @param bool $throwException (optional) If is set to true, throws an exception if given color is invalid * @param bool $throwException (optional) If is set to true, throws an exception if given color is invalid
* (default behaviour). Otherwise - not. * (default behaviour). Otherwise - not.
*
* @return string|bool * @return string|bool
* *
* @throws IncorrectColorHexLengthException * @throws IncorrectColorHexLengthException

View File

@@ -12,7 +12,7 @@ use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
/** /**
* Useful methods for repository * Useful methods for repository.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -20,7 +20,7 @@ use Doctrine\ORM\QueryBuilder;
class Repository class Repository
{ {
/** /**
* Replenishes positions of given items * Replenishes positions of given items.
* *
* @param array $items The items * @param array $items The items
* @param bool $asLast (optional) If is set to true, items are placed at the end. Otherwise - at the top. * @param bool $asLast (optional) If is set to true, items are placed at the end. Otherwise - at the top.
@@ -55,10 +55,11 @@ class Repository
} }
/** /**
* Returns extreme position (max or min) of given items * Returns extreme position (max or min) of given items.
* *
* @param array $items The items * @param array $items The items
* @param bool $max (optional) If is set to true, maximum value is returned. Otherwise - minimum. * @param bool $max (optional) If is set to true, maximum value is returned. Otherwise - minimum.
*
* @return int * @return int
*/ */
public static function getExtremePosition($items, $max = true) public static function getExtremePosition($items, $max = true)
@@ -93,6 +94,7 @@ class Repository
* @param EntityRepository $repository Repository of the entity * @param EntityRepository $repository Repository of the entity
* @param string $property (optional) Name of property used by the ORDER BY clause * @param string $property (optional) Name of property used by the ORDER BY clause
* @param string $direction (optional) Direction used by the ORDER BY clause ("ASC" or "DESC") * @param string $direction (optional) Direction used by the ORDER BY clause ("ASC" or "DESC")
*
* @return QueryBuilder * @return QueryBuilder
*/ */
public static function getEntityOrderedQueryBuilder( public static function getEntityOrderedQueryBuilder(

View File

@@ -1,103 +0,0 @@
<?php
namespace Meritoo\Common\Utilities;
use DateTime;
use Generator;
/**
* Test case with common methods and data providers
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class TestCase extends \PHPUnit_Framework_TestCase
{
/**
* Provides an empty value
*
* @return Generator
*/
public function provideEmptyValue()
{
yield[''];
yield[' '];
yield[null];
yield[0];
yield[false];
yield[[]];
}
/**
* Provides boolean value
*
* @return Generator
*/
public function provideBooleanValue()
{
yield[false];
yield[true];
}
/**
* Provides instance of DateTime class
*
* @return Generator
*/
public function provideDateTimeInstance()
{
yield[new DateTime()];
yield[new DateTime('yesterday')];
yield[new DateTime('now')];
yield[new DateTime('tomorrow')];
}
/**
* Provides relative / compound format of DateTime
*
* @return Generator
*/
public function provideDateTimeRelativeFormat()
{
yield['now'];
yield['yesterday'];
yield['tomorrow'];
yield['back of 10'];
yield['front of 10'];
yield['last day of February'];
yield['first day of next month'];
yield['last day of previous month'];
yield['last day of next month'];
yield['Y-m-d'];
yield['Y-m-d 10:00'];
}
/**
* Provides path of not existing file, e.g. "lorem/ipsum.jpg"
*
* @return Generator
*/
public function provideNotExistingFilePath()
{
yield['lets-test.doc'];
yield['lorem/ipsum.jpg'];
yield['suprise/me/one/more/time.txt'];
}
/**
* Returns path of file used by tests.
* It should be placed in /data/tests directory of this project.
*
* @param string $fileName Name of file
* @param string $directoryPath (optional) Path of directory containing the file
* @return string
*/
public function getFilePathToTests($fileName, $directoryPath = '')
{
if (!empty($directoryPath)) {
$directoryPath = '/' . $directoryPath;
}
return sprintf('%s/../../../../data/tests/%s%s', __DIR__, $fileName, $directoryPath);
}
}

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities; namespace Meritoo\Common\Utilities;
/** /**
* Useful uri methods (only static functions) * Useful uri methods (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -17,9 +17,10 @@ namespace Meritoo\Common\Utilities;
class Uri class Uri
{ {
/** /**
* Returns full uri string * Returns full uri string.
* *
* @param bool $withoutHost (optional) If is set to true, means that host / server name is omitted * @param bool $withoutHost (optional) If is set to true, means that host / server name is omitted
*
* @return string * @return string
*/ */
public static function getFullUri($withoutHost = false) public static function getFullUri($withoutHost = false)
@@ -34,9 +35,10 @@ class Uri
} }
/** /**
* Returns server name or IP address * Returns server name or IP address.
* *
* @param bool $withProtocol (optional) If is set to true, protocol name is included. Otherwise isn't. * @param bool $withProtocol (optional) If is set to true, protocol name is included. Otherwise isn't.
*
* @return string * @return string
*/ */
public static function getServerNameOrIp($withProtocol = false) public static function getServerNameOrIp($withProtocol = false)
@@ -51,7 +53,7 @@ class Uri
} }
/** /**
* Returns protocol name * Returns protocol name.
* *
* @return string * @return string
*/ */
@@ -76,7 +78,7 @@ class Uri
} }
/** /**
* Returns http referer uri * Returns http referer uri.
* *
* @return string * @return string
*/ */
@@ -92,7 +94,7 @@ class Uri
} }
/** /**
* Returns user's IP address * Returns user's IP address.
* *
* @return string * @return string
*/ */
@@ -102,10 +104,11 @@ class Uri
} }
/** /**
* Returns name and version of user's web browser * Returns name and version of user's web browser.
* *
* @param bool $withVersion (optional) If is set to true, version of the browser is returned too. Otherwise - * @param bool $withVersion (optional) If is set to true, version of the browser is returned too. Otherwise -
* name only. * name only.
*
* @return string * @return string
*/ */
public static function getUserWebBrowserName($withVersion = false) public static function getUserWebBrowserName($withVersion = false)
@@ -138,7 +141,7 @@ class Uri
} }
/** /**
* Returns user's web browser information * Returns user's web browser information.
* *
* @return string * @return string
* *
@@ -164,7 +167,7 @@ class Uri
} }
/** /**
* Returns name of user's operating system * Returns name of user's operating system.
* *
* @return string * @return string
*/ */
@@ -191,7 +194,7 @@ class Uri
} }
/** /**
* Returns information if running server is localhost * Returns information if running server is localhost.
* *
* @return bool * @return bool
*/ */
@@ -207,9 +210,10 @@ class Uri
} }
/** /**
* Returns information if given url is external, from another server / domain * Returns information if given url is external, from another server / domain.
* *
* @param string $url The url to check * @param string $url The url to check
*
* @return bool * @return bool
*/ */
public static function isExternalUrl($url) public static function isExternalUrl($url)
@@ -221,11 +225,12 @@ class Uri
} }
/** /**
* Replenishes protocol in the given url * Replenishes protocol in the given url.
* *
* @param string $url The url to check and replenish * @param string $url The url to check and replenish
* @param string $protocol (optional) The protocol which is replenished. If is empty, protocol of current request * @param string $protocol (optional) The protocol which is replenished. If is empty, protocol of current request
* is used. * is used.
*
* @return string * @return string
*/ */
public static function replenishProtocol($url, $protocol = '') public static function replenishProtocol($url, $protocol = '')
@@ -264,11 +269,12 @@ class Uri
} }
/** /**
* Returns url to resource secured by given htpasswd login and password * Returns url to resource secured by given htpasswd login and password.
* *
* @param string $url A path / url to some resource, e.g. page, image, css file * @param string $url A path / url to some resource, e.g. page, image, css file
* @param string $user (optional) User name used to log in * @param string $user (optional) User name used to log in
* @param string $password (optional) User password used to log in * @param string $password (optional) User password used to log in
*
* @return string * @return string
*/ */
public static function getSecuredUrl($url, $user = '', $password = '') public static function getSecuredUrl($url, $user = '', $password = '')
@@ -295,6 +301,7 @@ class Uri
* *
* @param string $url Url string * @param string $url Url string
* @param string $protocol (optional) Protocol string * @param string $protocol (optional) Protocol string
*
* @return string * @return string
*/ */
public static function addProtocolToUrl($url, $protocol = 'http') public static function addProtocolToUrl($url, $protocol = 'http')

View File

@@ -13,7 +13,7 @@ use DOMXPath;
use SimpleXMLElement; use SimpleXMLElement;
/** /**
* Useful XML-related methods (only static functions) * Useful XML-related methods (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -26,6 +26,7 @@ class Xml
* *
* @param SimpleXMLElement $element1 First element to merge * @param SimpleXMLElement $element1 First element to merge
* @param SimpleXMLElement $element2 Second element to merge * @param SimpleXMLElement $element2 Second element to merge
*
* @return SimpleXMLElement * @return SimpleXMLElement
*/ */
public static function mergeNodes(SimpleXMLElement $element1, SimpleXMLElement $element2) public static function mergeNodes(SimpleXMLElement $element1, SimpleXMLElement $element2)

View File

@@ -0,0 +1,329 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Collection;
use ArrayIterator;
use Meritoo\Common\Collection\Collection;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
/**
* Tests of the collection of elements.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class CollectionTest extends BaseTestCase
{
/**
* An empty collection.
*
* @var Collection
*/
private $emptyCollection;
/**
* Simple collection.
*
* @var Collection
*/
private $simpleCollection;
/**
* Elements of simple collection.
*
* @var array
*/
private $simpleElements;
public function testEmptyCollection()
{
static::assertEquals(0, $this->emptyCollection->count());
static::assertCount(0, $this->emptyCollection);
static::assertEmpty($this->emptyCollection);
static::assertTrue($this->emptyCollection->isEmpty());
static::assertEquals([], $this->emptyCollection->toArray());
static::assertEmpty($this->emptyCollection->toArray());
static::assertNull($this->emptyCollection->getFirst());
static::assertNull($this->emptyCollection->getLast());
static::assertNull($this->emptyCollection[1]);
static::assertNull($this->emptyCollection['abc']);
}
public function testNotEmptyCollection()
{
static::assertEquals(4, $this->simpleCollection->count());
static::assertCount(4, $this->simpleCollection);
static::assertNotEmpty($this->simpleCollection);
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals($this->simpleElements, $this->simpleCollection->toArray());
static::assertNotEmpty($this->simpleCollection->toArray());
static::assertEquals('lorem', $this->simpleCollection->getFirst());
static::assertEquals('sit', $this->simpleCollection->getLast());
static::assertEquals('dolor', $this->simpleCollection[123]);
}
public function testCount()
{
static::assertEquals(0, $this->emptyCollection->count());
static::assertEquals(4, $this->simpleCollection->count());
}
public function testOffsetExists()
{
static::assertFalse(isset($this->emptyCollection['abc']));
static::assertFalse(isset($this->simpleCollection['abc']));
static::assertTrue(isset($this->simpleCollection[0]));
static::assertTrue(isset($this->simpleCollection[345]));
}
public function testOffsetGet()
{
static::assertNull($this->emptyCollection['abc']);
static::assertNull($this->simpleCollection['abc']);
static::assertEquals('lorem', $this->simpleCollection[0]);
static::assertEquals('sit', $this->simpleCollection[345]);
}
public function testOffsetSet()
{
$this->emptyCollection['test1'] = 1234;
$this->simpleCollection['test2'] = 5678;
static::assertTrue($this->emptyCollection->has(1234));
static::assertEquals(1234, $this->emptyCollection['test1']);
static::assertTrue($this->simpleCollection->has(5678));
static::assertEquals(5678, $this->simpleCollection['test2']);
}
public function testOffsetUnset()
{
unset($this->simpleCollection[0]);
static::assertFalse($this->simpleCollection->has('lorem'));
static::assertEquals('ipsum', $this->simpleCollection[1]);
static::assertEquals(3, $this->simpleCollection->count());
unset($this->simpleCollection[123]);
static::assertFalse($this->simpleCollection->has('dolor'));
static::assertEquals('ipsum', $this->simpleCollection[1]);
static::assertEquals(2, $this->simpleCollection->count());
}
public function testGetIterator()
{
static::assertInstanceOf(ArrayIterator::class, $this->simpleCollection->getIterator());
}
public function testAdd()
{
$this->emptyCollection->add('test1');
static::assertTrue($this->emptyCollection->has('test1'));
static::assertEquals(1, $this->emptyCollection->count());
static::assertEquals('test1', $this->emptyCollection[0]);
}
public function testAddWithIndex()
{
$this->emptyCollection->add('test2', 1234);
static::assertTrue($this->emptyCollection->has('test2'));
static::assertEquals(1, $this->emptyCollection->count());
static::assertEquals('test2', $this->emptyCollection[1234]);
}
public function testAddMultipleUsingEmptyArray()
{
$this->emptyCollection->addMultiple([]);
static::assertEquals(0, $this->emptyCollection->count());
static::assertTrue($this->emptyCollection->isEmpty());
}
public function testAddMultiple()
{
$elements = [
'test1',
'test2',
1234 => 'test3',
5678 => 'test4',
];
$this->emptyCollection->addMultiple($elements);
static::assertFalse($this->emptyCollection->isEmpty());
static::assertEquals(4, $this->emptyCollection->count());
static::assertEquals('test1', $this->emptyCollection[0]);
static::assertEquals('test2', $this->emptyCollection[1]);
static::assertEquals('test3', $this->emptyCollection[2]);
static::assertEquals('test4', $this->emptyCollection[3]);
}
public function testAddMultipleUsingIndexes()
{
$elements = [
'test1',
'test2',
1234 => 'test3',
5678 => 'test4',
];
$this->emptyCollection->addMultiple($elements, true);
static::assertFalse($this->emptyCollection->isEmpty());
static::assertEquals(4, $this->emptyCollection->count());
static::assertEquals('test1', $this->emptyCollection[0]);
static::assertEquals('test2', $this->emptyCollection[1]);
static::assertEquals('test3', $this->emptyCollection[1234]);
static::assertEquals('test4', $this->emptyCollection[5678]);
}
public function testPrepend()
{
$this->emptyCollection->prepend('lorem-ipsum');
static::assertFalse($this->emptyCollection->isEmpty());
static::assertEquals(1, $this->emptyCollection->count());
static::assertEquals('lorem-ipsum', $this->emptyCollection[0]);
$this->simpleCollection->prepend('lorem-ipsum');
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals(5, $this->simpleCollection->count());
static::assertEquals('lorem-ipsum', $this->simpleCollection[0]);
}
public function testRemoveNotExistingElement()
{
$this->emptyCollection->remove('abc');
static::assertTrue($this->emptyCollection->isEmpty());
static::assertEquals(0, $this->emptyCollection->count());
$this->simpleCollection->remove('abc');
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals(4, $this->simpleCollection->count());
}
public function testRemove()
{
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals(4, $this->simpleCollection->count());
static::assertEquals('ipsum', $this->simpleCollection[1]);
$this->simpleCollection->remove('ipsum');
static::assertFalse($this->simpleCollection->isEmpty());
static::assertEquals(3, $this->simpleCollection->count());
static::assertNull($this->simpleCollection[1]);
}
public function testIsEmpty()
{
static::assertTrue($this->emptyCollection->isEmpty());
static::assertFalse($this->simpleCollection->isEmpty());
}
public function testIsFirst()
{
static::assertFalse($this->emptyCollection->isFirst('abc'));
static::assertFalse($this->simpleCollection->isFirst('abc'));
static::assertFalse($this->simpleCollection->isFirst('dolor'));
static::assertTrue($this->simpleCollection->isFirst('lorem'));
}
public function testIsLast()
{
static::assertFalse($this->emptyCollection->isLast('abc'));
static::assertFalse($this->simpleCollection->isLast('abc'));
static::assertFalse($this->simpleCollection->isLast('dolor'));
static::assertTrue($this->simpleCollection->isLast('sit'));
}
public function testHas()
{
static::assertFalse($this->emptyCollection->has('abc'));
static::assertFalse($this->simpleCollection->has('abc'));
static::assertTrue($this->simpleCollection->has('lorem'));
static::assertTrue($this->simpleCollection->has('dolor'));
}
public function testGetPrevious()
{
static::assertNull($this->emptyCollection->getPrevious('abc'));
static::assertNull($this->simpleCollection->getPrevious('abc'));
static::assertNull($this->simpleCollection->getPrevious('lorem'));
static::assertEquals('lorem', $this->simpleCollection->getPrevious('ipsum'));
static::assertEquals('dolor', $this->simpleCollection->getPrevious('sit'));
}
public function testGetNext()
{
static::assertNull($this->emptyCollection->getNext('abc'));
static::assertNull($this->simpleCollection->getNext('abc'));
static::assertNull($this->simpleCollection->getNext('sit'));
static::assertEquals('dolor', $this->simpleCollection->getNext('ipsum'));
static::assertEquals('sit', $this->simpleCollection->getNext('dolor'));
}
public function testGetFirst()
{
static::assertNull($this->emptyCollection->getFirst());
static::assertEquals('lorem', $this->simpleCollection->getFirst());
}
public function testGetLast()
{
static::assertNull($this->emptyCollection->getLast());
static::assertEquals('sit', $this->simpleCollection->getLast());
}
public function testToArray()
{
static::assertEquals([], $this->emptyCollection->toArray());
static::assertEquals($this->simpleElements, $this->simpleCollection->toArray());
}
public function testExistsVisibilityAndArguments()
{
$this->verifyMethodVisibilityAndArguments(Collection::class, 'exists', OopVisibilityType::IS_PRIVATE, 1, 1);
}
/**
* {@inheritdoc}
*/
protected function setUp()
{
parent::setUp();
$this->simpleElements = [
'lorem',
'ipsum',
123 => 'dolor',
345 => 'sit',
];
$this->emptyCollection = new Collection();
$this->simpleCollection = new Collection($this->simpleElements);
}
}

View File

@@ -6,18 +6,19 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Exception\Base; namespace Meritoo\Common\Test\Exception\Base;
use Meritoo\Common\Exception\Base\UnknownTypeException; use Meritoo\Common\Exception\Base\UnknownTypeException;
use Meritoo\Common\Type\Base\BaseType; use Meritoo\Common\Type\Base\BaseType;
use PHPUnit_Framework_TestCase;
/** /**
* Tests of the exception used while type of something is unknown * Tests of the exception used while type of something is unknown.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class UnknownTypeExceptionTest extends \PHPUnit_Framework_TestCase class UnknownTypeExceptionTest extends PHPUnit_Framework_TestCase
{ {
public function testWithoutException() public function testWithoutException()
{ {
@@ -32,7 +33,7 @@ class UnknownTypeExceptionTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* Type of something (for testing purposes) * Type of something (for testing purposes).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -45,7 +46,7 @@ class TestType extends BaseType
} }
/** /**
* An exception used while type of something is unknown (for testing purposes) * An exception used while type of something is unknown (for testing purposes).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -53,7 +54,7 @@ class TestType extends BaseType
class UnknownTestTypeException extends UnknownTypeException class UnknownTestTypeException extends UnknownTypeException
{ {
/** /**
* Class constructor * Class constructor.
* *
* @param int|string $unknownType The unknown type of something (for testing purposes) * @param int|string $unknownType The unknown type of something (for testing purposes)
*/ */
@@ -64,7 +65,7 @@ class UnknownTestTypeException extends UnknownTypeException
} }
/** /**
* Service used together with type of something (for testing purposes) * Service used together with type of something (for testing purposes).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -72,9 +73,10 @@ class UnknownTestTypeException extends UnknownTypeException
class TestService class TestService
{ {
/** /**
* Returns translated type (for testing purposes) * Returns translated type (for testing purposes).
* *
* @param string $type Type of something (for testing purposes) * @param string $type Type of something (for testing purposes)
*
* @return string * @return string
* *
* @throws UnknownTestTypeException * @throws UnknownTestTypeException

View File

@@ -6,18 +6,19 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Type\Base; namespace Meritoo\Common\Test\Type\Base;
use Generator; use Generator;
use Meritoo\Common\Type\Base\BaseType; use Meritoo\Common\Type\Base\BaseType;
use PHPUnit_Framework_TestCase;
/** /**
* Tests of the base / abstract type of something * Tests of the base / abstract type of something.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class BaseTypeTest extends \PHPUnit_Framework_TestCase class BaseTypeTest extends PHPUnit_Framework_TestCase
{ {
/** /**
* @param BaseType $type Type of something * @param BaseType $type Type of something
@@ -44,7 +45,7 @@ class BaseTypeTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* Provides type of something for testing the getAll() method * Provides type of something for testing the getAll() method.
* *
* @return Generator * @return Generator
*/ */
@@ -65,7 +66,7 @@ class BaseTypeTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* Provides type of something for testing the isCorrectType() method * Provides type of something for testing the isCorrectType() method.
* *
* @return Generator * @return Generator
*/ */
@@ -176,7 +177,7 @@ class BaseTypeTest extends \PHPUnit_Framework_TestCase
} }
/** /**
* Empty type of something used for testing * Empty type of something used for testing.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
@@ -186,7 +187,7 @@ class TestEmptyType extends BaseType
} }
/** /**
* Type of something used for testing * Type of something used for testing.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl

View File

@@ -6,22 +6,25 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Type; namespace Meritoo\Common\Test\Type;
use Generator; use Meritoo\Common\Test\Base\BaseTypeTestCase;
use Meritoo\Common\Type\DatePartType; use Meritoo\Common\Type\DatePartType;
/** /**
* Tests of the type of date part, e.g. "year" * Tests of the type of date part, e.g. "year".
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class DatePartTypeTest extends \PHPUnit_Framework_TestCase class DatePartTypeTest extends BaseTypeTestCase
{ {
public function testGetAll() /**
* {@inheritdoc}
*/
protected function getAllExpectedTypes()
{ {
$expectedTypes = [ return [
'DAY' => DatePartType::DAY, 'DAY' => DatePartType::DAY,
'HOUR' => DatePartType::HOUR, 'HOUR' => DatePartType::HOUR,
'MINUTE' => DatePartType::MINUTE, 'MINUTE' => DatePartType::MINUTE,
@@ -29,29 +32,20 @@ class DatePartTypeTest extends \PHPUnit_Framework_TestCase
'SECOND' => DatePartType::SECOND, 'SECOND' => DatePartType::SECOND,
'YEAR' => DatePartType::YEAR, 'YEAR' => DatePartType::YEAR,
]; ];
$all = (new DatePartType())->getAll();
self::assertEquals($expectedTypes, $all);
} }
/** /**
* @param string $toVerifyType Concrete type to verify (of given instance of type) * {@inheritdoc}
* @param bool $isCorrect Expected information if given type is correct
*
* @dataProvider provideConcreteType
*/ */
public function testIsCorrectType($toVerifyType, $isCorrect) protected function getTestedTypeInstance()
{ {
$type = new DatePartType(); return new DatePartType();
self::assertEquals($isCorrect, $type->isCorrectType($toVerifyType));
} }
/** /**
* Provides type of something for testing the isCorrectType() method * {@inheritdoc}
*
* @return Generator
*/ */
public function provideConcreteType() public function provideTypeToVerify()
{ {
yield[ yield[
'', '',

View File

@@ -6,17 +6,18 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Arrays; use Meritoo\Common\Utilities\Arrays;
use PHPUnit_Framework_TestCase;
/** /**
* Tests of the useful arrays methods * Tests of the useful arrays methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class ArraysTest extends \PHPUnit_Framework_TestCase class ArraysTest extends PHPUnit_Framework_TestCase
{ {
private $simpleArray; private $simpleArray;
private $simpleArrayWithKeys; private $simpleArrayWithKeys;
@@ -1657,7 +1658,7 @@ letsTest[2] = value_2;';
} }
/** /**
* Provides simple array to set/replace values with keys * Provides simple array to set/replace values with keys.
* *
* @return \Generator * @return \Generator
*/ */
@@ -1697,7 +1698,7 @@ letsTest[2] = value_2;';
} }
/** /**
* Provides an array with duplicated values to set/replace values with keys * Provides an array with duplicated values to set/replace values with keys.
* *
* @return \Generator * @return \Generator
*/ */

View File

@@ -6,17 +6,18 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Bundle; use Meritoo\Common\Utilities\Bundle;
use PHPUnit_Framework_TestCase;
/** /**
* Tests of the useful methods for bundle * Tests of the useful methods for bundle.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class BundleTest extends \PHPUnit_Framework_TestCase class BundleTest extends PHPUnit_Framework_TestCase
{ {
public function testGetBundleViewPathEmptyPathAndBundle() public function testGetBundleViewPathEmptyPathAndBundle()
{ {

View File

@@ -6,21 +6,22 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Composer; use Meritoo\Common\Utilities\Composer;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of the useful Composer-related methods * Tests of the useful Composer-related methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class ComposerTest extends TestCase class ComposerTest extends BaseTestCase
{ {
/** /**
* Path of existing composer.json used as source of data for tests * Path of existing composer.json used as source of data for tests.
* *
* @var string * @var string
*/ */
@@ -58,9 +59,9 @@ class ComposerTest extends TestCase
} }
/** /**
* Provides names and values of existing nodes * Provides names and values of existing nodes.
* *
* @return \Generator * @return Generator
*/ */
public function getExistingNode() public function getExistingNode()
{ {

View File

@@ -1,20 +1,32 @@
<?php <?php
namespace Meritoo\Common\Tests\Utilities; /**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Utilities;
use DateTime; use DateTime;
use Generator; use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Type\OopVisibilityType;
use Meritoo\Common\Utilities\DatePeriod; use Meritoo\Common\Utilities\DatePeriod;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of date's period * Tests of date's period.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class DatePeriodTest extends TestCase class DatePeriodTest extends BaseTestCase
{ {
public function testConstructorVisibilityAndArguments()
{
$this->verifyConstructorVisibilityAndArguments(DatePeriod::class, OopVisibilityType::IS_PUBLIC, 2, 0);
}
/** /**
* @param DateTime $startDate (optional) Start date of period * @param DateTime $startDate (optional) Start date of period
* @param DateTime $endDate (optional) End date of period * @param DateTime $endDate (optional) End date of period
@@ -98,7 +110,7 @@ class DatePeriodTest extends TestCase
} }
/** /**
* Provides the start and end date of date period * Provides the start and end date of date period.
* *
* @return Generator * @return Generator
*/ */
@@ -131,7 +143,7 @@ class DatePeriodTest extends TestCase
} }
/** /**
* Provides incorrect period * Provides incorrect period.
* *
* @return Generator * @return Generator
*/ */
@@ -143,7 +155,7 @@ class DatePeriodTest extends TestCase
} }
/** /**
* Provides period to verify * Provides period to verify.
* *
* @return Generator * @return Generator
*/ */
@@ -161,7 +173,7 @@ class DatePeriodTest extends TestCase
} }
/** /**
* Provides period and incorrect format of date to verify * Provides period and incorrect format of date to verify.
* *
* @return Generator * @return Generator
*/ */
@@ -187,7 +199,7 @@ class DatePeriodTest extends TestCase
} }
/** /**
* Provides period and format of date to verify * Provides period and format of date to verify.
* *
* @return Generator * @return Generator
*/ */

View File

@@ -6,22 +6,22 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use DateInterval; use DateInterval;
use DateTime; use DateTime;
use Generator; use Generator;
use Meritoo\Common\Exception\Date\IncorrectDatePartException; use Meritoo\Common\Exception\Date\UnknownDatePartTypeException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Date; use Meritoo\Common\Utilities\Date;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of the Date methods (only static functions) * Tests of the Date methods (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class DateTest extends TestCase class DateTest extends BaseTestCase
{ {
/** /**
* @param mixed $value Empty value, e.g. "" * @param mixed $value Empty value, e.g. ""
@@ -218,7 +218,7 @@ class DateTest extends TestCase
*/ */
public function testGetDayOfWeekIncorrectValues($year, $month, $day) public function testGetDayOfWeekIncorrectValues($year, $month, $day)
{ {
$this->expectException(IncorrectDatePartException::class); $this->expectException(UnknownDatePartTypeException::class);
self::assertEmpty(Date::getDayOfWeek($year, $month, $day)); self::assertEmpty(Date::getDayOfWeek($year, $month, $day));
} }
@@ -454,8 +454,11 @@ class DateTest extends TestCase
$start = 1; $start = 1;
$end = 100; $end = 100;
$intervalMinDate = (clone $startDate)->add(new DateInterval(sprintf('P%dD', $start))); $minDate = clone $startDate;
$intervalMaxDate = (clone $startDate)->add(new DateInterval(sprintf('P%dD', $end))); $maxDate = clone $startDate;
$intervalMinDate = $minDate->add(new DateInterval(sprintf('P%dD', $start)));
$intervalMaxDate = $maxDate->add(new DateInterval(sprintf('P%dD', $end)));
$randomDate = Date::getRandomDate(); $randomDate = Date::getRandomDate();
self::assertTrue($randomDate >= $intervalMinDate && $randomDate <= $intervalMaxDate); self::assertTrue($randomDate >= $intervalMinDate && $randomDate <= $intervalMaxDate);
@@ -471,7 +474,9 @@ class DateTest extends TestCase
public function testGetRandomDateIncorrectEnd(DateTime $startDate, $start, $end) public function testGetRandomDateIncorrectEnd(DateTime $startDate, $start, $end)
{ {
$randomDate = Date::getRandomDate($startDate, $start, $end); $randomDate = Date::getRandomDate($startDate, $start, $end);
$intervalDate = (clone $startDate)->add(new DateInterval(sprintf('P%dD', $start)));
$cloned = clone $startDate;
$intervalDate = $cloned->add(new DateInterval(sprintf('P%dD', $start)));
self::assertTrue($randomDate >= $intervalDate && $randomDate <= $intervalDate); self::assertTrue($randomDate >= $intervalDate && $randomDate <= $intervalDate);
} }
@@ -487,14 +492,17 @@ class DateTest extends TestCase
{ {
$randomDate = Date::getRandomDate($startDate, $start, $end); $randomDate = Date::getRandomDate($startDate, $start, $end);
$intervalMinDate = (clone $startDate)->add(new DateInterval(sprintf('P%dD', $start))); $minDate = clone $startDate;
$intervalMaxDate = (clone $startDate)->add(new DateInterval(sprintf('P%dD', $end))); $maxDate = clone $startDate;
$intervalMinDate = $minDate->add(new DateInterval(sprintf('P%dD', $start)));
$intervalMaxDate = $maxDate->add(new DateInterval(sprintf('P%dD', $end)));
self::assertTrue($randomDate >= $intervalMinDate && $randomDate <= $intervalMaxDate); self::assertTrue($randomDate >= $intervalMinDate && $randomDate <= $intervalMaxDate);
} }
/** /**
* Provides incorrect invalidCount of DateTime * Provides incorrect invalidCount of DateTime.
* *
* @return Generator * @return Generator
*/ */
@@ -544,7 +552,7 @@ class DateTest extends TestCase
} }
/** /**
* Provides invalid format of date * Provides invalid format of date.
* *
* @return Generator * @return Generator
*/ */
@@ -562,7 +570,7 @@ class DateTest extends TestCase
} }
/** /**
* Provide empty dates for date difference * Provide empty dates for date difference.
* *
* @return Generator * @return Generator
*/ */
@@ -590,7 +598,7 @@ class DateTest extends TestCase
} }
/** /**
* Provides incorrect values of year, month and day * Provides incorrect values of year, month and day.
* *
* @return Generator * @return Generator
*/ */
@@ -640,7 +648,7 @@ class DateTest extends TestCase
} }
/** /**
* Provides values of year, month and day * Provides values of year, month and day.
* *
* @return Generator * @return Generator
*/ */
@@ -690,7 +698,7 @@ class DateTest extends TestCase
} }
/** /**
* Provides data for the random date with incorrect end of random partition * Provides data for the random date with incorrect end of random partition.
* *
* @return Generator * @return Generator
*/ */
@@ -704,7 +712,7 @@ class DateTest extends TestCase
} }
/** /**
* Provides data for the random date * Provides data for the random date.
* *
* @return Generator * @return Generator
*/ */

View File

@@ -6,18 +6,18 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\GeneratorUtility; use Meritoo\Common\Utilities\GeneratorUtility;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of the useful methods for the Generator class * Tests of the useful methods for the Generator class.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class GeneratorUtilityTest extends TestCase class GeneratorUtilityTest extends BaseTestCase
{ {
public function testGetGeneratorElements() public function testGetGeneratorElements()
{ {

View File

@@ -6,19 +6,19 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Generator; use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Locale; use Meritoo\Common\Utilities\Locale;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of the useful locale methods * Tests of the useful locale methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class LocaleTest extends TestCase class LocaleTest extends BaseTestCase
{ {
/** /**
* @param mixed $languageCode Empty value, e.g. "" * @param mixed $languageCode Empty value, e.g. ""
@@ -64,7 +64,7 @@ class LocaleTest extends TestCase
} }
/** /**
* Provides language and country code * Provides language and country code.
* *
* @return Generator * @return Generator
*/ */
@@ -100,7 +100,7 @@ class LocaleTest extends TestCase
} }
/** /**
* Provides category and language * Provides category and language.
* *
* @return Generator * @return Generator
*/ */

View File

@@ -6,19 +6,19 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Generator; use Generator;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\MimeTypes; use Meritoo\Common\Utilities\MimeTypes;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of the useful methods for mime types of files * Tests of the useful methods for mime types of files.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class MimeTypesTest extends TestCase class MimeTypesTest extends BaseTestCase
{ {
/** /**
* @param mixed $mimeType Empty value, e.g. "" * @param mixed $mimeType Empty value, e.g. ""
@@ -186,7 +186,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides not existing mime type * Provides not existing mime type.
* *
* @return Generator * @return Generator
*/ */
@@ -198,7 +198,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides mime type of non-image * Provides mime type of non-image.
* *
* @return Generator * @return Generator
*/ */
@@ -211,7 +211,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides mime type of image * Provides mime type of image.
* *
* @return Generator * @return Generator
*/ */
@@ -226,7 +226,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides existing mime type used to get single, one extension * Provides existing mime type used to get single, one extension.
* *
* @return Generator * @return Generator
*/ */
@@ -249,7 +249,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides existing mime type used to get multiple, more than one extension * Provides existing mime type used to get multiple, more than one extension.
* *
* @return Generator * @return Generator
*/ */
@@ -316,7 +316,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides not existing mime types * Provides not existing mime types.
* *
* @return Generator * @return Generator
*/ */
@@ -344,7 +344,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides mime types used to get extensions * Provides mime types used to get extensions.
* *
* @return Generator * @return Generator
*/ */
@@ -390,7 +390,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides mime types used to get extensions as upper case * Provides mime types used to get extensions as upper case.
* *
* @return Generator * @return Generator
*/ */
@@ -435,7 +435,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides real file path to get mime type * Provides real file path to get mime type.
* *
* @return Generator * @return Generator
*/ */
@@ -453,7 +453,7 @@ class MimeTypesTest extends TestCase
} }
/** /**
* Provides real file path to get information if the file is an image * Provides real file path to get information if the file is an image.
* *
* @return Generator * @return Generator
*/ */

View File

@@ -6,23 +6,23 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Generator; use Generator;
use Meritoo\Common\Exception\IncorrectColorHexLengthException; use Meritoo\Common\Exception\Regex\IncorrectColorHexLengthException;
use Meritoo\Common\Exception\InvalidColorHexValueException; use Meritoo\Common\Exception\Regex\InvalidColorHexValueException;
use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Locale; use Meritoo\Common\Utilities\Locale;
use Meritoo\Common\Utilities\Miscellaneous; use Meritoo\Common\Utilities\Miscellaneous;
use Meritoo\Common\Utilities\TestCase;
use stdClass; use stdClass;
/** /**
* Tests of the Miscellaneous methods (only static functions) * Tests of the Miscellaneous methods (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class MiscellaneousTest extends TestCase class MiscellaneousTest extends BaseTestCase
{ {
private $stringSmall; private $stringSmall;
private $stringCommaSeparated; private $stringCommaSeparated;
@@ -721,7 +721,7 @@ class MiscellaneousTest extends TestCase
} }
/** /**
* Provides string to convert characters to latin characters and not lower cased and not human-readable * Provides string to convert characters to latin characters and not lower cased and not human-readable.
* *
* @return Generator * @return Generator
*/ */
@@ -816,7 +816,7 @@ class MiscellaneousTest extends TestCase
} }
/** /**
* Provides string to convert characters to latin characters and lower cased and human-readable * Provides string to convert characters to latin characters and lower cased and human-readable.
* *
* @return Generator * @return Generator
*/ */
@@ -911,7 +911,7 @@ class MiscellaneousTest extends TestCase
} }
/** /**
* Provides names of files * Provides names of files.
* *
* @return Generator * @return Generator
*/ */
@@ -939,7 +939,7 @@ class MiscellaneousTest extends TestCase
} }
/** /**
* Provides string to convert to camel case * Provides string to convert to camel case.
* *
* @return Generator * @return Generator
*/ */
@@ -965,7 +965,7 @@ class MiscellaneousTest extends TestCase
} }
/** /**
* Provides path used to remove the starting / beginning directory's separator * Provides path used to remove the starting / beginning directory's separator.
* *
* @return Generator * @return Generator
*/ */
@@ -1009,7 +1009,7 @@ class MiscellaneousTest extends TestCase
} }
/** /**
* Provides path used to remove the ending directory's separator * Provides path used to remove the ending directory's separator.
* *
* @return Generator * @return Generator
*/ */
@@ -1053,7 +1053,7 @@ class MiscellaneousTest extends TestCase
} }
/** /**
* Provides empty value used to fill missing zeros * Provides empty value used to fill missing zeros.
* *
* @return Generator * @return Generator
*/ */
@@ -1067,7 +1067,7 @@ class MiscellaneousTest extends TestCase
} }
/** /**
* Provides number used to fill missing zeros * Provides number used to fill missing zeros.
* *
* @return Generator * @return Generator
*/ */

View File

@@ -1,6 +1,12 @@
<?php <?php
namespace Meritoo\Common\Tests\Utilities\Reflection; /**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Utilities\Reflection;
/** /**
* The A class. * The A class.

View File

@@ -0,0 +1,20 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Utilities\Reflection;
/**
* The B class.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class B extends A
{
}

View File

@@ -1,6 +1,12 @@
<?php <?php
namespace Meritoo\Common\Tests\Utilities\Reflection; /**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Utilities\Reflection;
/** /**
* The C class. * The C class.

View File

@@ -0,0 +1,20 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Utilities\Reflection;
/**
* The D class.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class D
{
}

View File

@@ -0,0 +1,20 @@
<?php
/**
* (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Meritoo\Common\Test\Utilities\Reflection;
/**
* The E trait.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
trait E
{
}

View File

@@ -6,28 +6,28 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use DateTime; use DateTime;
use Generator; use Generator;
use Meritoo\Common\Exception\Reflection\CannotResolveClassNameException; use Meritoo\Common\Exception\Reflection\CannotResolveClassNameException;
use Meritoo\Common\Exception\Reflection\MissingChildClassesException; use Meritoo\Common\Exception\Reflection\MissingChildClassesException;
use Meritoo\Common\Exception\Reflection\TooManyChildClassesException; use Meritoo\Common\Exception\Reflection\TooManyChildClassesException;
use Meritoo\Common\Tests\Utilities\Reflection\A; use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Tests\Utilities\Reflection\B; use Meritoo\Common\Test\Utilities\Reflection\A;
use Meritoo\Common\Tests\Utilities\Reflection\C; use Meritoo\Common\Test\Utilities\Reflection\B;
use Meritoo\Common\Tests\Utilities\Reflection\D; use Meritoo\Common\Test\Utilities\Reflection\C;
use Meritoo\Common\Tests\Utilities\Reflection\E; use Meritoo\Common\Test\Utilities\Reflection\D;
use Meritoo\Common\Test\Utilities\Reflection\E;
use Meritoo\Common\Utilities\Reflection; use Meritoo\Common\Utilities\Reflection;
use Meritoo\Common\Utilities\TestCase;
/** /**
* Tests of the useful reflection methods * Tests of the useful reflection methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class ReflectionTest extends TestCase class ReflectionTest extends BaseTestCase
{ {
/** /**
* @param mixed $invalidClass Empty value, e.g. "" * @param mixed $invalidClass Empty value, e.g. ""
@@ -88,7 +88,7 @@ class ReflectionTest extends TestCase
/* /*
* Existing class * Existing class
*/ */
self::assertEquals('Meritoo\Common\Tests\Utilities', Reflection::getClassNamespace(self::class)); self::assertEquals('Meritoo\Common\Test\Utilities', Reflection::getClassNamespace(self::class));
self::assertEquals(DateTime::class, Reflection::getClassNamespace(new DateTime())); self::assertEquals(DateTime::class, Reflection::getClassNamespace(new DateTime()));
self::assertEquals(DateTime::class, Reflection::getClassNamespace([ self::assertEquals(DateTime::class, Reflection::getClassNamespace([
@@ -217,7 +217,7 @@ class ReflectionTest extends TestCase
} }
/** /**
* Provides invalid class and trait * Provides invalid class and trait.
* *
* @return Generator * @return Generator
*/ */

View File

@@ -9,7 +9,7 @@
namespace Meritoo\Common\Utilities; namespace Meritoo\Common\Utilities;
/** /**
* Tests of the useful regular expressions methods * Tests of the useful regular expressions methods.
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl

View File

@@ -1,22 +1,23 @@
<?php <?php
/** /**
* (c) Meritoo.pl, http://www.meritoo.pl * (c) Meritoo.pl, http://www.meritoo.pl
* For the full copyright and license information, please view the LICENSE * For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\TestCase; use Meritoo\Common\Test\Base\BaseTestCase;
use Meritoo\Common\Utilities\Uri; use Meritoo\Common\Utilities\Uri;
/** /**
* Tests of the useful uri methods (only static functions) * Tests of the useful uri methods (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class UriTest extends TestCase class UriTest extends BaseTestCase
{ {
public function testAddProtocolToUrl() public function testAddProtocolToUrl()
{ {
@@ -57,7 +58,7 @@ class UriTest extends TestCase
} }
/** /**
* Provides urls to replenish protocol * Provides urls to replenish protocol.
* *
* @return \Generator * @return \Generator
*/ */

View File

@@ -6,18 +6,19 @@
* file that was distributed with this source code. * file that was distributed with this source code.
*/ */
namespace Meritoo\Common\Tests\Utilities; namespace Meritoo\Common\Test\Utilities;
use Meritoo\Common\Utilities\Xml; use Meritoo\Common\Utilities\Xml;
use PHPUnit_Framework_TestCase;
use SimpleXMLElement; use SimpleXMLElement;
/** /**
* Tests of the useful XML-related methods (only static functions) * Tests of the useful XML-related methods (only static functions).
* *
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl> * @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl * @copyright Meritoo.pl
*/ */
class XmlTest extends \PHPUnit_Framework_TestCase class XmlTest extends PHPUnit_Framework_TestCase
{ {
private $simpleXml; private $simpleXml;
private $advancedXml; private $advancedXml;

View File

@@ -1,14 +0,0 @@
<?php
namespace Meritoo\Common\Tests\Utilities\Reflection;
/**
* The B class.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class B extends A
{
}

View File

@@ -1,14 +0,0 @@
<?php
namespace Meritoo\Common\Tests\Utilities\Reflection;
/**
* The D class.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
class D
{
}

View File

@@ -1,14 +0,0 @@
<?php
namespace Meritoo\Common\Tests\Utilities\Reflection;
/**
* The E trait.
* Used for testing the Reflection class.
*
* @author Krzysztof Niziol <krzysztof.niziol@meritoo.pl>
* @copyright Meritoo.pl
*/
trait E
{
}