Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP SDK 4.0.0 #1586

Closed
1 task done
stephanie-anderson opened this issue Sep 5, 2023 · 4 comments
Closed
1 task done

PHP SDK 4.0.0 #1586

stephanie-anderson opened this issue Sep 5, 2023 · 4 comments
Assignees
Milestone

Comments

@stephanie-anderson
Copy link
Contributor

stephanie-anderson commented Sep 5, 2023

This outlines the work we plan for the next major version of the PHP SDK.

Remove deprecated methods

Most of the current methods that are marked as deprecated will be removed. An extensive upgrade guide will be provided.

Ship a default HTTP client

After internal discussions, we decided to ship a default HTTP client based on cURL. A Sentry-provided interface will still support the use of third-party HTTP clients. For our Symfony SDK, we'll rely on the Symfony HTTP Client instead. The Laravel SDK will use the default HTTP client.

Remove most dependencies

Once we rely on our own HTTP client, we can remove the majority of dependencies of the SDK.

Remove the use of the /store endpoint

We'll remove the use of the /store endpoint, which currently is only used for error reporting if performance is disabled in the SDK. This will bump the self-hosted version requirement to 20.6.0 or higher, released on June 16, 2020.

Simplified performance APIs

We are currently working on removing transactions from the public API surface in all SDKs and will therefore revamp the performance API of the PHP SDK with an emphasis on spans.

Other topics

  • We'll aim to provide a better API than the current PayloadSeralizer, making it easier for our users to provide custom serializers.
  • Most classes will be annotated as @final instead of using the final keyword.
  • Most container objects will provide a fluent API.
  • Based on RFC #34, we'll introduce lifecycle hooks to the SDK.
  • Based on RFC #62, we'll add an event scrubber to exhaustively control both PII (Personally Identifiable Information) and security credentials that are sent to Sentry.
  • The SDK won't actively throw any exceptions moving forward, necessitating a better debug: true experience for local development.
@cleptric cleptric self-assigned this Sep 7, 2023
@cleptric cleptric added this to the 4.0 milestone Sep 7, 2023
@ste93cry
Copy link
Collaborator

I beg you, please do not ship your own HTTP client. I can live with the decision of shipping a well-known HTTP client by default (ignoring all the negative feedback you got, btw), but not with developing yet another client, which was also the way SDK 1.x worked and that had a lot of issues for this reason.

@Jean85
Copy link
Collaborator

Jean85 commented Sep 15, 2023

I definitely agree with @ste93cry request. Nearly all clients in the PHP ecosystem use Curl underneath, and Guzzle or Symfony are both two very stable clients.
Yes, we had some issues recently, but those were mainly related to the HTTPlug stuff. We can ditch that and stay on a stable client.

Choose the one that you prefer, leverage PSR-18 to ensure cross-compat, but please do not re-implement anything from scratch, that would be a nightmare, both from a security and a maintainer standpoint.

@jnoordsij
Copy link
Contributor

As per the discussion on #1591 (comment), "symfony/options-resolver": "^3.4.43" should probably be removed in the 4.0 version as it is no longer tested in the current CI and is not needed to retain old PHP version support.

@cleptric
Copy link
Member

cleptric commented Nov 6, 2023

4.0.0 was released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

5 participants