Download the PHP package squidit/array-to-object without Composer

On this page you can find all versions of the php package squidit/array-to-object. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package array-to-object

Object Hydrator

Hydrate typed objects from associative arrays, dotted arrays, or DTO-like source objects by mapping input keys or property names to corresponding typed target properties. The library also includes a helper base class for DTO-to-JSON output.

The supplied keys or source-object property names must match the names of the target object properties.

Installation

v3.* (PHP 8.4+)

v2.* (PHP 8.2 / 8.3)

Usage - example (multi dimensional array):

Usage - example (array dot notation):

output

If you only need to convert dotted keys into a nested array, use DotNotationToMultiDimensional directly:

Pass DotNotationFormat::EXPLODE as the second constructor argument when using explode-style dotted keys.

Usage - example (DTO/object input):

When the source data already arrives as an object, use DtoToObject. The source-object property names must match the target-object property names. Nested hydration and type casting work the same way as with array input.

Hydrating multiple objects

ArrayToObject, DotNotationArrayToObject, and DtoToObject all provide hydrateMulti() for indexed lists of source records:

Nested objects

If a class property contains a nested object, the hydrator can infer the object type by reading the property type.

In the example below, the Car::class contains a named property manufacturer which is of type Honda::class. When hydrating, we need to provide all data required to create a Honda object.

Nested objects: Array of objects

If a class property contains an array of objects, we need to add a property attribute:
SquidIT\Hydrator\Attributes\ArrayOf([CLASSNAME]).

In the example below, the Honda::class contains a property employeeList which should contain an array of Employee::class objects.

By adding the property attribute SquidIT\Hydrator\Attributes\ArrayOf(Employee::class) our hydrator knows how to hydrate array data found under the 'employeeList' object property.

Default values

When input omits a property, the hydrator uses the target object's default value when one exists. Defaults can come from constructor-promoted properties or regular declared properties.

Object defaults are cloned during hydration, so each hydrated object receives its own default object instance instead of sharing mutable state with other hydrated objects.

Hydration lifecycle

Target objects are created without executing the constructor body, then their typed properties are assigned directly. This means reflected default values are honored, but constructor side effects and constructor-only validation logic do not run during hydration. Use ObjectValidatorInterface for checks that must happen after hydration.

Object validation

If an object needs validation after hydration, implement SquidIT\Hydrator\Interface\ObjectValidatorInterface.

The hydrator calls validate() after all properties have been hydrated. When validation fails, throw a \SquidIT\Hydrator\Exceptions\ValidationFailureException. The supplied PathTracker can be used to include the property path in the exception message, including nested object and array positions.

User-safe error messages

By default, hydration errors include implementation detail that is useful for developers. If the message may reach an end user, enable safe error messages when creating the hydrator:

With safe messages enabled, a missing nested value is reported using a user-facing property path, for example: Path: manufacturer.employeeList[0].employeeName - no data supplied for required property.

DTO to JSON output

When a DTO needs predictable JSON output, extend SquidIT\Hydrator\Abstract\AbstractObjectToDto. This abstract class is specifically intended to help DTOs prepare JSON-friendly output through PHP's JsonSerializable flow.

Public and protected properties are included automatically. DateTimeImmutable values are formatted as Y-m-d\TH:i:s.u, backed enums are converted to their scalar values, and private properties are excluded.

If a DTO needs a different JSON date format, override the protected format constant:

Type casting/juggling array values into object properties

It is important to note that the hydrator will only work on classes that only contain typed properties. If a non typed property is found an SquidIT\Hydrator\Exceptions\AmbiguousTypeException exception will be thrown.

The hydrator supports casting into the following property types

int:

if a string contains only digits (plus and minus signs are allowed)

bool:

The following values will be cast to true

The following values will be cast to false

DateTimeImmutable::class:

Any string value supported by strtotime()
please note: as author of this library I feel no need to support the DateTime::class

BackedEnum:

Any integer of string backed enum value

UnionTypes:

:x: Union types are not supported because we are unable to infer concrete object type implementation.

Upgrading

Update v1. => V2.

Interface change

Adjust all references:

Update v2. => v3.


All versions of array-to-object with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package squidit/array-to-object contains the following files

Loading the files please wait ...