-
Notifications
You must be signed in to change notification settings - Fork 654
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
Eccube/feature/fix php74 deprecated type declarations #6287
base: 4.3
Are you sure you want to change the base?
Eccube/feature/fix php74 deprecated type declarations #6287
Conversation
…:offsetSet() , ArrayAccess::offsetUnset() , ArrayAccess::offsetUnset() メソッドの戻り値の型宣言 追加
…ctionNode::getSql() , Doctrine\ORM\Query\AST\Functions\FunctionNode::parse()
…dFilterConstraint()
…ing\Driver\MappingDriver::getAllClassNames()
…nfigure() , Symfony\Component\Console\Command\Command::execute() , Symfony\Component\Console\Command\Command::initialize() , Symfony\Component\Console\Command\Command::interact()
…\DependencyInjection\Extension\Extension::getConfiguration()
…ibedEvents() の型宣言の追加
…mponent\Form\DataTransformerInterface::reverseTransform() , Symfony\Component\Form\DataTransformerInterface::transform()
…ion\SessionInterface::clear() , Symfony\Component\HttpFoundation\Session\SessionInterface::registerBag() , Symfony\Component\HttpFoundation\Session\SessionInterface::replace() , Symfony\Component\HttpFoundation\Session\SessionInterface::save() , Symfony\Component\HttpFoundation\Session\SessionInterface::set() , Symfony\Component\HttpFoundation\Session\SessionInterface::setId() , Symfony\Component\HttpFoundation\Session\SessionInterface::setName()
…tor\DataCollector::reset() , Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface::collect() , Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface::getName()
…ity\Core\Authorization\Voter\VoterInterface::vote()
…ent\Security\Core\User\UserInterface::eraseCredentials()
…ValidatorInterface::validate()
…Filters() , Twig\Extension\ExtensionInterface::getFunctions() , Twig\Extension\ExtensionInterface::getNodeVisitors()
…mplate::getSourceContext() , Twig\Template::getTemplateName()
EC-CUBE4.2互換のプラグインや、Customize クラスで、既存のクラスを継承している場合、互換性が壊れてしまうため、マイナーバージョンアップでの取り込みは難しそうですね😰 |
… , Symfony\Component\Form\AbstractType::finishView() , Symfony\Component\Form\AbstractType::getParent() , Symfony\Component\Form\AbstractTypeExtension::buildView()
@nanasess
簡単ではありますが、下記検証をしてみたところ、特に問題なく見えますが
パターン1)既存のEC-CUBE4.3に、EC-CUBE4.2互換のプラグインで既存のクラスを継承している場合▼EC-CUBE4.2 互換を想定したプラグイン作成
▼EC-CUBE4.2 互換を想定したプラグインで、管理画面>商品登録の入力フォーム拡張
▼入力エラー結果 |
EC-CUBE4.2のシステム要件としては、PHP7.4〜8.1 型宣言については、関数のパラメータや戻り値、 クラスのプロパティ (PHP 7.4.0 以降)と記載があったのですが https://www.php.net/manual/ja/language.types.declarations.php |
…turn mixed but return statement is missing.
例えば、 EntryType をオーバーライドした CustomizeEntryType があるとします <?php
namespace Customize\Form\Type\Front;
use Eccube\Common\EccubeConfig;
use Eccube\Form\Type\Front\EntryType;
use Symfony\Component\Form\FormBuilderInterface;
class CustomizeEntryType extends EntryType
{
/**
* @var EccubeConfig
*/
protected $eccubeConfig;
/**
* EntryType constructor.
*
* @param EccubeConfig $eccubeConfig
*/
public function __construct(EccubeConfig $eccubeConfig)
{
$this->eccubeConfig = $eccubeConfig;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
}
} 本PRを適用すると、以下のようなエラーになってしまいます。
上記が問題ないのは、 AbstractTypeExtension を継承しているためだと思われます。 |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## 4.3 #6287 +/- ##
==========================================
- Coverage 82.69% 78.23% -4.46%
==========================================
Files 480 480
Lines 26465 26527 +62
==========================================
- Hits 21885 20754 -1131
- Misses 4580 5773 +1193
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
コマンド実行時、Webアプリケーションからのアクセス時に下記エラーを補足したため、修正しました。
Eccube\
からはじまるFQDN概要(Overview・Refs Issue)
PHP74_型宣言の追加.txt
方針(Policy)
EC-CUBE4.3 のシステム要件には、PHP8.1〜8.3 とのことですので、問題ない認識です。
https://www.php.net/manual/ja/language.types.declarations.php
より引用
null
も含まれるということで?mixed
はつけていません。実装に関する補足(Appendix)
テスト(Test)
相談(Discussion)
マイナーバージョン互換性保持のための制限事項チェックリスト
レビュワー確認項目