All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Replace pinned version of cache/cache with cache/array-adapter.
- Adjust dependencies to allow installation on PHP 8.
- Fix tests using newer version of phpunit.
- Update DataService Uri vars to fully qualified names.
- Fixed a bug mapping media categories.
- Fixed tests
- Rename master branch to main
- Alias version of cache/cache
- New method \Lullabot\Mpx\DataService\Media\Media::getNormalizedDefaultThumbnailUrl that includes known substitutions against the defaultThumbnailUrl.
- Removed tests against PHP 7.3 in CircleCI config.
- Bump PHP version requirement to PHP 7.4.
- Updated Symfony dependencies to allow for ^4.4.
- Updated \Lullabot\Mpx\DataService\NotificationTypeExtractor::getTypes to have a nullable array typed return.
- Changed the annotations that ended in @endcode to have some trailing text to avoid an issue with doctrine/annotations:1.4.0 and PHP 7.4. This allows lullabot/mpx-php to be used with tests passing cleanly with drupal/core-recommended:^8.9.
- Added dependency on phpdocumentor/reflection-docblock, previously undocumented and often hidden by test dependencies or other packages requiring it.
- Added dependency on symfony/finder, previously undocumented and often hidden by test dependencies or other packages requiring it.
- Run tests on PHP 7.4
- Add .codeclimate.yml to exclude coverage for certain files
- Fix a bug in the player URL class that in some cases would result in a FALSE value for autoPlay not making it into the final URL
- Fix tests
- Documentation updates
- Coding standards fixes
This release is identical to 1.0.0-rc1
- Remove xml support from the client #162
\Lullabot\Mpx\DataService\ObjectListIterator.php
now allows the caller to get the total number of mpx results, via::getTotalResults()
method.
- New interfaces have been added, which ObjectInterface now inherits from.
\Lullabot\Mpx\DataService\OwnerIdInterface
represents objects with an owner.\Lullabot\Mpx\DataService\GuidInterface
represents objects with a GUID.\Lullabot\Mpx\DataService\PublicIdWithGuidInterface
represents objects containing both a public ID and a GUID.
\Lullabot\Mpx\Service\Player\Url::__construct()
now typehints to aPublicIdWithGuidInterface
, which is required for rendering URLs with a GUID.\Lullabot\Mpx\Service\IdentityManagement\UserSession
no longer requires a lock and cache backend in the constructor. It's highly recommended to include both for applications that have multiple threads or requests running concurrently.
Notification
now has anisSyncResponse()
method to determine if no further notifications are available. #154
- Setting an account context for requests is now done by setting the account
parameter in the
AuthenticatedClient
constructor. The account parameter has been removed from all methods inDataObjectFactory
. #154 NotificationListener
now supports sets an account context to limit notifications to a single account only. #154
- Allow any object with a public ID to be used for player URLs #152
- Player URIs can now be generated using media reference GUIDs instead of
public IDs by calling
withMediaByGuid
, and back to public IDs by callingwithMediaByPublicId
. #153
\Lullabot\Mpx\Service\Player\Url
now is immutable, following what\Psr\Http\Message\UriInterface
does. Allset
methods are nowwith
methods. #153- The
media
parameter on the Url constructor is now an ObjectInterface and not just a PublicIdentifierInterface to support guid URLs. #153
- Embeddable player URLs can now be generated with
setEmbed
#151
- Update player Url class to correctly handle playAll and autoPlay query string params.
- Support limiting the fields returned when selecting objects #147
- Support calculating the availability of a media object. #146
- Update ObjectInterface to include more common functions #145
- The FeedConfig object is now supported. #110
- New classes have been added to support feed URL generation. See
\Lullabot\Mpx\Service\Feeds
for details. #111
- The
\Lullabot\Mpx\Player\Url
has been moved to\Lullabot\Mpx\Service\Player\Url
. #111 \Lullabot\Mpx\Player\Url
generated URLs are no longer missingmedia
. #141
- Methods that load data from mpx now support passing in HTTP client options to
Guzzle. This is primarily useful for implementations wishing to pass custom
headers in the request, such as
Cache-Control: no-cache
to intermediate proxies. #138
- The library has been relicensed to MIT #136.
\Lullabot\Mpx\DataService\ObjectInterface::getCustomFields()
now returns an array of all custom field classes and does not take a namespace parameter. #135- A custom field class is loaded in objects even if the response data does not contain any fields in that namespace. #135
- Fix not using the adapter's cache item #137
- [#131] Link and Image data types from mpx are now supported. These are typically used in custom fields only.
- New date classes have been added to handle empty date fields. See the
\Lullabot\Mpx\DataService\DateTime
namespace for details.
- PHP 7.1 is now the minimum required PHP version.
- All scalar properties in mpx data services classes are now nullable.
- All array properties in mpx data services default to an empty array.
- All date and time properties now return a
\Lullabot\Mpx\DataService\DateTime\DateTimeFormatInterface
instead of a\DateTime
object. - It is highly recommended to re-create custom fields classes from the console
tool. This will ensure they do not cause unnecessary
\TypeError
exceptions to be thrown. - Duration is now generated as a float instead of an integer.
- All traits for mpx data service objects have been removed to simplify updates
using the console tool. This includes
AdPolicyDataTrait
andPublicIdentifierTrait
. - Rename IdInterface methods to prevent name and type conflicts #104
- Usernames are now validated to have a leading directory component, such as
mpx/
#124 - Made
$objectListQuery
optional inselect()
andselectRequest()
. select()
now supports "Q Queries", which are slower but more expressive filters for mpx requests #129\Lullabot\Mpx\DataService\QueryPartsInterface
has been added to allow other code to provide query parameters for select requests #129
- The
description
field on mpx exceptions is now optional, as it is only included in client errors and not server errors #124 \Lullabot\Mpx\DataService\ByFields
has been split into two classes.ByFields
now exclusively deals withby<Field>
parameters. A new\Lullabot\Mpx\DataService\ObjectListQuery
class handles ranges, sorts, and filters. #129select()
andselectRequest()
in DataObjectFactory now take aObjectListQuery
parameter instead of aByFields
parameter #129
- Add
\Lullabot\Mpx\AuthenticatedClient::setTokenDuration
to set a limit for token lifetimes #125 - Add a method / interface for fetching the raw JSON response #126
- Service URLs are now cached when loading objects and listening for notifications. #114
- Support for loading custom fields, including denormalizing into custom classes not shipped with this library. See the README for detailed documentation. #120
- Add a discovery interface for Custom Fields. #122
- Fix broken range calculations for the end of a list of ranges #113
\Lullabot\Mpx\Service\IdentityManagement\UserInterface
has been added to simplify bridging user configuration from applications. #116\Lullabot\Mpx\Service\AccessManagement\ResolveAllUrls
now follows what\Lullabot\Mpx\Service\AccessManagement\ResolveDomain
does and has changed it's API as a result. #144- The UnixMicrosecondNormalizer class has been renamed to UnixMillisecondNormalizer #115
- Fix using the number of entries in the current page instead of the total #118
- The deserialize method on DataObjectFactory is now protected #120
- create() methods that were broken and unused were removed in the plugin managers #120
- Add a method to yield pages in lists #107
- Fix nextList returning true for single-item lists #108
The first alpha-quality release of mpx for PHP.
- Support for loading Accounts, Media, and Players.
- Support for querying mpx for available services.
- Automatic upgrade of load requests to HTTPS.
- Annotation API for adding support for additional Data Service objects.
- A CLI tool to help generate data service class implementations.
- Automatic renewal of expired tokens for authenticated requests.
- Interfaces for implementing libraries to use such as
\Lullabot\Mpx\DataService\IdInterface
. - Automatic casting of mpx errors to exceptions.
- Support for read-only data services.
- Support for listening for notifications for any Data Service object.
- Support for querying any data service object. For example, library consumers can query for all Media matching a given title, sorted by a field.
- Support for transparently iterating over object-list responses from mpx.
- Stampede protection when signing in to mpx via the Symfony Lock component.
- Player
iframe
URLs can be generated for a given media asset. - Cache support for authentication tokens and service resolution API calls.