microsoftgraph / microsoftgraph/msgraph-sdk-php

OPCache bug

Ouverte
#1,653 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

status:waiting-for-triage type:bug
Langage dominant
PHP
Étoiles
669
Forks
150
Merge moyen
15 h 21 min
PR mergées (30 j)
3

Description

Describe the bug

Hi,

I'm using your library for Microsoft SSO. I only need to fetch basic user information like: getId, getMail, getGivenName, getSurname, and getUserPrincipalName. I’m doing this with the following script:

However, the doctrine/annotations library recently fixed a bug that affects our integration: https://github.com/doctrine/annotations/pull/446/files

I’m using OPCache, so option opcache.save_comments with the flag value set as 0. So while you are using PhpDoc I'm getting error from: https://github.com/doctrine/annotations/blob/2.0.x/lib/Doctrine/Common/Annotations/AnnotationReader.php#L122

Expected behavior

The only place where PhpDoc data is read is here: https://github.com/microsoft/kiota-abstractions-php/blob/main/src/RequestInformation.php#L66 - and microsoft/kiota-abstractions-php is a dependency of microsoftgraph/msgraph-sdk-php-core.

The dependency chain is quite large, but it seems that in my case, I don’t have any query parameters - and those are likely required for this issue to occur.

How can I work around this problem, aside from enabling comments in the cache?

How to reproduce

Set option opcache.save_comments with the flag value as 0

$tokenRequestContext = new AuthorizationCodeContext(
    tenantId: $config['tenant'],
    clientId: $config['clientId'],
    clientSecret: $config['clientSecret'],
    authCode: $params[self::PARAM_IN_CODE],
    redirectUri: $config['redirectUri'],
);

$graphServiceClient = new GraphServiceClient($tokenRequestContext, $config['scopes']);

$user = $graphServiceClient->me()->get()->wait();

$userData = [
    'id' => $user->getId(),
    'userPrincipalName' => $user->getUserPrincipalName(),
    'userEmail' => $user->getMail(),
    'userFirstName' => $user->getGivenName(),
    'userLastName' => $user->getSurname(),
];

// ...
SDK Version

2.25.0

Latest version known to work for scenario above?

No response

Known Workarounds

No response

Debug output
Click to expand log ```
</details>


### Configuration

_No response_

### Other information

_No response_

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par src/RequestInformation.php à la ligne 66 et comparez son utilisation de PhpDoc avec celle de AnnotationReader.php de doctrine/annotations à la ligne 122. Reproduisez la requête GET de l'utilisateur avec opcache.save_comments défini sur 0, puis déterminez si le SDK peut éviter le chemin d'annotation défaillant ou documenter clairement une solution de contournement prise en charge.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
php
Domaine
api
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
28/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.