Data Transfer Objects
DTOs are readonly classes in Eloquage\DockerPhp\DataTransferObjects with a static fromArray(array $data) factory. Requests that implement createDtoFromResponse() allow you to call $response->dto() or $response->dtoOrFail() for typed data.
Available DTOs
| DTO | Used by | Description |
|---|---|---|
| ImageSummary | ListImagesRequest | Id, RepoTags, RepoDigests, Size, Created, Labels, Containers, Architecture, Os |
| ImageInspectDto | InspectImageRequest | Full image inspect payload |
| ImageHistoryItem | ImageHistoryRequest | Id, Created, CreatedBy, Size |
| ImageSearchResult | SearchImagesRequest | Name, description, star_count, is_official |
| ContainerSummary | ListContainersRequest | Container list item fields |
| NetworkSummary | ListNetworksRequest | Network list item fields |
| VolumeSummary | ListVolumesRequest | Volume list item fields (from Volumes array) |
| SystemInfo | InfoRequest | Wraps full info JSON; methods: name(), ncpu(), memTotal(), containers(), containersRunning(), images() |
| SystemVersion | VersionRequest | Version info |
| DiskUsage | SystemDfRequest | System disk usage response |
Example
$response = DockerPhp::images()->list();
/** @var \Eloquage\DockerPhp\DataTransferObjects\ImageSummary[] $summaries */
$summaries = $response->dto();
$response = DockerPhp::system()->info();
/** @var \Eloquage\DockerPhp\DataTransferObjects\SystemInfo $info */
$info = $response->dto();
$hostname = $info->name();
$cpus = $info->ncpu();