CakePHP2 ‘string’ is deprecated.intelephense(1007)

つい最近までPHPのプログラムを、素のVim(lspとか使わない)で書いてたんですが、使ってるPHPのバージョンも7.4になったので、ステップ実行等いろいろ利点のある環境にしてみようと思い、VSCode上でPHPのプログラムを書くようになりました。

VSCodeで PHPの開発環境を整えると、間違ったところとかコメントで記述している型と違う使い型をしているところも教えてくれるので、プログラムの品質向上に貢献しているのがいい感じです。

‘string’ is deprecated.intelephense(1007)

PHP7.4 を使ってるので、メソッドの引数や戻り値だけでなく、プロパティにも型を付けるようにしてるんですが、string型を定義すると、'string' is deprecated.intelephense(1007) という警告が表示されて、頭を悩ませていました。

ググると以下を見付けた。

  • lib/Cake/Utility/String.php
/**
 * String handling methods.
 *                                                                                                                                               
 * @package Cake.Utility                                                                                                                         
 * @deprecated 3.0.0 Deprecated since version 2.7, use CakeText class instead.                                                                   
 */                                                                                                                                              
class String extends CakeText {                                                                                                                  
}

フレームワークに、String というクラスが存在していて、既に@deprecated が指定されているんだけど、プリミティブな小文字始まりの string型の定義箇所でも、intelephense が警告を表示していたというオチでした。

この String クラスの @deprecated コメントを無効化したら、頭を悩ませていた警告が表示されなくなりました。

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.