Releases: EasyPost/easypost-php
v6.0.0
-
Release final version of v6 that contains all the changes in the
v6.0.0-rc1
listed below: -
PHP 7.3 is no longer supported
-
Added a new
EasyPostClient
object which encapsulates the API key. All functions are called against this client allowing for thread-safety (eg:$client->shipment->create()
)- All instance methods and the ability to have objects update in-place has been removed due to this rearchitecture. When updating objects or performing actions on them (eg: creating a label/scanform), you will need to assign the return value to a variable and use that moving forward instead of relying on the object getting updated without capturing the new return value
->save()
instance methods are nowupdate()
static methods- Functions no longer accept an API key as an optional parameter
- EasyPost objects no longer contain the logic associated with them; instead, we have
Services
for each EasyPost object. All the services are properties of anEasyPostClient
. You can then call functions on a Service.
-
All function and parameter names are now camelCase. Previously we used a mix of camel and snake cases
-
Improves error exception handling (closes #7)
- Introduced ~2 dozen new exception types that extend from either
ApiException
orEasyPostException
- ApiExceptions will behave like the previous EasyPostException class did. They will include a
message
,errors
,code
,httpStatus
andhttpBody
. This class extends the more generic EasyPostException which only contains a message, used for exceptions thrown directly from this library - The
ecode
property of anApiException
is now justcode
- Introduced ~2 dozen new exception types that extend from either
-
Functions that previously returned
true
now return void as there is no response body from the API (eg:fundWallet
,deletePaymentMethod
,updateEmail
,createList
) -
Adopts
Guzzle
as the HTTP client for this library. This should provide a much more consistent experience, better encoding, and faster request times in some cases -
The results of calling
allApiKeys
is no longer double wrapped with the mode of the API key (these are still accessible inside of each object) -
Requestor
has moved toHttp
, constants fromEasyPost
now live inConstants
,Error
moved toException
-
Occurances of
smartrate
are nowsmartRate
andSmartrate
are nowSmartRate
to match the documentation and API expectations -
Referral
is nowReferralCustomer
to better match documentation and API expectation -
validateWebhook
,getLowestSmartRate
, andreceiveEvent
are now underEasyPost\Util\Util
as they do not make any API calls and do not need the associated client object- The
receive
function previously in the namespace ofEvent
is now calledreceiveEvent
since it has been relocated to the generic Util namespace - Internal, library only utilities have been moved to
EasyPost\Util\InternalUtil
- The
-
The beta
EndShipper
class has been removed, please use the generally availableEndShipper
class -
Various properties and functions that were previously intended for private/protected use but were public have been corrected
-
All phpdoc type hints, descriptions, return values, and throws references were corrected or updated
-
All dependencies were bumped
-
Various other bug fixes and improvements were made along with addressing deprecation warnings
v6.0.0-rc1
- PHP 7.3 is no longer supported
- Added a new
EasyPostClient
object which encapsulates the API key. All functions are called against this client allowing for thread-safety (eg:$client->shipment->create()
)- All instance methods and the ability to have objects update in-place has been removed due to this rearchitecture. When updating objects or performing actions on them (eg: creating a label/scanform), you will need to assign the return value to a variable and use that moving forward instead of relying on the object getting updated without capturing the new return value
->save()
instance methods are nowupdate()
static methods- Functions no longer accept an API key as an optional parameter
- EasyPost objects no longer contain the logic associated with them; instead, we have
Services
for each EasyPost object. All the services are properties of anEasyPostClient
. You can then call functions on a Service.
- All function and parameter names are now camelCase. Previously we used a mix of camel and snake cases
- Improves error exception handling (closes #7)
- Introduced ~2 dozen new exception types that extend from either
ApiException
orEasyPostException
- ApiExceptions will behave like the previous EasyPostException class did. They will include a
message
,errors
,code
,httpStatus
andhttpBody
. This class extends the more generic EasyPostException which only contains a message, used for exceptions thrown directly from this library - The
ecode
property of anApiException
is now justcode
- Introduced ~2 dozen new exception types that extend from either
- Functions that previously returned
true
now return void as there is no response body from the API (eg:fundWallet
,deletePaymentMethod
,updateEmail
,createList
) - Adopts
Guzzle
as the HTTP client for this library. This should provide a much more consistent experience, better encoding, and faster request times in some cases - The results of calling
allApiKeys
is no longer double wrapped with the mode of the API key (these are still accessible inside of each object) Requestor
has moved toHttp
, constants fromEasyPost
now live inConstants
,Error
moved toException
- Occurances of
smartrate
are nowsmartRate
andSmartrate
are nowSmartRate
to match the documentation and API expectations Referral
is nowReferralCustomer
to better match documentation and API expectationvalidateWebhook
,getLowestSmartRate
, andreceiveEvent
are now underEasyPost\Util\Util
as they do not make any API calls and do not need the associated client object- The
receive
function previously in the namespace ofEvent
is now calledreceiveEvent
since it has been relocated to the generic Util namespace - Internal, library only utilities have been moved to
EasyPost\Util\InternalUtil
- The
- The beta
EndShipper
class has been removed, please use the generally availableEndShipper
class - Various properties and functions that were previously intended for private/protected use but were public have been corrected
- All phpdoc type hints, descriptions, return values, and throws references were corrected or updated
- All dependencies were bumped
- Various other bug fixes and improvements were made along with addressing deprecation warnings
v5.8.0
- [ADDED] Carrier account creation routes requests correctly for carriers that require custom workflows
- [FIXED] Instead of returning
null
when a list of child API keys cannot be returned (eg: when you callapi_keys
on a non-user object) it will return an empty list. The expected impact to end users is extremely low - [IMPROVED] Retrieving child user API keys for users with large numbers of child users should see much faster results as we now break on the match instead of iterating the entire list
v5.7.0
- Adds Partner White Label (Referral) Support
- Adds ability to create a referral user
- Adds ability to update a referral user's email
- Adds ability to retrieve all referral users
- Adds ability to add a credit card to a referral user's account
- Adds support to specify an
$endShipperId
on the buy call of a Shipment - Removes unreachable code in the address verification flow that checked for the existence of an address (errors will continue to be thrown on failure)
v5.6.0
- Moves EndShipper out of beta into the general library namespace
v5.5.1
- Removes some extra imports that no longer exist causing errors when importing this library. Adds a regression test to protect against this in the future.
v5.5.0
- Adds Carbon Offset support
- Adds ability to create a shipment with carbon offset
- Adds ability to buy a shipment with carbon offset
- Adds ability to one-call-buy a shipment with carbon offset
- Adds ability to rerate a shipment with carbon offset
- Adds
validateWebhook
function that returns your webhook or raises an error if there is awebhookSecret
mismatch - Fixes a bug that required the values of
verify
andverify_strict
params on an Address creation call to be arrays since passingtrue
as a boolean is also valid (passing an array will continue to work but is no longer required)
v5.4.0
- Add ability to generate forms for shipments via
generate_form()
function
v5.3.0
- Adds
Billing::retrieve_payment_methods()
,Billing::fund_wallet()
, andBilling::delete_payment_method()
functions - Adds OS specific details to the
User-Agent
header - Applies a patch to coerce array error messages to strings where error mapping is done improperly (as is the case with carriers like GSO/GLS) (closes #181)
v4.0.3
- Backports User-Agent header changes