PHP code example of laravel-liberu / php-gedcom
1. Go to this page and download the library: Download laravel-liberu/php-gedcom library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
laravel-liberu / php-gedcom example snippets
spl_autoload_register(function ($class) {
$pathToGedcom = __DIR__ . '/library/'; // TODO FIXME
if (!substr(ltrim($class, '\\'), 0, 7) == 'Gedcom\\') {
return;
}
$class = str_replace('\\', DIRECTORY_SEPARATOR, $class) . '.php';
if (file_exists($pathToGedcom . $class)) {
use Gedcom\GedcomResource;
// Enable caching with custom configuration
$resource = new GedcomResource(
cacheEnabled: true,
cacheConfig: [
'memory_items' => 2000, // Max items in memory cache
'cache_dir' => '/tmp/gedcom', // Cache directory
'ttl' => 7200 // Cache TTL in seconds
]
);
// Get cache statistics
$stats = $resource->getCacheStats();
echo "Memory items: " . $stats['memory_items'] . "\n";
// Clear cache when needed
$resource->clearCache();
$parser = new \Gedcom\Parser();
$gedcom = $parser->parse('tmp.ged');
foreach ($gedcom->getIndi() as $individual) {
$names = $individual->getName();
if (!empty($names)) {
$name = reset($names); // Get the first name object from the array
echo $individual->getId() . ': ' . $name->getSurn() . ', ' . $name->getGivn() . PHP_EOL;
}
}
bash
# Basic benchmark
php examples/cli/performance-benchmark.php sample.ged
# Full benchmark with streaming and report
php examples/cli/performance-benchmark.php large.ged --streaming --report
# Save baseline for comparison
php examples/cli/performance-benchmark.php test.ged --baseline
# Compare with baseline
php examples/cli/performance-benchmark.php test.ged --compare