Skip to content

13.0.0

Choose a tag to compare

@1415003719 1415003719 released this 02 Sep 11:37
· 2 commits to 2025-07 since this release
09413fa

What's Changed

Breaking Changes - AfterShip Tracking PHP SDK v13.0.0

System Requirements Changes

  • PHP Version: 8.0+ → 8.1+
  • Symfony Dependencies: Removed 5.4 support, minimum 6.4

1. Namespace And Model Name Changes

All request/response classes moved from API namespace to Model namespace:

// v12
use Tracking\API\Tracking\CreateTrackingRequest;
use Tracking\API\Courier\DetectCourierRequest;

// v13  
use Tracking\Model\CreateTrackingRequest;
use Tracking\Model\DetectCourierRequest;

Most of the request/response model names have been made more concise

// v12 - Suffix naming
use Tracking\Model\CourierEstimatedDeliveryDateTracking;
use Tracking\Model\ShipmentWeightTracking;
use Tracking\Model\AftershipEstimatedDeliveryDateTracking;
use Tracking\Model\CarbonEmissionsTracking;
use Tracking\Model\CustomEstimatedDeliveryDateTracking;

// v13 - Prefix naming
use Tracking\Model\TrackingCourierEstimatedDeliveryDate;
use Tracking\Model\TrackingShipmentWeight;
use Tracking\Model\TrackingAftershipEstimatedDeliveryDate;
use Tracking\Model\TrackingCarbonEmissions;
use Tracking\Model\TrackingCustomEstimatedDeliveryDate;

2. Response Structure Complete Refactor

All Response classes now contain responseHeader and data structure:

// v12 - Direct access to response properties
$response = $client->tracking->createTracking($request);
$id = $response->id;
$trackingNumber = $response->tracking_number;

// v13 - Must access through getData()
$response = $client->tracking->createTracking($request);
$data = $response->getData();
$id = $data->id;
$trackingNumber = $data->tracking_number;
$headers = $response->getResponseHeader(); // New feature: get response headers

Applies to all API responses: createTracking, getTrackingById, getTrackings, updateTrackingById, getCouriers, etc.

3. Constants to Enums

Multiple classes changed from class constants to PHP 8.1 native enums: #23

// v12 - Class constants
Tag::PENDING
Tag::DELIVERED
Tag::IN_TRANSIT

// v13 - Enum values
Tag::PENDING->value
Tag::DELIVERED->value  
Tag::IN_TRANSIT->value

Impact: If your code uses constants like Tag::PENDING for string comparison, change to Tag::PENDING->value.

Full Changelog: 12.0.0...13.0.0