PHP5.3とCakePHP 1.2の互換性の問題
最近Archlinuxをアップグレードし、PHPを5.3にアップグレードし、2つの問題に遭遇しました.
1.ArchではPHPがパッケージ化されており、PHPのAapcheモジュールはphp-apacheモジュールとして独立してパッケージ化されているため、phpパッケージをインストールした後にphp-apacheパッケージをインストールする(ApacheをWebサーバとして使用する場合^^).
2.またCakephp 1である.2 PHP 5.3の互換性に問題があります.PHP 5を取り付ける.3以降、Cakephpアプリケーションを実行中にエラーが発生しました.
一つはstrtotime()エラーを提示し、最終的にphpを修正することである.义齿timezoneが解決し、次のように変更されました.
タイムゾーンのリストはここで表示できます.http://us.php.net/manual/pt_BR/timezones.php
また、次のようなエラーを報告します.
Deprecated: Assigning the return value of new by reference is deprecated…
これには2つの解決方法がある.1つはCakephpを最新のCakephp 1にアップグレードすることである.3 devバージョンですが、現在1.3バージョンは安定したバージョンではありません.1.2バージョンを引き続き使用するには、次の必要があります.
1.cake実行ライブラリの下のcake/console/cakeを変更します.phpファイル.
141行の
変更後:
2.cake/libs/configureを修正する.php
292行の
次のように変更します.
1.ArchではPHPがパッケージ化されており、PHPのAapcheモジュールはphp-apacheモジュールとして独立してパッケージ化されているため、phpパッケージをインストールした後にphp-apacheパッケージをインストールする(ApacheをWebサーバとして使用する場合^^).
2.またCakephp 1である.2 PHP 5.3の互換性に問題があります.PHP 5を取り付ける.3以降、Cakephpアプリケーションを実行中にエラーが発生しました.
一つはstrtotime()エラーを提示し、最終的にphpを修正することである.义齿timezoneが解決し、次のように変更されました.
date.timezone = Asia/Chongqing
タイムゾーンのリストはここで表示できます.http://us.php.net/manual/pt_BR/timezones.php
また、次のようなエラーを報告します.
Deprecated: Assigning the return value of new by reference is deprecated…
これには2つの解決方法がある.1つはCakephpを最新のCakephp 1にアップグレードすることである.3 devバージョンですが、現在1.3バージョンは安定したバージョンではありません.1.2バージョンを引き続き使用するには、次の必要があります.
1.cake実行ライブラリの下のcake/console/cakeを変更します.phpファイル.
141行の
function __initConstants() {
if (function_exists('ini_set')) {
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);
変更後:
function __initConstants() {
if (function_exists('ini_set')) {
ini_set('display_errors', '1');
if (defined('E_DEPRECATED')) {
ini_set('error_reporting', E_ALL & ~E_DEPRECATED);
} else {
ini_set('error_reporting', E_ALL);
}
2.cake/libs/configureを修正する.php
292行の
if (isset($config['debug'])) {
if ($_this->debug) {
error_reporting(E_ALL);
次のように変更します.
if (isset($config['debug'])) {
if ($_this->debug) {
if (defined('E_DEPRECATED')) {
ini_set('error_reporting', E_ALL & ~E_DEPRECATED);
} else {
ini_set('error_reporting', E_ALL);
}