PHP7 への移行時に ECshop で発生する互換性の問題

WBOY
リリース: 2016-06-20 12:38:33
オリジナル
1039 人が閲覧しました

PHP7 に ECShop V2.7.3 をインストールするとエラーが発生しました。

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; ECS has a deprecated constructor in /usr/local/nginx/html/ecshop/upload/includes/cls_ecshop.php on line 25
ログイン後にコピー

このエラーの理由は、PHP7 がクラスと同じ名前のコンストラクター メソッドをサポートしなくなったためです。コンストラクター メソッドでは、一律に __construct() が使用されます。例:以下の書き方 PHP7 の場合 このエラーが報告されます。

<?phpclass foo {    function foo() {        echo 'I am the constructor';    }}?>
ログイン後にコピー

ecshop に戻って、cls_ecshop.php ファイルの 25 行目を見てみましょう。以下のように

予想どおり、クラスと同じ名前のコンストラクター メソッドが存在します。ECS のコンストラクター メソッドを __construct、

<🎜 に変更しました。 >ecshop のインストールに戻る ホームページを更新して、エラーがないことを確認します。

「次へ」をクリックしてエラーを報告します

Deprecated: Non-static method cls_image::gd_version() should not be called statically in /usr/local/nginx/html/ecshop/upload/install/includes/lib_installer.php on line 31
ログイン後にコピー

このエラーの原因は、非静的メソッドの静的呼び出しです。たとえば、次のようになります。次のコードは、このエラーを報告します。

<?phpclass foo {    function bar() {        echo 'I am not static!';    }}foo::bar();?>
ログイン後にコピー
また、メソッドを静的メソッドに変更するか、呼び出しを非静的呼び出しに変更するなど、メソッドを変更することも非常に簡単です。

エラーを報告したファイル lib_installer.php 内の 31 行のコードを見てみましょう

cls_image クラス ファイルの gd_version() メソッドもあります。 static キーワードが実際に使用されていないことがわかります

最初の変更方法は、メソッドを静的メソッドに変更し、キーワード public static をメソッドの前に追加することです

2 番目の変更方法は、非静的呼び出しを使用し、lib_installer.php の 31 行のコードを変更します。

どちらの方法でも問題を解決できます。

ecshop のインストール手順の 2 ページ目に戻ると、エラー メッセージが消えています。

次の悲劇は、PHP7 がオリジナルの mysql API をサポートしていないことです。PHP7 はより優れた Mysqli API と pdo_mysql API をサポートしています。

そのため、ecshop は mysql を動作させるための API を変更しません。 PHP7では。

OneAPM for PHP は、すべての PHP アプリケーションに深く入り込み、アプリケーションのパフォーマンス管理を完了し、アプリケーションのパフォーマンスの管理と監視を完了できます。コードレベルのパフォーマンスの問題、パフォーマンスのボトルネックの迅速な特定と追跡、実際のユーザー エクスペリエンスの監視、サーバーの監視、およびエンドツーエンドのアプリケーション パフォーマンス管理。さらに技術的な記事を読むには、OneAPM 公式技術ブログにアクセスしてください。

この記事は OneAPM 公式ブログからの転載です

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート