public static boolean extension_loaded(Environment env, String name){ return env.scope.getExtension(name) != null; }
public static Memory get_defined_constants(Environment env, boolean capitalize){ Set<String> exists = new HashSet<String>(); ArrayMemory result = new ArrayMemory(); for(String ext : env.scope.getExtensions()){ Extension extension = env.scope.getExtension(ext); ArrayMemory item = result; if (capitalize) item = (ArrayMemory) result.refOfIndex(ext).assign(new ArrayMemory()); for(CompileConstant constant : extension.getConstants().values()){ item.put(constant.name, constant.value); exists.add(constant.name); } } ArrayMemory item = result; if (capitalize) item = (ArrayMemory) result.refOfIndex("user").assign(new ArrayMemory()); for(ConstantEntity constant : env.scope.getConstants()){ if (!exists.contains(constant.getName())) item.put(constant.getName(), constant.getValue()); } for(ConstantEntity constant : env.getConstants().values()){ if (!exists.contains(constant.getName())) item.put(constant.getName(), constant.getValue()); } return result; }
public static Memory get_extension_funcs(Environment env, String name){ Extension ext = env.scope.getExtension(name); if (ext == null) { return Memory.FALSE; } return ArrayMemory.ofStringCollection(ext.getFunctions().keySet()); }
public static Memory phpversion(Environment env, String extension){ if (extension == null || extension.isEmpty()) return new StringMemory(Information.LIKE_PHP_VERSION); Extension ext = env.scope.getExtension(extension); if (ext == null) return Memory.NULL; else return new StringMemory(ext.getVersion()); }
@Signature(@Arg("name")) public Memory __construct(Environment env, Memory... args){ String name = args[0].toString(); extension = env.scope.getExtension(name); if (extension == null){ exception(env, "Extension %s does not exist", name); } setExtension(extension); return Memory.NULL; }
@Signature(@Arg("extensionClass")) public Memory registerExtension(Environment env, Memory... args) { Extension extension = this.environment.scope.getExtension(args[0].toString()); if (extension != null) { env.exception("Extension '%s' already registered", extension.getName()); } this.environment.scope.registerExtension(args[0].toString()); return Memory.NULL; }