升级到PHP 7.0.8后使用Smarty发出警告

时间:2016-07-09 10:25:58

标签: php smarty

将Plesk和PHP升级到7.0.8版后,我在使用Smarty时收到以下警告。

  

PHP已弃用:与其类同名的方法将不会是PHP未来版本中的构造函数; Smarty_Compiler在第35行的/var/www/vhosts/mydomain.com/httpdocs/Smarty/Smarty_Compiler.class.php中有一个弃用的构造函数

警告中提到的文件:

/*
 * @link http://smarty.php.net/
 * @author Monte Ohrt <monte at ohrt dot com>
 * @author Andrei Zmievski <andrei@php.net>
 * @version 2.6.20
 * @copyright 2001-2005 New Digital Group, Inc.
 * @package Smarty
 */

/* $Id: Smarty_Compiler.class.php 2773 2008-08-12 18:17:51Z Uwe.Tews $ */

/**
 * Template compiling class
 * @package Smarty
 */
class Smarty_Compiler extends Smarty {

我需要帮助才能理解问题以及如何解决问题,是否与Smarty相关或者我可以修复?

1 个答案:

答案 0 :(得分:3)

PHP 7.0.x起,PHP 4 style constructors (methods that have the same name as the class they are defined in)已弃用,将来会被删除。如果PHP 4构造函数是类中定义的唯一构造函数,PHP 7将发出E_DEPRECATED。实现__construct()方法的类不受影响。

所以,有两个解决方案:

  1. 您可以在代码中添加以下内容来关闭已弃用的警告消息: error_reporting(E_ALL ^ E_DEPRECATED);

  2. 修改Smarty_Compiler.class.php文件并将方法名称Smarty_Compiler()更改为__construct()