Thanos is a PHP-based library designed to emulate the power of the Infinity Gauntlet. It allows users to manipulate data using the six Infinity Stones: Mind, Power, Reality, Soul, Space, and Time. Each stone has unique abilities that alter the given data.

v1.5 2025-03-26 14:26 UTC

This package is auto-updated.

Last update: 2025-05-26 14:50:32 UTC


README

Thanos is a PHP-based library designed to emulate the power of the Infinity Gauntlet. It allows users to manipulate data using the six Infinity Stones: Mind, Power, Reality, Soul, Space, and Time. Each stone has unique abilities that alter the given data.

Features

  • Mind Stone: Reverses text.

  • Power Stone: Replaces random letters in text with '*'.

  • Reality Stone: Shuffles characters in text.

  • Soul Stone: Repeats text one time with dividers.

  • Space Stone: Adds 2 spaces between characters.

  • Time Stone: Modifies a date based on the input.

  • Infinity Gauntlet: Uses all six stones to remove half of the data.

Installation

composer require merterciyescagan/thanos

Usage

Using Individual Stones

Mind Stone

$mindStone = new Stone(new Mind());
$mindStone = $mindStone->set("Hello World");
echo $mindStone->use()->getResult(); // Output: "dlroW olleH"; 
echo $mindStone->use(2)->getResult(); // Output: "Hello World"
echo $mindStone->use(2)->use()->getResult(); // Output: "dlroW olleH"

Power Stone

$powerStone = new Stone(new Power());
$powerStone = $powerStone->set("Hello World");
echo $powerStone->use()->getResult(); // Output: "Hello Wo*ld"
echo $powerStone->use(2)->getResult(); // Output: "Hell* Wo*ld"
echo $powerStone->use(2)->use()->getResult(); //Output: "He*ll* Wo*ld"

Reality Stone

$realityStone = new Stone(new Reality());
$realityStone = $realityStone->set("Hello World");
echo $realityStone->use()->getResult(); // Output: Randomly shuffled text
echo $realityStone->use(2)->getResult(); // Output: 2 times randomly shuffled text
echo $realityStone->use(2)->use()->getResult(); // Output: 3 times randomly shuffled text

Soul Stone

$soulStone = new Stone(new Soul());
$soulStone = $soulStone->set("Hello World");
echo $soulStone->use()->getResult(); // Output: "Hello World | Hello World"
echo $soulStone->use(2)->getResult(); // Output "Hello World | Hello World | Hello World | Hello World"
echo $soulStone->use(2)->use()->getResult(); // Output "Hello World | Hello World | Hello World | Hello World | Hello World | Hello World | Hello World | Hello World"

Space Stone

$spaceStone = new Stone(new Space());
$spaceStone = $spaceStone->set("Hello World");
echo $spaceStone->use()->getResult(); // Output: "H e l l o   W o r l d"
echo $spaceStone->use(2)->getResult(); // Output: ""H        e        l        l        o                 W        o        r        l        d""
echo $spaceStone->use(2)->use()->getResult(); // Output: "H                          e                          l                          l                          o                                                     W                          o                          r                          l                          d"

Time Stone

$timeStone = new Stone(new Time());
$timeStone = $timeStone->set(+1);
echo $timeStone->use()->getResult(); // Output: +1 day based on today
echo $timeStone->use(2)->getResult(); // Output: +2 day based on today
echo $timeStone->use(2)->use()->getResult(); // Output: +3 day based on today

Using the Gauntlet

$mindStone = new Stone(new Mind());
$powerStone = new Stone(new Power());
$realityStone = new Stone(new Reality());
$soulStone = new Stone(new Soul());
$spaceStone = new Stone(new Space());
$timeStone = new Stone(new Time());

$gauntlet = new Gauntlet();

$gauntlet->setGauntlet(
    new InfinityGauntlet(), 
    [$mindStone, $powerStone, $realityStone, $soulStone, $spaceStone, $timeStone]
);
$result = $gauntlet->snap(['Iron Man', 'Thor', 'Hulk', 'Black Widow']);
print_r($result); // Random half removed

Requirements

  • PHP 8.0+
  • Composer

Contributing

Feel free to fork and submit pull requests. Bug reports and feature requests are welcome!

License

MIT