Previous topic

Website Types

Next topic

General Description

Last updated 17-Jul-2017

PHP Runtime


PHP runtime is an application backend framework used in APS application endpoints. Download latest version.

Change Log

Version 2.2-235, 2016-09-22

Fixed bugs:

  • APS-38179 application upgrade fails if service Id and type name differ
  • APS-38288 ‘Can’t find schema for “\Contact”’ error with ioncube encrypted application

Version 2.2-231

New Features:

  • APS-33649 Support assign.access decorator in aps-php-runtime

  • APS-33921 support aps-subscription-id header. Refer to impersonation info.

  • APS-33874 do not include not changed properties in the response on PUT. skip ‘null’ structures

  • APS-31801 Default limit is 1000 instances per endpoint.

    Default limit can be redefined in application script that implements ‘core/application’:


    or in .htaccess as follows:


  • APS-36530 Implement notification management in PHP runtime. Refer to notification example.

Versions 2.0-393, 2.1-313, 2.2-137, 2015-12-21

Fixed bugs and issues:

  • APS-31095 PHP runtime breaks disable functionality, subscriptions with suspendable resources cannot be canceled in PBA

Versions 2.0-391, 2.1-311, 2.2-135, 2015-12-12

Fixed bugs and issues:

  • APS-30633 PHP runtime should wipe empty lines from response body on link/unlink requests

    Now PHP runtime returns http status 204 on custom operations and Link/Unlink call, if application function returns empty result.

  • APS-30269 Adding a new property to structure causes PHP runtime exception if array of such structures is used in resource

    PHP Runtime checks that array property is defined before unserializing JSON object

  • APS-27819 PHP runtime stores application certificate in world-readable files

    Now certificate files get permissions 600

  • APS-28350 cgi support - client cert environment variables names differ in CGI

    Now PHP Runtime recognizes environment variables like REDIRECT_SSL_CLIENT_S_DN_CN

  • APS-28396 support aps->subscription field in php runtime

    uid of pa/subscription APS resource. Property available from APS 2.2

Versions 2.0-383, 2.1-302, 2.2-115, 2015-08-21

New features:

Fixed bugs and issues:

  • APS-26696 php runtime should perform GET request in transaction when filling resource object for custom operations
  • APS-26627 upgrade fails if a required property was added
  • APS-27116 php runtime CollectionProxy can retrieve only 1000 resources
  • APS-25796 improve error reporting for cases when _getDefault() is not defined in a type
  • APS-27247 some required types aren’t added to core/types
  • APS-27500 implement full upgrade support in php runtime
  • APS-27718 send multiple links in collection with register and provision
  • APS-27934 It’s not possible to build package with methods which return “ResourceLimit” type

Versions 2.0-370, 2.1-292, 2.2-87, 2015-07-01

  • $error and $additionalInfo parameters are added to \Rest\RestException. Read more.

Fixed bugs:

  • APS-22174 php runtime local type cache is re-created on every request if one of service scripts includes another
  • APS-25753 support of ‘error’ field in \Rest\RestException
  • APS-21539 implement separate logging of request and response

Versions 2.0-363, 2.1-288, 2.2-79, 2015-06-01

Fixed bugs:

  • APS-21940 Optional parameters are not detected correctly
  • APS-21974 An error occurs when new “\APS\Link” is set ID rather than an object
  • APS-21887 Can’t find schema for “object” error when linking resource

Versions 2.0-361, 2.1-286, 2.2-72, 2015-04-28

  • BindServicesToDomain event subscription type is added.
  • Supporting search result with ‘select’ rql, when linked resource is inside the response json.

Fixed bugs:

  • APS-21005 CollectionProxy and ResourceProxy should use the same APS-Resource-Id and APS-InstanceId headers, as was used to retrieve base resource
  • APS-20990 php runtime should properly handle APSC response for RQL with ‘select’
  • APS-21432 instanceId private property of ResourceBase class potentially conflicts with application properties
  • APS-21375 php runtime should allow to work with 2 versions of the same type within application upgrade process

Versions 2.0-356, 2.1-283, 2.2-46, 2015-03-04

  • unlinkResource method is added. linkResource method now accepts ResourceProxy parameter, as well as ResourceBase. Read more.
  • @runtimeVersions annotation is introduced to define php runtime versions that application requires. Read more
  • Added ability to work with several application instances within one script (APS-19709).

Fixed bugs:

  • APS-19721 Resources can be accidentally wiped in case of connectivity issues with controller
  • APS-19709 Authentication problem for concurrent requests to APSC
  • APS-18588 correct handling all exceptions

Version 2.1-269, 2014-12-08

APS PHP Runtime 2.1-269, compatible with Odin Service Automation 6.0, is published.

Version 2.0-340, 2014-12-08

  • Possibility to re-define APS Logger is added. More info. \APS\Logger::get() function is depricated. \APS\LoggerRegistry::get() should be used instead.

Fixed bugs:

  • APS-18387 PHP runtime can’t handle array of objects as structure’s property
  • APS-18430 PHP Runtime can not find a structure declared under a namespace
  • APS-18755 PHP Runtime can’t set a relation inherited from implemented resource

Version 2.0-331, 2014-11-11

  • CLI mode is introduced. More info (APS-18053).
  • JSON_UNESCAPED_UNICODE flag is used in json_encode for php 5.4 and later (APS-18033).
  • Actual php runtime version is placed in X-Powered-by header of the response (APS-17863).
  • Minimum supported php version is decreased from php 5.3.3 to php 5.3.2.

Fixed bugs:

  • APS-18053 Handling requests in APS PHP Runtime when running in PHP CLI SAPI.
  • APS-18033 Invalid byte sequence when saving 4-byte UTF8 characters processed by PHP runtime.
  • APS-17863 Add build number into “X-Powered-by” header.

Version 2.0-329, 2014-10-13

  • Various fixes related to operation parameters type and context type. Support for ‘query’ parameters in proxy methods.
  • Correct error reporting when json parsing is failed.
  • Security: denying access if APS-Instance-ID is not specified in incoming request, or its certificate is not present.
  • provisionResource method is added. Read more.
  • Performance: runtime do not retrieve resources from APSC on link/unlink calls in case if corresponding link/unlink method is not declared in class.

Fixed bugs:

  • APS-17803 query parameters are not passed in generated function call
  • APS-17948 linkResource causes ‘operation on resource not allowed’ error when linking resource is an offer
  • APS-17718 runtime is trying to parse ‘string,body’ parameter as json
  • APS-17685 better diagnostics for json parsing errors
  • APS-17683 php runtime returns exception if method parameter structure contains an array

Version 2.0-325, 2014-09-07

  • It’s no longer required to have a script file name identical to the corresponding service ID declared in metadata.
  • configureResource and unprovisionResource methods are added. Read more.
  • Diagnostics is improved for attempts to access a property of not existing relation.
  • config directory is protected with ‘deny from all’ in the .htaccess file.
  • Fixed JSON parsing on Windows.
  • linkResource now returns newly created or linked resource object.
  • Default values of method parameters are observed, and an error is thrown if a required parameter is missed. Read more.

Version 2.0-317, 2014-07-07

  • Added support for keep-alive connections.
  • Fixed the partly lost responses.
  • Added ability to customize log location.
  • Fixed logging problems on IIS.

Version 2.0-312, 2014-06-07

  • isEmpty method is added in relation classes. It checks whether a relation is defined. Read more.
  • Added support for the contentType attribute in operation params. Used in method declaration.

Version 2.0-307, 2014-06-02

Two bugs fixed:

  • Relative path does not work for APS_PHP_RUNTIME_ROOT.
  • updateResource error, caused by type classes path change. Bug appeared in 2.0-304.

Version 2.0-304, 2014-05-29