升级非常旧的CakePHP站点

升级非常旧的CakePHP站点,php,cakephp,composer-php,Php,Cakephp,Composer Php,由于旧服务器崩溃,我不得不将客户端的网站迁移到新服务器上 其中一个站点基于一个非常旧的CakePHP版本。新服务器使用PHP7。CakePhp站点已经死在水中了,它使用了很多已经被淘汰的PHP特性(例如使用&作为参考标记) 源代码标签似乎表明2008年左右。这里面绝对没有和作曲家有关的东西 我对CakePHP的经验很少。事实上,我不确定特定于站点的代码和数据会在哪里 如何将此站点更新为现代CakePHP站点或至少是在PHP7下工作的站点? 除了在框架中的几乎每个文件中逐行编辑之外,我正在考虑的一

由于旧服务器崩溃,我不得不将客户端的网站迁移到新服务器上

其中一个站点基于一个非常旧的CakePHP版本。新服务器使用PHP7。CakePhp站点已经死在水中了,它使用了很多已经被淘汰的PHP特性(例如使用&作为参考标记)

源代码标签似乎表明2008年左右。这里面绝对没有和作曲家有关的东西

我对CakePHP的经验很少。事实上,我不确定特定于站点的代码和数据会在哪里

如何将此站点更新为现代CakePHP站点或至少是在PHP7下工作的站点?

除了在框架中的几乎每个文件中逐行编辑之外,我正在考虑的一种方法是创建一个全新的CakePHP站点,并将特定于站点的文件移到该站点。但是,那么,我想知道在哪里或如何找到特定于站点的文件

如果有帮助,如果app\webroot\index.php的文件头:

/* SVN FILE: $Id: index.php 7296 2008-06-27 09:09:03Z gwoo $ */
/**
 * Short description for file.
 *
 * Long description for file
 *
 * PHP versions 4 and 5
 *
 * CakePHP(tm) :  Rapid Development Framework <http://www.cakephp.org/>
 * Copyright 2005-2008, Cake Software Foundation, Inc.
 *                              1785 E. Sahara Avenue, Suite 490-204
 *                              Las Vegas, Nevada 89104
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @filesource
 * @copyright       Copyright 2005-2008, Cake Software Foundation, Inc.
 * @link                http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project
 * @package         cake
 * @subpackage      cake.app.webroot
 * @since           CakePHP(tm) v 0.2.9
 * @version         $Revision: 7296 $
 * @modifiedby      $LastChangedBy: gwoo $
 * @lastmodified    $Date: 2008-06-27 02:09:03 -0700 (Fri, 27 Jun 2008) $
 * @license         http://www.opensource.org/licenses/mit-license.php The MIT License
 */
/*SVN文件:$Id:index.php 7296 2008-06-27 09:09:03Z gwoo$*/
/**
*文件的简短描述。
*
*文件的长描述
*
*PHP版本4和5
*
*CakePHP(tm):快速开发框架
*版权所有2005年至2008年,蛋糕软件基金会,Inc.
*撒哈拉大道东1785号,490-204室
*内华达州拉斯维加斯89104
*
*根据麻省理工学院许可证获得许可
*文件的重新分发必须保留上述版权声明。
*
*@filesource
*2005版权所有,蛋糕软件基金会。
*@linkhttp://www.cakefoundation.org/projects/info/cakephp CakePHP(tm)项目
*@包装蛋糕
*@subpackage cake.app.webroot
*@CakePHP(tm)v 0.2.9
*@version$Revision:7296$
*@modifiedby$LastChangedBy:gwoo$
*@lastmodified$日期:2008-06-27 02:09:03-0700(2008年6月27日星期五)$
*@许可证http://www.opensource.org/licenses/mit-license.php 麻省理工学院执照
*/

作为尝试重新编写框架代码的替代方法,您可以从服务器的CGI-BIN运行旧版本的PHP(),只用于此站点

请注意,存在一些安全隐患:


这可以在您寻求适当操作的同时使站点运行,即完全重建站点,或获得所需密集工作的适当补偿。

CakePHP与大多数框架一样,将其标准文件与站点特定代码分开。花了我一点时间,但是大多数特定于站点的代码都会放在

\app
目录。核心框架代码将驻留在其他目录中

因此,像这样更新站点的过程是:

  • 使用PHP composer创建新站点
  • 根据需要进行配置
  • 将文件从旧的\app目录复制到新的\app目录。不要只是盲目地复制,而是看看它是否安全,是否没有冲突。如果有冲突,根据需要解决
  • 测试,修理,测试

  • 在我的例子中,我仍然需要对\app目录树中的许多代码进行“现代化”。

    您可以通过一个文件一个文件地浏览并重写所需的内容来更新它。没有魔杖可以帮你。最理想的方法是进行单元测试,以确认重写工作符合预期。这是我开始使用并仍在使用的方法。但就像我在写整个框架一样。似乎每个文件/如果有更简单的方法,我完全赞成。我建议采取该网站的目标,并使用CakePHP 3重写它。更新旧版本的CakePHP毫无意义。这确实是一个临时解决方案。但这可能是最后的选择,因为服务器上还有其他站点,我宁愿避免安全问题。看起来您应该可以在此处找到cake版本:/path/to/cake/lib/cake/version.txt然后您可以使用此处的文档,稍微自动化一点过程:谢谢您的努力。提供的链接在我的情况下不起作用,因为这个版本对于控制台方法来说太旧了。我已经让这个网站开始运作了。