2017 © Pedro Peláez
 

library php-humanizer

Humanize values that are readable only for developers

image

coduo/php-humanizer

Humanize values that are readable only for developers

  • Thursday, October 27, 2016
  • by norzechowicz
  • Repository
  • 36 Watchers
  • 1355 Stars
  • 84,762 Installations
  • PHP
  • 6 Dependents
  • 0 Suggesters
  • 115 Forks
  • 14 Open issues
  • 14 Versions
  • 8 % Grown

The README.md

PHP Humanizer

Tests Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

Readme for 5.x version, (*2)

Humanize values to make them readable for regular people ;), (*3)

Installation

Run the following command:, (*4)

composer require coduo/php-humanizer

Usage

Text

Humanize, (*5)

use Coduo\PHPHumanizer\StringHumanizer;

StringHumanizer::humanize('field_name'); // "Field Name"
StringHumanizer::humanize('user_id'); // "User"
StringHumanizer::humanize('field_name', false); // "field name"

Truncate, (*6)

Truncate string to word closest to a certain length, (*7)

use Coduo\PHPHumanizer\StringHumanizer;

$text = 'Lorem ipsum dolorem si amet, lorem ipsum. Dolorem sic et nunc.';

StringHumanizer::truncate($text, 8); // "Lorem ipsum"
StringHumanizer::truncate($text, 8, '...'); // "Lorem ipsum..."
StringHumanizer::truncate($text, 2); // "Lorem"
StringHumanizer::truncate($text, strlen($text)); // "Lorem ipsum dolorem si amet, lorem ipsum. Dolorem sic et nunc."

Truncate HTML, (*8)

Truncate and HTML string to word closest to a certain length, (*9)

use Coduo\PHPHumanizer\StringHumanizer;

$text = '

HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web pages.[1] Web browsers can read HTML files and render them into visible or audible web pages. HTML describes the structure of a website semantically along with cues for presentation, making it a markup language, rather than a programming language., (*10)

'; StringHumanizer::truncateHtml($text, 3); // "<b>HyperText</b>" StringHumanizer::truncateHtml($text, 12, ''); // "HyperText Markup" StringHumanizer::truncateHtml($text, 50, '', '...'); // "HyperText Markup Language, commonly referred to as..." StringHumanizer::truncateHtml($text, 75, '<b><i><u><em><strong><a><span>', '...'); // '<b>HyperText Markup Language</b>, commonly referred to as <b>HTML</b>, is the standard <a href="/wiki/Markup_language" title="Markup language">markup...</a>'

Remove shortcodes, (*11)

$text = 'A text with [short]random[/short] [codes]words[/codes].';
StringHumanizer::removeShortcodes($text); // "A text with ."
StringHumanizer::removeShortcodeTags($text); // "A text with random words."

Number

Ordinalize, (*12)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::ordinalize(0); // "0th"
NumberHumanizer::ordinalize(1); // "1st"
NumberHumanizer::ordinalize(2); // "2nd"
NumberHumanizer::ordinalize(23); // "23rd"
NumberHumanizer::ordinalize(1002, 'nl'); // "1002e"
NumberHumanizer::ordinalize(-111); // "-111th"

Ordinal, (*13)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::ordinal(0); // "th"
NumberHumanizer::ordinal(1); // "st"
NumberHumanizer::ordinal(2); // "nd"
NumberHumanizer::ordinal(23); // "rd"
NumberHumanizer::ordinal(1002); // "nd"
NumberHumanizer::ordinal(-111, 'nl'); // "e"

Roman numbers, (*14)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::toRoman(1); // "I"
NumberHumanizer::toRoman(5); // "V"
NumberHumanizer::toRoman(1300); // "MCCC"

NumberHumanizer::fromRoman("MMMCMXCIX"); // 3999
NumberHumanizer::fromRoman("V"); // 5
NumberHumanizer::fromRoman("CXXV"); // 125

Binary Suffix, (*15)

Convert a number of bytes in to the highest applicable data unit, (*16)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::binarySuffix(0); // "0 bytes"
NumberHumanizer::binarySuffix(1); // "1 bytes"
NumberHumanizer::binarySuffix(1024); // "1 kB"
NumberHumanizer::binarySuffix(1025); // "1 kB"
NumberHumanizer::binarySuffix(1536); // "1.5 kB"
NumberHumanizer::binarySuffix(1048576 * 5); // "5 MB"
NumberHumanizer::binarySuffix(1073741824 * 2); // "2 GB"
NumberHumanizer::binarySuffix(1099511627776 * 3); // "3 TB"
NumberHumanizer::binarySuffix(1325899906842624); // "1.18 PB"

Number can be also formatted for specific locale, (*17)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::binarySuffix(1536, 'pl'); // "1,5 kB"

Number can also be humanized with a specific number of decimal places with preciseBinarySuffix($number, $precision, $locale = 'en') The precision parameter must be between 0 and 3., (*18)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::preciseBinarySuffix(1024, 2); // "1.00 kB"
NumberHumanizer::preciseBinarySuffix(1325899906842624, 3); // "1.178 PB"

This function also supports locale, (*19)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::preciseBinarySuffix(1325899906842624, 3, 'pl'); // "1,178 PB"

Metric Suffix, (*20)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::metricSuffix(-1); // "-1"
NumberHumanizer::metricSuffix(0); // "0"
NumberHumanizer::metricSuffix(1); // "1"
NumberHumanizer::metricSuffix(101); // "101"
NumberHumanizer::metricSuffix(1000); // "1k"
NumberHumanizer::metricSuffix(1240); // "1.2k"
NumberHumanizer::metricSuffix(1240000); // "1.24M"
NumberHumanizer::metricSuffix(3500000); // "3.5M"

Number can be also formatted for specific locale, (*21)

use Coduo\PHPHumanizer\NumberHumanizer;

NumberHumanizer::metricSuffix(1240000, 'pl'); // "1,24M"

Collections

Oxford, (*22)

use Coduo\PHPHumanizer\CollectionHumanizer;

CollectionHumanizer::oxford(['Michal', 'Norbert', 'Lukasz', 'Pawel'], 2); // "Michal, Norbert, and 2 others"
CollectionHumanizer::oxford(['Michal', 'Norbert', 'Lukasz'], 2); // "Michal, Norbert, and 1 other"
CollectionHumanizer::oxford(['Michal', 'Norbert']); // "Michal and Norbert"

Oxford is using translator component, so you can use whatever string format you like., (*23)

Date time

Difference, (*24)

use Coduo\PHPHumanizer\DateTimeHumanizer;

DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:00:00")); // just now
DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:00:05")); // 5 seconds from now
DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:59:00")); // 1 minute ago
DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:45:00")); // 15 minutes ago
DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:15:00")); // 15 minutes from now
DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 14:00:00")); // 1 hour from now
DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 15:00:00")); // 2 hours from now
DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:00:00")); // 1 hour ago
DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-25")); // 1 day ago
DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-24")); // 2 days ago
DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-28")); // 2 days from now
DateTimeHumanizer::difference(new \DateTime("2014-04-01"), new \DateTime("2014-04-15")); // 2 weeks from now
DateTimeHumanizer::difference(new \DateTime("2014-04-15"), new \DateTime("2014-04-07")); // 1 week ago
DateTimeHumanizer::difference(new \DateTime("2014-01-01"), new \DateTime("2014-04-01")); // 3 months from now
DateTimeHumanizer::difference(new \DateTime("2014-05-01"), new \DateTime("2014-04-01")); // 1 month ago
DateTimeHumanizer::difference(new \DateTime("2015-05-01"), new \DateTime("2014-04-01")); // 1 year ago
DateTimeHumanizer::difference(new \DateTime("2014-05-01"), new \DateTime("2016-04-01")); // 2 years from now

Precise difference, (*25)

use Coduo\PHPHumanizer\DateTimeHumanizer;

DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-25 11:20:00")); // 1 day, 1 hour, 40 minutes ago
DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2015-04-28 17:00:00")); // 1 year, 2 days, 4 hours from now
DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2016-04-27 13:00:00")); // 2 years, 1 day from now

Aeon Calendar

Aeon PHP is a date&time oriented set of libraries., (*26)

use Coduo\PHPHumanizer\DateTimeHumanizer;

$timeUnit = TimeUnit::days(2)
                ->add(TimeUnit::hours(3))
                ->add(TimeUnit::minutes(25))
                ->add(TimeUnit::seconds(30))
                ->add(TimeUnit::milliseconds(200));

DateTimeHumanizer::timeUnit($timeUnit); // 2 days, 3 hours, 25 minutes, and 30.2 seconds

Currently we support following languages: * Azerbaijani * English * Polish * German * Turkish * French * Português - Brasil * Italian * Dutch * Русский * Norwegian * Afrikaans * Bulgarian * Indonesian * Chinese Simplified * Chinese Taiwan * Spanish * Ukrainian * Danish * Thai * Japanese * Romanian, (*27)

Development

After downloading library update dependencies:, (*28)

composer update

In order to check lowest possible versions of dependencies add, (*29)

composer update --prefer-lowest
````

Execute test suite:

composer run test, (*30)


Run CS Fixer

composer run cs:php:fix ```, (*31)

Credits

This lib was inspired by Java Humanize Lib && Rails Active Support, (*32)

The Versions

27/10 2016

dev-master

9999999-dev

Humanize values that are readable only for developers

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

21/02 2016
21/02 2016

2.0.0-beta

2.0.0.0-beta

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

10/12 2015

1.0.x-dev

1.0.9999999.9999999-dev

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

02/12 2015
06/11 2015

1.0.8

1.0.8.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

26/10 2015

1.0.7

1.0.7.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

26/10 2015

1.0.6

1.0.6.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

26/10 2015

1.0.4

1.0.4.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

26/10 2015

1.0.5

1.0.5.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

24/10 2015

1.0.3

1.0.3.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

24/10 2015

1.0.2

1.0.2.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

14/07 2015

1.0.1

1.0.1.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer

12/06 2014

1.0.0

1.0.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Norbert Orzechowicz

php humanize humanizer