{"id":19301799,"url":"https://github.com/woutervdbrink/adventofcode","last_synced_at":"2026-05-16T09:31:54.602Z","repository":{"id":110924438,"uuid":"317636358","full_name":"WoutervdBrink/AdventOfCode","owner":"WoutervdBrink","description":"My PHP solutions for Advent of Code.","archived":false,"fork":false,"pushed_at":"2025-12-05T13:06:52.000Z","size":862,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-08T23:45:02.291Z","etag":null,"topics":["advent-of-code","advent-of-code-2015","advent-of-code-2020","php","php8","phpunit","puzzle"],"latest_commit_sha":null,"homepage":"https://adventofcode.com/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WoutervdBrink.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-01T18:46:46.000Z","updated_at":"2025-12-05T13:06:56.000Z","dependencies_parsed_at":"2024-11-09T23:19:00.920Z","dependency_job_id":"9eb422d8-d509-452b-ad13-efa7002db7f5","html_url":"https://github.com/WoutervdBrink/AdventOfCode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WoutervdBrink/AdventOfCode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoutervdBrink%2FAdventOfCode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoutervdBrink%2FAdventOfCode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoutervdBrink%2FAdventOfCode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoutervdBrink%2FAdventOfCode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WoutervdBrink","download_url":"https://codeload.github.com/WoutervdBrink/AdventOfCode/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoutervdBrink%2FAdventOfCode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33096859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advent-of-code","advent-of-code-2015","advent-of-code-2020","php","php8","phpunit","puzzle"],"created_at":"2024-11-09T23:18:55.520Z","updated_at":"2026-05-16T09:31:54.597Z","avatar_url":"https://github.com/WoutervdBrink.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Advent of Code](https://adventofcode.com/) solutions\n\nThis repository contains PHP solutions to Advent of Code.\n\nTo run my solution for a particular day (and part), run `php run.php YEAR DAY [PART]`.\n\n## PHPUnit\n\n(Regression) testing is done using PHPUnit and a lot of unnecessary magic. All `DayNNTest` classes extend\n`PuzzleSolverTestCase`, which figures out what day to test using reflection. Then, a data provider is used to figure out\nwhat examples to test, and what their expected outcomes are. Finally, when I finish solving a puzzle, I implement the\n`getSolutionForPartN` methods. When they do not return null, the actual puzzle input is tested.\n\nThis enables me to refactor code shared between tests, for example when a puzzle extends a previous puzzle or uses the\nsame concepts, with some confidence that I'm not breaking existing rules or logic.\n\n## GLPK (GNU Linear Programming Kit)\n\nCalculating the solution to 2025 day 10 requires solving an integer linear programming problem. While this is without a\ndoubt possible in PHP, this puzzle is solved using [GLPK](https://www.gnu.org/software/glpk/). Consequently, in order to\nrun the solver for this day (and thus the PHPUnit test suite), GLPK must be installed, the `glpsol` binary must be\navailable, and your PHP instance must be able to use the `exec()` function.\n\n## License\n\nMIT. See [LICENSE](LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoutervdbrink%2Fadventofcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoutervdbrink%2Fadventofcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoutervdbrink%2Fadventofcode/lists"}