public ClassEntity fetchClass(String name, String nameL, boolean autoLoad) {
        if (!name.isEmpty() && name.charAt(0) == '\\') {
            name = name.substring(1);
            nameL = nameL.substring(1);
        }

        ClassEntity entity = classMap.get(nameL);

        if (entity != null) {
            return entity;
        }

        synchronized (classMap) {
            entity = classMap.get(nameL); // try retry!

            if (entity == null) {
                entity = scope.fetchUserClass(name, nameL, autoLoad);

                if (entity != null) {
                    try {
                        entity.initEnvironment(this);
                    } catch (Throwable throwable) {
                        // nop.
                        if (throwable instanceof BaseBaseException) {
                            error(ErrorType.E_CORE_ERROR, "Failed to init environment for class " + name);
                        } else {
                            error(ErrorType.E_CORE_ERROR, "Failed to init environment for class " + name + ": " + throwable.getMessage());
                        }
                    }
                    classMap.put(entity.getLowerName(), entity);
                    return entity;
                }

                ClassEntity classEntity = autoLoad ? autoloadCall(name, nameL) : null;

                return classEntity;
            } else {
                return entity;
            }
        }
    }
Remove all method which does not destruct

@throws Throwable
jphp-runtime/src/php/runtime/env/Environment.java