Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

ReflectionProperty('\Phalcon\Http\Cookie', 'restored') breaks on Phalcon 5.13+ (renamed to isRestored)

オープン
#12 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
68/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
php
領域
testing-qa

調査の方向性

Start in src/Codeception/Lib/Connector/Phalcon5.php at doRequest(), especially the ReflectionProperty usage around line 145. Reproduce through the Phalcon5 _request() path with a non-empty cookies service on Phalcon 5.12 and 5.13+, then verify that cookie synchronization completes without a ReflectionException on both versions.

索引モデルが issue の本文から書いたものです。

説明

Description

Codeception\Lib\Connector\Phalcon5::doRequest() uses reflection to read a protected restored property off Phalcon\Http\Cookie instances when syncing cookies back onto the simulated response:

https://github.com/Codeception/module-phalcon5/blob/2.0.1/src/Codeception/Lib/Connector/Phalcon5.php#L145

$restoredProperty = new ReflectionProperty('\Phalcon\Http\Cookie', 'restored');

Phalcon renamed this property from restored to isRestored starting with Phalcon 5.13 (still named isRestored as of 5.20.3):

https://github.com/phalcon/cphalcon/blob/v5.20.3/phalcon/Http/Cookie.zep#L50

Any functional/acceptance test that dispatches a request through an app where the cookies DI service ends up with at least one entry now fails with:

ReflectionException: Property Phalcon\Http\Cookie::$restored does not exist

Steps to reproduce

  1. Use codeception/module-phalcon5 v2.0.1 against a Phalcon app running Phalcon core >= 5.13 (e.g. via phalcon-shared or any recent ext-phalcon build).
  2. Dispatch any request through the Phalcon5 module's _request() (or a Codeception action built on it) where the app's cookies service has a non-empty cookies array by the time the response is built (e.g. because the session service was started during dispatch).
  3. Observe the ReflectionException.

Expected behavior

The connector should read whichever property name is correct for the installed Phalcon version, or simply use the public API (Phalcon\Http\Cookie doesn't appear to expose isRestored() publicly today - only getValue() triggers restore() internally) rather than reflecting into a specific protected property name.

Environment

  • codeception/module-phalcon5: v2.0.1 (latest on Packagist)
  • Phalcon core: 5.20.3 (via phalcon/phalcon-shared compiled extension)
  • PHP: 8.3

Workaround

We're carrying a local Composer patch (via cweagans/composer-patches) that renames the reflected property from restored to isRestored, which is obviously not version-safe across Phalcon 5.12 vs 5.13+. Happy to open a PR if a version-tolerant approach (e.g. checking which property exists, or avoiding the private-property reflection entirely) would be welcome.

主要言語
PHP
スター
6
フォーク
3
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Codeception/module-phalcon5 のほかの issue

Codeception/module-phalcon5 の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。