4

A PHP package to simplify working with percentages

 2 years ago
source link: https://ma.ttias.be/php-package-simplify-working-percentages/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

I created a PHP package that can make it easier to work with percentages in any PHP application.

How does it work?

You can use it as a readable percentage converter. It can do the easy stuff (how much is X of Y) and the slightly harder stuff (how much is the X extension of Y to Z).

<?php
use Mattiasgeniar\Percentage\Percentage;

// What's the percentage increase from 100 to 120?
Percentage::differenceBetween(100, 120);            // 20%

// What's the absolute percentage change from 100 to 80?
// (uses the abs() function)
Percentage::absoluteDifferenceBetween(100, 80);     // 20%, not -20%

// How much is 120 compared to 100?
Percentage::calculate(120, 100);                    // 120%

// How much is 50 compared to 100?
Percentage::calculate(50, 100);                     // 50%

// What is 20% of 200?
Percentage::of(20, 200);                            // 40

// What is the 140% extension from 3 to 2?
Percentage::extension(140, 3, 2);                   // 1.6

// What is the 140% extension from 1 to 2?
Percentage::extension(140, 1, 2);                   // 2.4

None of this is rocket science, of course. It’s just a wrapper around some simple mathematics, but it confuses me every time I have to calculate it. 😬

But why?

I hate seeing the same calculations happen over & over again in my code. It’s usally 2 or 3 lines of the same code to calculate percentages in VAT, referral discounts, commissions, relative increases/decreases, …

Now, I get to replace them all with a simple wrapper function like Percentage::differenceBetween($previousMonth, $thisMonth), which will give me a percentage increase or decrease for the revenue between $previousMonth and $thisMonth.

No more boilerplate needed! 🥳

Installation

By the virtue of Composer, the PHP package manager, installation is as simple as:

composer require mattiasgeniar/php-percentages

Include the namespace somewhere in your code, and you’re done:

<?php
use Mattiasgeniar\Percentage\Percentage;

$difference = Percentage::differenceBetween(100, 120);

The code is freely available on Github.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK