将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相关或者我可以修复?
答案 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()方法的类不受影响。
所以,有两个解决方案:
您可以在代码中添加以下内容来关闭已弃用的警告消息:
error_reporting(E_ALL ^ E_DEPRECATED);
修改Smarty_Compiler.class.php
文件并将方法名称Smarty_Compiler()
更改为__construct()