首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误:无法声明类JSMin,因为该名称已在opencart 3.0.3.7中使用

致命错误:无法声明类JSMin,因为该名称已在opencart 3.0.3.7中使用
EN

Stack Overflow用户
提问于 2021-07-14 21:27:19
回答 1查看 53关注 0票数 0

我怎么才能修复代码中的错误,我找不到关于如何修复它的解释,ı如果像我这样的人遇到了这样的问题,ı等待你的帮助

代码语言:javascript
复制
 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();
  }
EN

回答 1

Stack Overflow用户

发布于 2021-07-15 14:42:15

这里有几个注意事项:

  1. 我不使用开放式购物车,所以我不知道您是如何调用这个类的
  2. 它看起来像是您正在尝试使用位于此处https://github.com/rgrove/jsmin-php

的存档git

  • rgrove/jsmin-php

作者已经将其存档,并敦促不要再使用它,并建议使用其他更好的解决方案。

可能性ONE

然而,如果你打算继续使用它,你可以用如下的命名空间来修改它-假设opencart真的已经在它的本机代码中声明了它:

代码语言:javascript
复制
<?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

然后,当你使用它时,你会这样做:

代码语言:javascript
复制
<?php echo \DeprecatedDontUse\JSMin::minify($JSstring) ?>

这应该会解决重复的类命名问题。

可能性两个

如果您没有以某种方式将这个类自动加载到您的应用程序中,而是手动将其包含在一个文件中,那么您只需将脚本保持原样(没有名称空间),而不是使用require('/path/to/jsmin.php');include('/path/to/jsmin.php'); (无论您使用哪个),您将使用这些类的once版本,因此可以使用include_once('/path/to/jsmin.php');require_once('/path/to/jsmin.php');

这是为了防止opencart在整个执行过程中多次加载您要添加的脚本。它只会加载一次类,并且不会给你这个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68379022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档