- Is happyr/birthday-bundle a Laravel package?
- No. It is a Symfony bundle (type symfony-bundle) with Twig extensions, DI YAML service definitions, and Doctrine ORM repositories. Laravel has no bundle kernel, no Twig, and no Doctrine bundle discovery, so it will not install or run as-is in a Laravel application. Treat it as a reference implementation, not a dependency.
- Can I install happyr/birthday-bundle in Laravel 10 or 11?
- Realistically no. The last release is from 2017 and targets PHP 7.0/7.1, Symfony 2.8/3.x, and Doctrine ~2.5. Composer will not resolve cleanly on PHP 8.1+ or Laravel 10/11 without forking composer.json and using --ignore-platform-reqs, which is not production-safe. Build or port a first-party package instead.
- How do I add birthday management to a Laravel app if this bundle is Symfony-only?
- Port the pattern: add a birthday column or cast on your User model, a BirthdayService with scopes for today and within N days, and a Blade component for display. Use Carbon for date math and timezone conversion. Persist an indexed birthday_month_day generated column rather than MONTH() and DAY() predicates so the query stays sargable.
- What does happyr/birthday-bundle actually provide?
- It provides a contract for entities exposing a birthday date, a manager answering whose birthday is today or within N days, and a Twig view helper for rendering a widget. The packaging is Symfony 2/3-era DI and Doctrine annotations. The domain logic is roughly 200 to 400 LOC across those three concerns.
- Is happyr/birthday-bundle maintained and safe for production?
- No, it is a supply-chain liability: the last release was 2017-11-14, with zero stars, zero dependents, no issue corpus, and a bus factor of zero. It targets PHP 7.0/7.1 and Symfony 2.8/3.x, so it will not resolve on modern PHP or Laravel. Log it as a precedent for dependency gating rather than adopting it.
- What Laravel version support does happyr/birthday-bundle have?
- None. It has no extra.laravel.providers, no service provider, and no Laravel package discovery. It is a Symfony bundle with Twig and Doctrine dependencies. Any Laravel usage requires a full port to Eloquent casts, Blade, and a Laravel service provider.
- How should I test birthday logic like upcoming birthdays and Feb 29?
- Write feature tests around your BirthdayService scopes covering today, within N days, timezone boundaries, and your Feb 29 policy. Use Carbon::setTestNow to freeze the current date and assert window queries. Shadow-run against any existing manual query for a week before wiring the UI. The original bundle offers no tests or guidance for these edge cases.
- What are the alternatives to happyr/birthday-bundle for Laravel?
- There is no maintained Laravel equivalent in this repo's ecosystem; the honest alternative is a first-party acme/birthday package behind an interface. A senior engineer can reproduce the surface area of a date field, window query, and view partial in under a day with tests and your conventions. Use the repo as a reference spec, not a dependency.
- How do I configure happyr/birthday-bundle?
- In Symfony you would register the bundle and configure its DI YAML; there is no Laravel config/birthday.php or mergeConfigFrom setup. For Laravel, create a BirthdayServiceProvider with mergeConfigFrom and publishes, plus a config file for timezone, window days, and Feb 29 policy. The original package has no Laravel configuration surface.
- Does happyr/birthday-bundle handle timezones, privacy, or notifications?
- No. It does not answer the questions that matter: timezone of the 'today' boundary, Feb 29 policy, consent over birth-year visibility, i18n date formats, or notification channels. Those are product decisions you must sign off before building. If you need timezone-aware windows, upcoming-N-days, or scheduled notifications, it is entirely outside the package's scope.