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が解決し、次のように変更されました.
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);
        }