- How do I install cgdprojects/laravel-gedcom in a Laravel application?
- Install it with Composer using composer require cgdprojects/laravel-gedcom. Laravel's package auto-discovery should register the service provider, but if it does not you will need to add the provider manually to your config/app.php. After installation, publish any package config if the package ships one. The mechanical setup is small; the real work is mapping parsed records into your own domain model.
- Which Laravel and PHP versions does laravel-gedcom support?
- You need to check the require block in the package's composer.json and its CI configuration to confirm the exact PHP and Laravel support matrix. The last visible release in the evidence set is dated 2023-01-03, so it may not declare support for current Laravel or PHP majors. Treat version compatibility as a hard gate you can verify in minutes before committing to the package. If it does not install cleanly on your target versions, plan for a fork or a different parser.
- Does this package support GEDCOM 5.5.1 and the newer GEDCOM 7.0 format?
- The package description explicitly covers exporting GEDCOM 5.5.1 files, which is still the de facto standard. GEDCOM 7.0 support is not stated in the available material, so assume 5.5.1 is the safe target and verify 7.0 handling during a spike. Real-world import files often deviate from the spec anyway, so test against actual vendor exports rather than only canonical samples.
- How does laravel-gedcom handle file encodings such as ANSEL, ASCII, UTF-8, and BOM prefixes?
- Encoding coverage is not documented in the material provided, and this is a known hazard area for GEDCOM parsers. The v3.4.3 release fixed a special-characters import issue, which confirms that encoding and character handling bugs have been live in the codebase recently. Test explicitly with ANSEL, ASCII and UNICODE declarations, BOM-prefixed files, mixed line endings, and CONC/CONT continuation lines. If support is incomplete, normalize encoding in your own ingestion layer before parsing.
- What happens to unknown or vendor-specific GEDCOM tags like _UID and _APID during import?
- The package's behaviour on unrecognized or custom tags is not documented in the overview, so verify it before relying on it. Silent data loss is the worst failure mode for genealogy imports because a file can import successfully while dropping tags or individuals. Set an explicit policy in your adapter: preserve unknown tags as a raw payload rather than discarding them. If the package does not expose raw lines, capture them in a pre-processing pass or fork the parser.
- Can I export GEDCOM files from Laravel using this package?
- Yes, the package description states it can export GEDCOM 5.5.1 files from Laravel. Export is useful for backups, migrations, and giving users a portable copy of their family tree. Validate round-trip fidelity by exporting and re-importing a fixture, since formatting and tag loss are common on the way out. Keep your canonical data model independent of the exporter so you can swap implementations later.
- Is cgdprojects/laravel-gedcom actively maintained enough for production use?
- Adoption signals are thin: around 22 GitHub stars, a single visible release in early 2023, and no stated support policy. The dominant risk is longevity rather than code quality, especially on a data path that is expensive to replace later. Wrap it behind your own importer interface so swapping or forking stays cheap. Budget a short spike to confirm the parser works on your real files before committing to a multi-sprint integration.
- How should I handle privacy and GDPR for living individuals in imported GEDCOM files?
- Uploaded family trees contain personal data about living people, and that obligation belongs to your application, not the package. Design the import so records can be deleted and re-imported per individual, and keep a source file reference for audits. Apply privacy rules for living individuals in your own domain layer rather than relying on the parser. Retention, consent, and deletion policies must be enforced in your application code.
- Can laravel-gedcom handle large GEDCOM files without exhausting memory?
- Whether parsing is streaming or fully in-memory is not documented in the available material, so check the source or test with a realistically large file. Treat user-uploaded GEDCOM as untrusted input: cap file size, set execution timeouts, and run imports in queued jobs rather than request threads. Family tree files can carry tens of thousands of individuals plus notes and media references. A quick memory test during the spike will tell you whether you need chunking or a different parser.
- What alternatives exist for parsing GEDCOM files in PHP or Laravel?
- Several standalone PHP GEDCOM parsers exist, and some are wrappers around older libraries, so check whether the underlying parser is still maintained. Using a framework-agnostic parser and writing your own thin Laravel adapter is often safer than depending on a low-adoption package. The trade-off is more upfront work versus more control over tag preservation, encoding handling, and error reporting. Either way, keep the parser behind an internal interface so it remains replaceable.