PHPackages                             gift-factory/secret-santa-picker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. gift-factory/secret-santa-picker

ActiveLibrary

gift-factory/secret-santa-picker
================================

Pick a random player for each other player of a given group

1.1.0(2y ago)04MITPHPPHP ^8.3

Since Nov 17Pushed 1y ago1 watchersCompare

[ Source](https://github.com/gift-factory/secret-santa-picker)[ Packagist](https://packagist.org/packages/gift-factory/secret-santa-picker)[ RSS](/packages/gift-factory-secret-santa-picker/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

Secret Santa Picker
===================

[](#secret-santa-picker)

Pick a random player for each other player of a given group

[![Latest Stable Version](https://camo.githubusercontent.com/ba60395eb193a61dfc6a9c02472121d2cbad9a010b8bcd43d9f46b8e41aeafa4/68747470733a2f2f706f7365722e707567782e6f72672f676966742d666163746f72792f7365637265742d73616e74612d7069636b65722f762f737461626c652e706e67)](https://packagist.org/packages/gift-factory/secret-santa-picker)[![PHP Version](https://camo.githubusercontent.com/53c0a418e48665f06e2abb50f67813e1e63bb7ba3e936065b0f97f77ee659506/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f676966742d666163746f72792f7365637265742d73616e74612d7069636b65722e737667)](https://php.net)[![License](https://camo.githubusercontent.com/eecf101c8e884ba9fafc8aaefbe84bf0c23be7ed49b8315fe3cc939449851f83/68747470733a2f2f706f7365722e707567782e6f72672f676966742d666163746f72792f7365637265742d73616e74612d7069636b65722f6c6963656e7365)](https://packagist.org/packages/gift-factory/secret-santa-picker)[![GitHub Actions](https://camo.githubusercontent.com/b783cfb4fd047d47e4fc01384e610505fd049d32b25014e7a151a62a2488b97a/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e742e7376673f75726c3d6874747073253341253246253246616374696f6e732d62616467652e6174726f782e646576253246676966742d666163746f72792532467365637265742d73616e74612d7069636b657225324662616467652533467265663d6d61696e266c6162656c3d4275696c64266c6f676f3d6e6f6e65)](https://github.com/gift-factory/secret-santa-picker/actions)[![StyleCI](https://camo.githubusercontent.com/8d5835226ead5044b732b64394d93afe3ff531efb6c802cdda5259664e2c25c9/68747470733a2f2f7374796c6563692e696f2f7265706f732f3731373738363930332f736869656c643f7374796c653d666c6174)](https://styleci.io/repos/717786903)[![codecov.io](https://camo.githubusercontent.com/af1c4705a8f2a3eb78a293233badf7643d8afbb49d45d014746f5f391189e3c5/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f676966742d666163746f72792f7365637265742d73616e74612d7069636b65722e737667)](https://codecov.io/github/gift-factory/secret-santa-picker?branch=master)

Install
-------

[](#install)

```
composer require gift-factory/secret-santa-picker
```

Use
---

[](#use)

```
$players = new PlayerList([
    new Player('Anna'),
    new Player('Bob'),
    // Bob and Dane won't be picked to send a gift to Chuck
    new Player('Chuck', exclusions: ['Bob', 'Dane']),
    new Player('Dane'),
    // Edith and Fiona will be mutually excluded
    [new Player('Edith'), new Player('Fiona')],
]);

$picker = new Picker();
$draw = $picker->pick($players);

foreach ($draw as $donor => $receiver) {
    mail(
        $donor->email,
        'Secret Santa',
        "
            Hello $donor->userName,

            This year, you'll be the santa of $receiver->userName,
            Here is the address where to send your gift:

            $receiver->realName
            $receiver->address
        ",
    );
}
```

Thanks
------

[](#thanks)

And a big thank-you to Jet Brains who provides such a great IDE:

[![](https://camo.githubusercontent.com/f5244cdf0e4ce36878bdead60d89d7f1dbbe7f91fb9276832ded87bab6bb3a41/687474703a2f2f6a65742d627261696e732e73656c666275696c642e66722f50687053746f726d2d746578742e737667)](https://www.jetbrains.com/phpstorm/)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance29

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 96.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~21 days

Total

2

Last Release

886d ago

PHP version history (2 changes)1.0.0PHP ^8.2

1.1.0PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/df90c422f521bf26355c3e185a59fe7afb35531af56244dfaec03ee1d0ca6f24?d=identicon)[kylekatarn](/maintainers/kylekatarn)

---

Top Contributors

[![kylekatarnls](https://avatars.githubusercontent.com/u/5966783?v=4)](https://github.com/kylekatarnls "kylekatarnls (30 commits)")[![StyleCIBot](https://avatars.githubusercontent.com/u/11048387?v=4)](https://github.com/StyleCIBot "StyleCIBot (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/gift-factory-secret-santa-picker/health.svg)

```
[![Health](https://phpackages.com/badges/gift-factory-secret-santa-picker/health.svg)](https://phpackages.com/packages/gift-factory-secret-santa-picker)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
