| Server IP : 198.38.94.13 / Your IP : 216.73.217.33 Web Server : Apache System : Linux d4744.dxb1.stableserver.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : revivere ( 1140) PHP Version : 8.2.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/revivere/www/wp-content/plugins/advanced-custom-fields/src/AI/GEO/ |
Upload File : |
<?php
/**
* @package ACF
* @author WP Engine
*
* © 2026 Advanced Custom Fields (ACF®). All rights reserved.
* "ACF" is a trademark of WP Engine.
* Licensed under the GNU General Public License v2 or later.
* https://www.gnu.org/licenses/gpl-2.0.html
*/
/**
* Schema.org type and property data with lazy loading
*
* Data files in the /data directory are auto-generated by tools/generate-schema.js
* To regenerate data files, run: npm run generate-schema
*
* @package ACF\AI\GEO
*/
namespace ACF\AI\GEO;
/**
* Class SchemaData
*
* Contains static schema.org vocabulary data for type and property validation.
* Data is lazy-loaded from separate files to reduce memory usage when not needed.
*/
class SchemaData {
/**
* Type hierarchy mapping (lazy-loaded)
*
* @var array|null
*/
private static $type_hierarchy = null;
/**
* Property domain mappings (lazy-loaded)
*
* @var array|null
*/
private static $property_domains = null;
/**
* Property range mappings (lazy-loaded)
*
* @var array|null
*/
private static $property_ranges = null;
/**
* Compatible properties by output type (lazy-loaded)
*
* @var array|null
*/
private static $compatible_properties = null;
/**
* Get the type hierarchy mapping
*
* Maps each type to its parent type in the schema.org hierarchy.
* For example: 'Recipe' => 'HowTo'
*
* @since 6.8.0
*
* @return array
*/
public static function get_type_hierarchy(): array {
if ( self::$type_hierarchy === null ) {
self::$type_hierarchy = require __DIR__ . '/data/type-hierarchy.php';
}
return self::$type_hierarchy;
}
/**
* Get the property domain mappings
*
* Maps each property to the types it can be used with.
* For example: 'prepTime' => ['HowTo', 'HowToDirection']
*
* @since 6.8.0
*
* @return array
*/
public static function get_property_domains(): array {
if ( self::$property_domains === null ) {
self::$property_domains = require __DIR__ . '/data/property-domains.php';
}
return self::$property_domains;
}
/**
* Get the property range mappings
*
* Maps each property to the types it expects as values.
* For example: 'author' => ['Person', 'Organization']
*
* @since 6.8.0
*
* @return array
*/
public static function get_property_ranges(): array {
if ( self::$property_ranges === null ) {
self::$property_ranges = require __DIR__ . '/data/property-ranges.php';
}
return self::$property_ranges;
}
/**
* Get compatible properties by output type
*
* Pre-computed mapping of output types to compatible properties.
* For example: 'Text' => ['name', 'description', ...]
*
* @since 6.8.0
*
* @return array
*/
public static function get_compatible_properties(): array {
if ( self::$compatible_properties === null ) {
self::$compatible_properties = require __DIR__ . '/data/compatible-properties.php';
}
return self::$compatible_properties;
}
}