# Breaking Changes

> Which ReportingCloud SDK releases from 2018 to 2024 need work in an application: PHP versions, package names, namespaces, removed classes and the .NET package.

- **Product:** ReportingCloud
- **Section:** Documentation
- **Kind:** Topic
- **Path:** ReportingCloud > What's New > Breaking Changes
- **1403 words**
- **Web URL:** https://docs.textcontrol.com/reporting-cloud/whats-new/breaking-changes/
- **LLMs URL:** https://docs.textcontrol.com/reporting-cloud/whats-new/breaking-changes/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/reporting-cloud/whats-new/breaking-changes/llms-full.txt

---

How much work does an update of a ReportingCloud application take? The changes to the Web API added endpoints, parameters and merge settings, and the endpoints have stayed below `/v1/` since the release in 2016, so requests written for an earlier year keep their form. The changes that need work are in the SDKs: a higher PHP version, a new package name or namespace, a removed class or a changed method signature. The list below names them by year, newest first, with what to change.

### How to Use This List

- **Find your SDK version.** Look up the version of the SDK package in your project: *composer.lock* for PHP, the package reference in the project file for .NET.
- **Read every entry after it.** Read the entries of every year between the release of your version and today, newest last, and apply each change.
- **Check the requirements.** [Requirements](https://docs.textcontrol.com/reporting-cloud/installation/requirements/#sdk-requirements) lists the language versions that each SDK release needs.

### Changes by Year

| Year | SDK | Change that needs work |
|---|---|---|
| [2024](#2024) | PHP SDK 4.0.3 and later, Laminas module 5.0 | PHP 8.3 or later |
| [2023](#2023) | PHP SDK 4.0.0 | New package name and namespace, `StringUtils` removed, PHP 8.1 or later |
| [2022](#2022) | Former PHP SDK package 4.0.0 to 4.0.6 | PHP 8.0 or later |
| [2021](#2021) | PHP SDK 3.0 | PHP 7.4 or later, no `null` for optional parameters, `StatusCode` removed |
| [2020](#2020) | Laminas module 2.2.0 | Laminas instead of Zend Framework 3 |
| [2019](#2019) | PHP SDK 2.0.2 | `downloadTemplate` returns binary data |
| [2018](#2018) | PHP SDK 2.0, .NET SDK 1.200.500 | PHP 7.1 or later, no Zend Framework, one .NET package |

The years 2016 and 2017 brought no change that requires work.

### 2024

- **PHP 8.3.** Releases 4.0.3 to 4.0.5 of `textcontrol/textcontrol-reportingcloud` and version 5.0 of the Laminas module require PHP 8.3 or later. On PHP 8.1 and 8.2, Composer installs release 4.0.2, the last one for these versions. [2024](https://docs.textcontrol.com/reporting-cloud/whats-new/2024/llms-full.txt) describes the releases.

### 2023

- **New package name.** PHP SDK 4.0.0 is published as `textcontrol/textcontrol-reportingcloud`; the former package `textcontrol/txtextcontrol-reportingcloud` is abandoned. Remove the former package from *composer.json* and require the new one, as [Installing an SDK](https://docs.textcontrol.com/reporting-cloud/installation/sdks/llms-full.txt) shows. The Laminas module moved to `textcontrol/textcontrol-laminas-reportingcloud` in the same way.
- **New namespace.** The classes moved from `TxTextControl\ReportingCloud` to `TextControl\ReportingCloud`. Change the `use` statements of your code. The Laminas module uses the namespace `TextControl\Laminas\ReportingCloud`.
- **`StringUtils` removed.** The class `Stdlib\StringUtils` of the SDK has been removed because PHP provides the same functions. Code that called it uses the string functions of PHP instead.
- **PHP 8.1.** The SDK requires PHP 8.1 or later.

[2023](https://docs.textcontrol.com/reporting-cloud/whats-new/2023/llms-full.txt) describes the releases.

### 2022

- **PHP 8.0.** Releases 4.0.0 to 4.0.6 of the former package `textcontrol/txtextcontrol-reportingcloud` require PHP 8.0 or later and no longer support PHP 7.4. A version constraint such as `^4.0` on the former package installs them. A project on PHP 7.4 stays on release 3.0.0. [2022](https://docs.textcontrol.com/reporting-cloud/whats-new/2022/llms-full.txt) explains how these releases relate to PHP SDK 4.0.

### 2021

- **PHP 7.4.** PHP SDK 3.0 requires PHP 7.4 or later. A project on an older PHP 7 version stays on release 2.6.2, which runs on PHP 7.1 and later 7.x versions.
- **No `null` for optional parameters.** The public methods no longer accept `null` for their optional parameters, which now default to an empty string, an empty array or `false`. A call such as `mergeDocument($mergeData, 'PDF', null, $templateFilename)` fails with a `TypeError`; pass `''`, `[]`, `0`, `true` or `false` instead of `null`.
- **`StatusCode` removed.** The class `StatusCode`, which held constants for HTTP status codes, has been removed in favor of the package `ctw/ctw-http`, which the SDK installs.

[2021](https://docs.textcontrol.com/reporting-cloud/whats-new/2021/llms-full.txt) describes the release. It also deprecated authentication with a user name and password; [Deprecated APIs](https://docs.textcontrol.com/reporting-cloud/whats-new/deprecated-apis/llms-full.txt) lists the members.

### 2020

- **Laminas instead of Zend Framework 3 (Laminas module 2.2.0).** Version 2.2.0 of the module that integrates the PHP SDK into MVC applications requires the Laminas components `laminas/laminas-mvc`, `laminas/laminas-servicemanager` and `laminas/laminas-view` instead of their Zend Framework counterparts. A Zend Framework 3 application moves to Laminas before it updates the module, or stays on version 2.1.0. The public interfaces of the module are unchanged, so code that uses it needs no change. The PHP SDK itself is not affected.

[2020](https://docs.textcontrol.com/reporting-cloud/whats-new/2020/llms-full.txt) describes the release.

### 2019

- **Binary templates (PHP SDK 2.0.2).** Since version 2.0.2 of January 3, 2019, `downloadTemplate` returns the template as binary data. Versions 2.0.1 and earlier returned it Base64-encoded, so code that decoded the result must no longer do so.

[2019](https://docs.textcontrol.com/reporting-cloud/whats-new/older-versions/2019/llms-full.txt) describes the release.

### 2018

- **PHP 7.1 and no Zend Framework (PHP SDK 2.0).** Version 2.0 requires PHP 7.1 or later and no longer depends on Zend Framework components. An application that used the Zend Framework 3 integration of version 1.x uses the separate module, today's Laminas module `textcontrol/textcontrol-laminas-reportingcloud`.
- **One .NET package (.NET SDK 1.200.500).** `TXTextControl.ReportingCloud` contains the builds for .NET Framework, .NET Core and .NET Standard. A .NET Core project that references `TXTextControl.ReportingCloud.Core`, which is no longer updated, references `TXTextControl.ReportingCloud` instead, as [Installing an SDK](https://docs.textcontrol.com/reporting-cloud/installation/sdks/llms-full.txt) shows.

[2018](https://docs.textcontrol.com/reporting-cloud/whats-new/older-versions/2018/llms-full.txt) describes the releases.

### Related Pages

- [Deprecated APIs](https://docs.textcontrol.com/reporting-cloud/whats-new/deprecated-apis/llms-full.txt): deprecated members and packages and their replacements.
- [Requirements](https://docs.textcontrol.com/reporting-cloud/installation/requirements/llms-full.txt): the language versions of each SDK release.
- [SDKs](https://docs.textcontrol.com/reporting-cloud/sdks/llms-full.txt): the SDKs, their packages and how current they are.
- [2024](https://docs.textcontrol.com/reporting-cloud/whats-new/2024/llms-full.txt): the most recent changes.

---

## Nearby

- **Previous:** [What's New in ReportingCloud in 2020](https://docs.textcontrol.com/reporting-cloud/whats-new/2020/llms-full.txt)
- **Next:** [Deprecated APIs](https://docs.textcontrol.com/reporting-cloud/whats-new/deprecated-apis/llms-full.txt)
