Skip to content

Data Types Support

Data Helpers works with various data types and automatically detects the appropriate handling strategy.

Standard PHP arrays are fully supported:

$data = ['user' => ['name' => 'John']];
$accessor = new DataAccessor($data);

Plain PHP objects with public properties:

$user = new stdClass();
$user->name = 'John';
$accessor = new DataAccessor($user);
$name = $accessor->get('name');

Laravel Collections are automatically detected:

$collection = collect([
['name' => 'Alice'],
['name' => 'Bob'],
]);
$accessor = new DataAccessor($collection);

Laravel Eloquent Models with relationships:

$user = User::with('profile')->first();
$accessor = new DataAccessor($user);
$email = $accessor->get('profile.email');

Doctrine Collections and Entities:

$users = $repository->findAll();
$accessor = new DataAccessor($users);

JSON strings are automatically decoded:

$json = '{"user":{"name":"John"}}';
$accessor = new DataAccessor($json);
$name = $accessor->get('user.name');

XML strings are automatically converted:

$xml = '<user><name>John</name></user>';
$accessor = new DataAccessor($xml);
$name = $accessor->get('user.name');

Data Helpers automatically detects the data type and uses the appropriate strategy:

  1. JSON Detection - Checks for JSON string
  2. XML Detection - Checks for XML string
  3. Collection Detection - Checks for Laravel/Doctrine Collections
  4. Model Detection - Checks for Eloquent/Doctrine Models
  5. Object Detection - Handles plain objects
  6. Array Fallback - Default handling

Framework support is automatically detected at runtime:

  • Laravel - Detected via class_exists(Collection::class)
  • Doctrine - Detected via class_exists(DoctrineCollection::class)
  • Symfony - Detected via class_exists(ArrayCollection::class)

No configuration needed!