1

mamp の php.ini で error_reporting を E_ALL & ~E_STRICT に設定しようとしています。

しかし、これはまったく影響を受けていません。E_NOTICE のような異なる error_reporting を設定して正しいファイルを編集していることを確認し、phpinfo をチェックして同じことを確認しました。

しかし、~E_STRICT だけは起こっていません。

私のcms(concrete5)にアクセスすると、厳密なエラーのリストが表示されます(最初のいくつかを以下に貼り付けます):

Strict Standards: Non-static method Cache::get() should not be called statically in www/concrete/models/package.php on line 78

厳格な基準: 非静的メソッド Cache::key() は、www/concrete/libraries/cache.php の 117 行目で静的に呼び出されるべきではありません

厳格な基準: 非静的メソッド Cache::getLibrary() は、www/concrete/libraries/cache.php の 121 行目で静的に呼び出されるべきではありません

error_reporting を .htaccess および index.php ファイルで E_ALL & ~E_STRICT に設定しようとしました。どれも機能しませんでした。

解決策をお願いします。

4

4 に答える 4

1

Concrete5には、エラーと警告(および私が推測する通知)の表示を抑制する設定があります-ダッシュボード->システムと設定->環境->デバッグ設定。すべてのエラー/警告を非表示にするように設定している可能性があります。これにより、構成ファイルの設定が上書きされます。

エラーを修正するのではなく抑制するという@PeeHaaのコメントについては、Concrete5 CMS自体に通知を生成する大量のphpがあるため、それほど単純ではありません。これは、特定のものが非推奨になる前に何年も前に書かれたコードによるものだと思います。たとえば、関数が「静的」として宣言されていなくても、静的に呼び出されるシステム関数がたくさんあります。これは、PHP の古いバージョンでは問題なく実行できましたが、現在は嫌われています。残念ながら、これについてあなたができることは何もないと思います。

残念ながら、これは Concrete5 を使用する際のトレードオフの 1 つです。これは最高の CMS ですが、より高度な開発者にとって常に最も洗練されたプラットフォームであるとは限りません。

于 2012-07-12T20:05:20.747 に答える
0

Concrete5 にこれらのエラーを無視させてページ (ダッシュボードを含む) をロードさせるのは非常に難しい作業です。PHP 5.4.X と互換性のあるバージョンがリリースされるまで、PHP を最新の 5.3.X にダウングレードすることをお勧めします。

于 2012-07-24T03:01:34.843 に答える
0

MAMP が php.ini の設定 (E_STRICT など) を無視しているように見える場合は、正しいファイルを編集していない可能性があります。phpinfo(); でロードされている設定ファイルを確認できます。

次の行を探します: Loaded Configuration File: /Applications/MAMP/bin/php/php5.4.4/conf/php.ini

私のマシンの MAMP/bin にあることに注意してください。デフォルトの MAMP インストールでは、テンプレート構成ファイルをライブ構成ファイルと間違えやすいです。

E_STRICT は、正しい場所に設定されている場合、MAMP によって無視されません。

于 2013-02-27T16:24:34.653 に答える
0

imacでmampからxamppに移動することでこれを解決しました。

mampの問題:mamp proを持っていない限り、php 5.3を使用することはできません

私が使用した解決策:php 5.3でxamppに移行し、すべてがスムーズに機能しました。

于 2012-08-23T08:28:52.140 に答える