guillegf/secret-santa

Secret Santa game in PHP

1.3.1 2017-11-12 14:15 UTC

This package is not auto-updated.

Last update: 2024-05-11 18:23:38 UTC


README

Build Status Code Coverage Scrutinizer Code Quality Dependency Status Latest Stable Version Total Downloads License

Description

Secret Santa game in PHP

Installation

Composer (Recommended)

Composer is a widely used dependency manager for PHP packages. Is available on Packagist as guillegf/secret-santa and can be installed either by running the composer require command or adding the library to your composer.json. To enable Composer for you project, refer to the project's Getting Started documentation.

To add this dependency using the command, run the following from within your project directory:

composer require guillegf/secret-santa "~1.3"

Alternatively, add the dependency directly to your composer.json file:

"require": {
    "guillegf/secret-santa": "~1.3"
}

Usage

In this example in total we add 10 players, 2 singles players, 2 couples (exclusive) and 4 exclusive players.

The couples and exclusive players never match together.

<?php
$secretSanta = new SecretSanta();
$secretSanta->addPlayer('Player1', 'player1@email.com')
  ->addPlayer('Player2', 'player2@email.com')
  ->addCouple('Player3', 'player3@email.com', 'Couple3', 'couple3@email.com')
  ->addCouple('Player4', 'player4@email.com', 'Couple4', 'couple4@email.com')
  ->addExclusivePlayers(
      ['Player5', 'player5@email.com'],
      ['Player6', 'player6@email.com'],
      ['Player7', 'player7@email.com'],
      ['Player8', 'player8@email.com']
  );
  
foreach ($secretSanta->play() as $player) {
     echo ("{$player->name()} ({$player->email()}): {$player->secretSanta()->name()}\n");
}

The above example will output:

Player1 (player1@email.com): Player5
Player2 (player2@email.com): Player7
Player3 (player3@email.com): Player2
Couple3 (couple3@email.com): Player8
Player4 (player4@email.com): Player3
Couple4 (couple4@email.com): Player6
Player5 (player5@email.com): Player4
Player6 (player6@email.com): Player1
Player7 (player7@email.com): Couple3
Player8 (player8@email.com): Couple4

License

The SecretSanta is open-sourced software licensed under the MIT license