- How do I install laravel-liberu/laravel-gedcom in a Laravel application?
- Install it with Composer using composer require laravel-liberu/laravel-gedcom. The package follows standard Laravel package conventions, including service provider auto-discovery, so you normally do not need to register anything manually in your application config. If you need to change defaults, publish the package configuration after installation. Then start wiring the GEDCOM records into your own domain models.
- Which Laravel and PHP versions does laravel-gedcom support?
- The package targets Laravel 10, Laravel 11, Laravel 12 and Laravel 13. Laravel 13 support is CI-verified in the 8.6 release line, and Laravel 13 implies a modern PHP baseline, so check the PHP floor in the package's composer.json before you commit. Validate on the lowest and highest Laravel versions in your own support matrix rather than assuming parity.
- How do I read and parse a GEDCOM file and access individuals, families and events?
- You use the package's fluent API to load a GEDCOM file and then traverse its records: individuals, families, events, sources and notes. The practical work on your side is mapping those records onto your own genealogy schema. Test with real exports from Ancestry, MyHeritage, Gramps or Geni, because every producer emits slightly different tag sets.
- Can laravel-gedcom export or write standards-compliant GEDCOM files?
- Yes. The package includes a generator that writes standards-compliant GEDCOM output, which is what makes it useful for round-tripping data between your Laravel application and external genealogy tools. Export paths should be covered by fixtures in your test suite, especially if you customize record generation. Keep an eye on how custom bindings affect generated output after upgrading.
- Does laravel-gedcom support GEDCOM 5.5.1 and 7.0, and legacy encodings like ANSEL or ANSI?
- The package targets the GEDCOM interchange format used by Ancestry, MyHeritage, Gramps and similar tools, but the breadth of 5.5.1 and 7.0 tag coverage is something you should verify against your own fixtures. Legacy non-UTF-8 encodings such as ANSEL and ANSI are common in older exports and are the most likely source of import surprises. Include at least one legacy-encoded file in your test data and convert to UTF-8 before parsing if needed.
- How does laravel-gedcom handle very large GEDCOM files and memory usage?
- Large files are the main operational unknown for this package, since parsing a full GEDCOM document can be memory-intensive. Measure peak memory with your largest realistic export before going to production, not with a small sample. If files are routinely large, consider queued imports, raising memory limits for the worker, or splitting the parse into stages.
- Is upgrading from v8.5.0 to v8.6.0 a breaking change?
- No breaking changes or deprecations are declared in 8.6.0; the release is a CI fix plus one internal change. That change makes GedcomGenerator resolve Source through the service container instead of instantiating it directly, which is an improvement for testability and overridability. The only regression surface is a custom Source binding or GedcomGenerator subclass, so test that path explicitly.
- How do I override or extend the GEDCOM generator or bind a custom Source?
- Because Source is now resolved from the Laravel service container, you can bind your own implementation in a service provider instead of editing vendor code. Make sure your class implements the contract the package expects, and decide deliberately whether the binding should be a singleton or transient. If you previously relied on the concrete Source being constructed inline, regression-test the export path after upgrading.
- How should I test GEDCOM import and export in a Laravel application?
- Build a fixture set of representative GEDCOM files, including at least one legacy-encoded export and one large file, and assert on parsed individuals, families, events and generated output. Run those tests against the lowest and highest Laravel versions in your matrix before promoting beyond staging. Also cover any custom container bindings or subclasses, since that is the one behavioral surface that changed in 8.6.0.
- Is laravel-gedcom actively maintained, and what are the alternatives?
- It is an active but small, single-maintainer domain package with no commercial backing, so upstream support is GitHub issues and pull requests on your own timeline. Alternatives are mostly framework-agnostic GEDCOM parsers that you would have to hand-wire into Laravel yourself. For business-critical customer data imports, budget for periodic dependency bumps and consider owning a fork or vetting the package internally.