问题描述
我如何修复代码片段上的错误,我找不到关于如何修复它的解释,如果有人像我一样遇到这样的问题,我等待你的帮助
class JSMin {
const ORD_LF = 10;
const ORD_SPACE = 32;
const ACTION_KEEP_A = 1;
const ACTION_DELETE_A = 2;
const ACTION_DELETE_A_B = 3;
protected $a = '';
protected $b = '';
protected $input = '';
protected $inputIndex = 0;
protected $inputLength = 0;
protected $lookAhead = null;
protected $output = '';
// -- Public Static Methods --------------------------------------------------
/**
* Minify Javascript
*
* @uses __construct()
* @uses min()
* @param string $js Javascript to be minified
* @return string
*/
public static function minify($js) {
$jsmin = new JSMin($js);
return $jsmin->min();
}
解决方法
这里有几个注意事项:
- 我不使用开放式购物车,所以我不知道你如何称呼这个类
- 您似乎正在尝试使用存档的 git 存储库
rgrove/jsmin-php
,位于此处 https://github.com/rgrove/jsmin-php
作者已将其存档并敦促不要再使用它,并建议使用其他更好的解决方案。
可能性一
但是,如果您打算继续使用它,您可以使用如下命名空间修改它——假设 opencart 确实已经在其本机代码中声明了它:
<?php
namespace DeprecatedDontUse;
class JSMin
{
const ORD_LF = 10;
const ORD_SPACE = 32;
const ACTION_KEEP_A = 1;
const ACTION_DELETE_A = 2;
const ACTION_DELETE_A_B = 3;
protected $a = '';
protected $b = '';
protected $input = '';
protected $inputIndex = 0;
protected $inputLength = 0;
protected $lookAhead = null;
protected $output = '';
....etc
然后当你去使用它时,你会这样做:
<?php echo \DeprecatedDontUse\JSMin::minify($JSstring) ?>
这应该解决重复的类命名问题。
可能性二
如果您没有以某种方式将此类自动加载到您的应用程序中,而是手动将其包含在文件中,那么您将保持脚本原样(无命名空间),而不是使用 require('/path/to/jsmin.php');
或 {{1 }}(无论您使用哪个),您将使用它们的 include('/path/to/jsmin.php');
版本,因此 once
或 include_once('/path/to/jsmin.php');
。
这是为了防止 opencart 在整个执行过程中多次加载您要添加的任何脚本。它只会加载一次类,不会给你这个错误。