#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
-#include "Zend/zend_interfaces.h"
-#include "Zend/zend_exceptions.h"
-#include "../spl/spl_exceptions.h"
#include <enchant.h>
#include "php_enchant.h"
#include "enchant_arginfo.h"
-typedef struct _broker_struct {
- EnchantBroker *pbroker;
- int nb_dict;
- zend_object std;
-} enchant_broker;
-
-typedef struct _dict_struct {
- EnchantDict *pdict;
- zval zbroker;
- zend_object std;
-} enchant_dict;
-
-zend_class_entry *enchant_broker_ce;
-static zend_object_handlers enchant_broker_handlers;
-
-static inline enchant_broker *enchant_broker_from_obj(zend_object *obj) {
- return (enchant_broker *)((char *)(obj) - XtOffsetOf(enchant_broker, std));
-}
-
-#define Z_ENCHANT_BROKER_P(zv) enchant_broker_from_obj(Z_OBJ_P(zv))
-
-static zend_object *enchant_broker_create_object(zend_class_entry *class_type) {
- enchant_broker *intern = zend_object_alloc(sizeof(enchant_broker), class_type);
+typedef EnchantBroker * EnchantBrokerPtr;
+typedef struct _broker_struct enchant_broker;
+typedef struct _dict_struct enchant_dict;
- zend_object_std_init(&intern->std, class_type);
- object_properties_init(&intern->std, class_type);
- intern->std.handlers = &enchant_broker_handlers;
+typedef enchant_broker * enchant_brokerPtr;
+typedef enchant_dict * enchant_dictPtr;
- return &intern->std;
-}
-
-zend_class_entry *enchant_dict_ce;
-static zend_object_handlers enchant_dict_handlers;
-
-static inline enchant_dict *enchant_dict_from_obj(zend_object *obj) {
- return (enchant_dict *)((char *)(obj) - XtOffsetOf(enchant_dict, std));
-}
+typedef struct _broker_struct {
+ EnchantBroker *pbroker;
+ enchant_dict **dict;
+ unsigned int dictcnt;
+ zend_resource *rsrc;
+} _enchant_broker;
-#define Z_ENCHANT_DICT_P(zv) enchant_dict_from_obj(Z_OBJ_P(zv))
+typedef struct _dict_struct {
+ unsigned int id;
+ EnchantDict *pdict;
+ enchant_broker *pbroker;
+ zend_resource *rsrc;
+} _enchant_dict;
-static zend_object *enchant_dict_create_object(zend_class_entry *class_type) {
- enchant_dict *intern = zend_object_alloc(sizeof(enchant_dict), class_type);
- zend_object_std_init(&intern->std, class_type);
- object_properties_init(&intern->std, class_type);
- intern->std.handlers = &enchant_dict_handlers;
+/* True global resources - no need for thread safety here */
+static int le_enchant_broker;
+static int le_enchant_dict;
- return &intern->std;
-}
+/* If you declare any globals in php_enchant.h uncomment this:*/
+/*ZEND_DECLARE_MODULE_GLOBALS(enchant)*/
#define PHP_ENCHANT_MYSPELL 1
#define PHP_ENCHANT_ISPELL 2
}
/* }}} */
-static void php_enchant_broker_free(zend_object *object) /* {{{ */
-{
- enchant_broker *broker = enchant_broker_from_obj(object);
-
- if (broker->pbroker) { /* may have been freed by enchant_broker_free */
- enchant_broker_free(broker->pbroker);
- broker->pbroker = NULL;
+static void php_enchant_broker_free(zend_resource *rsrc) /* {{{ */
+{
+ if (rsrc->ptr) {
+ enchant_broker *broker = (enchant_broker *)rsrc->ptr;
+ if (broker) {
+ if (broker->pbroker) {
+ if (broker->dictcnt && broker->dict) {
+ if (broker->dict) {
+ int total;
+ total = broker->dictcnt-1;
+ do {
+ if (broker->dict[total]) {
+ enchant_dict *pdict = broker->dict[total];
+ broker->dict[total] = NULL;
+ zend_list_free(pdict->rsrc);
+ efree(pdict);
+ }
+ total--;
+ } while (total>=0);
+ }
+ efree(broker->dict);
+ broker->dict = NULL;
+ }
+ enchant_broker_free(broker->pbroker);
+ }
+ efree(broker);
+ }
}
- zend_object_std_dtor(object);
}
/* }}} */
-static void php_enchant_dict_free(zend_object *object) /* {{{ */
+static void php_enchant_dict_free(zend_resource *rsrc) /* {{{ */
{
- enchant_dict *dict = enchant_dict_from_obj(object);
+ if (rsrc->ptr) {
+ enchant_dict *pdict = (enchant_dict *)rsrc->ptr;
+ if (pdict) {
+ enchant_broker *pbroker = pdict->pbroker;
- if (dict->pdict) { /* may have been freed by enchant_broker_free_dict */
- enchant_broker *broker = Z_ENCHANT_BROKER_P(&dict->zbroker);
+ if (pdict->pdict && pbroker) {
+ enchant_broker_free_dict(pbroker->pbroker, pdict->pdict);
+ }
- if (broker && broker->pbroker) {
- enchant_broker_free_dict(broker->pbroker, dict->pdict);
- broker->nb_dict--;
- zval_ptr_dtor(&dict->zbroker);
+ pbroker->dict[pdict->id] = NULL;
+ efree(pdict);
+ zend_list_delete(pbroker->rsrc);
}
- dict->pdict = NULL;
}
- zend_object_std_dtor(object);
}
/* }}} */
*/
PHP_MINIT_FUNCTION(enchant)
{
- zend_class_entry bce, dce;
-
- INIT_CLASS_ENTRY(bce, "EnchantBroker", class_EnchantBroker_methods);
- enchant_broker_ce = zend_register_internal_class(&bce);
- enchant_broker_ce->ce_flags |= ZEND_ACC_FINAL;
- enchant_broker_ce->create_object = enchant_broker_create_object;
- enchant_broker_ce->serialize = zend_class_serialize_deny;
- enchant_broker_ce->unserialize = zend_class_unserialize_deny;
-
- memcpy(&enchant_broker_handlers, &std_object_handlers, sizeof(zend_object_handlers));
- enchant_broker_handlers.offset = XtOffsetOf(enchant_broker, std);
- enchant_broker_handlers.free_obj = php_enchant_broker_free;
- enchant_broker_handlers.clone_obj = NULL;
-
- INIT_CLASS_ENTRY(dce, "EnchantDict", class_EnchantDict_methods);
- enchant_dict_ce = zend_register_internal_class(&dce);
- enchant_dict_ce->ce_flags |= ZEND_ACC_FINAL;
- enchant_dict_ce->create_object = enchant_dict_create_object;
- enchant_dict_ce->serialize = zend_class_serialize_deny;
- enchant_dict_ce->unserialize = zend_class_unserialize_deny;
-
- memcpy(&enchant_dict_handlers, &std_object_handlers, sizeof(zend_object_handlers));
- enchant_dict_handlers.offset = XtOffsetOf(enchant_dict, std);
- enchant_dict_handlers.free_obj = php_enchant_dict_free;
- enchant_dict_handlers.clone_obj = NULL;
-
- REGISTER_LONG_CONSTANT("ENCHANT_MYSPELL", PHP_ENCHANT_MYSPELL, CONST_CS | CONST_PERSISTENT | CONST_DEPRECATED);
- REGISTER_LONG_CONSTANT("ENCHANT_ISPELL", PHP_ENCHANT_ISPELL, CONST_CS | CONST_PERSISTENT | CONST_DEPRECATED);
+ le_enchant_broker = zend_register_list_destructors_ex(php_enchant_broker_free, NULL, "enchant_broker", module_number);
+ le_enchant_dict = zend_register_list_destructors_ex(php_enchant_dict_free, NULL, "enchant_dict", module_number);
+ REGISTER_LONG_CONSTANT("ENCHANT_MYSPELL", PHP_ENCHANT_MYSPELL, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("ENCHANT_ISPELL", PHP_ENCHANT_ISPELL, CONST_CS | CONST_PERSISTENT);
#ifdef HAVE_ENCHANT_GET_VERSION
REGISTER_STRING_CONSTANT("LIBENCHANT_VERSION", enchant_get_version(), CONST_CS | CONST_PERSISTENT);
#endif
/* }}} */
#define PHP_ENCHANT_GET_BROKER \
- pbroker = Z_ENCHANT_BROKER_P(broker); \
- if (!pbroker->pbroker) { \
- zend_value_error("Invalid or uninitialized EnchantBroker object"); \
- RETURN_THROWS(); \
+ pbroker = (enchant_broker *)zend_fetch_resource(Z_RES_P(broker), "enchant_broker", le_enchant_broker); \
+ if (!pbroker || !pbroker->pbroker) { \
+ php_error_docref(NULL, E_WARNING, "Resource broker invalid"); \
+ RETURN_FALSE; \
}
#define PHP_ENCHANT_GET_DICT \
- pdict = Z_ENCHANT_DICT_P(dict); \
- if (!pdict->pdict) { \
- zend_value_error("Invalid or uninitialized EnchantDict object"); \
- RETURN_THROWS(); \
+ pdict = (enchant_dict *)zend_fetch_resource(Z_RES_P(dict), "enchant_dict", le_enchant_dict); \
+ if (!pdict || !pdict->pdict) { \
+ php_error_docref(NULL, E_WARNING, "Invalid dictionary resource."); \
+ RETURN_FALSE; \
}
/* {{{ proto resource enchant_broker_init()
{
enchant_broker *broker;
EnchantBroker *pbroker;
- zval *this = getThis();
if (zend_parse_parameters_none() == FAILURE) {
RETURN_THROWS();
}
pbroker = enchant_broker_init();
+
if (pbroker) {
- if (this) {
- broker = Z_ENCHANT_BROKER_P(this);
- } else {
- object_init_ex(return_value, enchant_broker_ce);
- broker = Z_ENCHANT_BROKER_P(return_value);
- }
+ broker = (enchant_broker *) emalloc(sizeof(enchant_broker));
broker->pbroker = pbroker;
- broker->nb_dict = 0;
- } else if (this) {
- zend_throw_exception(spl_ce_RuntimeException, "Can't create a new EnchantBroker", 0);
+ broker->dict = NULL;
+ broker->dictcnt = 0;
+ broker->rsrc = zend_register_resource(broker, le_enchant_broker);
+ RETURN_RES(broker->rsrc);
} else {
RETURN_FALSE;
}
zval *broker;
enchant_broker *pbroker;
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &broker, enchant_broker_ce) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) {
RETURN_THROWS();
}
PHP_ENCHANT_GET_BROKER;
- if (pbroker->nb_dict > 0) {
- php_error_docref(NULL, E_WARNING, "Cannot free EnchantBroker object with open EnchantDict objects");
- RETURN_FALSE;
- }
- if (pbroker->pbroker) {
- enchant_broker_free(pbroker->pbroker);
- pbroker->pbroker = NULL;
- }
+ zend_list_close(Z_RES_P(broker));
RETURN_TRUE;
}
/* }}} */
enchant_broker *pbroker;
const char *msg;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O", &broker, enchant_broker_ce) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) {
RETURN_THROWS();
}
char *value;
size_t value_len;
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ols", &broker, enchant_broker_ce, &dict_type, &value, &value_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rls", &broker, &dict_type, &value, &value_len) == FAILURE) {
RETURN_THROWS();
}
zend_long dict_type;
char *value;
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "Ol", &broker, enchant_broker_ce, &dict_type) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl", &broker, &dict_type) == FAILURE) {
RETURN_THROWS();
}
zval *broker;
enchant_broker *pbroker;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O", &broker, enchant_broker_ce) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) {
RETURN_THROWS();
}
zval *broker;
enchant_broker *pbroker;
enchant_dict *dict;
- EnchantDict *pdict;
+ EnchantDict *d;
char *tag;
size_t taglen;
+ int pos;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Os", &broker, enchant_broker_ce, &tag, &taglen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &broker, &tag, &taglen) == FAILURE) {
RETURN_THROWS();
}
RETURN_FALSE;
}
- pdict = enchant_broker_request_dict(pbroker->pbroker, (const char *)tag);
- if (pdict) {
- pbroker->nb_dict++;
-
- object_init_ex(return_value, enchant_dict_ce);
- dict = Z_ENCHANT_DICT_P(return_value);
- dict->pdict =pdict;
- ZVAL_COPY(&dict->zbroker, broker);
- } else if (getThis()) {
- const char *err = enchant_broker_get_error(pbroker->pbroker);
- zend_throw_exception_ex(spl_ce_RuntimeException, 0, "%s", err ? err : "Can't create a new EnchantDict");
- } else {
- RETURN_FALSE;
- }
-}
-/* }}} */
-
-/* {{{ proto resource EnchantDict::__construct(resource broker, string tag [, string pwl])
- create a new dictionary using tag or pwl */
-PHP_METHOD(EnchantDict, __construct)
-{
- zval *broker;
- enchant_broker *pbroker;
- enchant_dict *dict;
- EnchantDict *pdict;
- char *tag, *pwl = NULL;
- size_t taglen, pwllen = 0;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "Os|p", &broker, enchant_broker_ce, &tag, &taglen, &pwl, &pwllen) == FAILURE) {
- RETURN_THROWS();
- }
-
- PHP_ENCHANT_GET_BROKER;
-
- if (pwllen) {
- if (php_check_open_basedir_ex(pwl, 0)) {
- zend_throw_exception(NULL, "Open_basedir restriction in effect", 0);
- RETURN_THROWS();
- }
- pdict = enchant_broker_request_pwl_dict(pbroker->pbroker, pwl);
- } else {
- if (taglen == 0) {
- zend_value_error("Tag cannot be empty");
- RETURN_THROWS();
+ d = enchant_broker_request_dict(pbroker->pbroker, (const char *)tag);
+ if (d) {
+ pos = pbroker->dictcnt++;
+ if (pbroker->dictcnt) {
+ pbroker->dict = (enchant_dict **)erealloc(pbroker->dict, sizeof(enchant_dict *) * pbroker->dictcnt);
+ } else {
+ pbroker->dict = (enchant_dict **)emalloc(sizeof(enchant_dict *));
+ pos = 0;
}
- pdict = enchant_broker_request_dict(pbroker->pbroker, (const char *)tag);
- }
- if (pdict) {
- pbroker->nb_dict++;
+ dict = pbroker->dict[pos] = (enchant_dict *)emalloc(sizeof(enchant_dict));
+ dict->id = pos;
+ dict->pbroker = pbroker;
+ dict->pdict = d;
+ pbroker->dict[pos] = dict;
- dict = Z_ENCHANT_DICT_P(ZEND_THIS);
- dict->pdict =pdict;
- ZVAL_COPY(&dict->zbroker, broker);
+ dict->rsrc = zend_register_resource(dict, le_enchant_dict);
+ GC_ADDREF(pbroker->rsrc);
+ RETURN_RES(dict->rsrc);
} else {
- const char *err = enchant_broker_get_error(pbroker->pbroker);
- zend_throw_exception_ex(spl_ce_RuntimeException, 0, "%s", err ? err : "Can't create a new EnchantDict");
+ RETURN_FALSE;
}
}
/* }}} */
zval *broker;
enchant_broker *pbroker;
enchant_dict *dict;
- EnchantDict *pdict;
- const char *pwl;
+ EnchantDict *d;
+ char *pwl;
size_t pwllen;
+ int pos;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Op", &broker, enchant_broker_ce, &pwl, &pwllen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rp", &broker, &pwl, &pwllen) == FAILURE) {
RETURN_THROWS();
}
PHP_ENCHANT_GET_BROKER;
- pdict = enchant_broker_request_pwl_dict(pbroker->pbroker, pwl);
- if (pdict) {
- pbroker->nb_dict++;
-
- object_init_ex(return_value, enchant_dict_ce);
- dict = Z_ENCHANT_DICT_P(return_value);
- dict->pdict = pdict;
- ZVAL_COPY(&dict->zbroker, broker);
- } else if (getThis()) {
- const char *err = enchant_broker_get_error(pbroker->pbroker);
- zend_throw_exception_ex(spl_ce_RuntimeException, 0, "%s", err ? err : "Can't create a new EnchantDict");
+ d = enchant_broker_request_pwl_dict(pbroker->pbroker, (const char *)pwl);
+ if (d) {
+ pos = pbroker->dictcnt++;
+ if (pbroker->dictcnt) {
+ pbroker->dict = (enchant_dict **)erealloc(pbroker->dict, sizeof(enchant_dict *) * pbroker->dictcnt);
+ } else {
+ pbroker->dict = (enchant_dict **)emalloc(sizeof(enchant_dict *));
+ pos = 0;
+ }
+
+ dict = pbroker->dict[pos] = (enchant_dict *)emalloc(sizeof(enchant_dict));
+ dict->id = pos;
+ dict->pbroker = pbroker;
+ dict->pdict = d;
+ pbroker->dict[pos] = dict;
+
+ dict->rsrc = zend_register_resource(dict, le_enchant_dict);
+ GC_ADDREF(pbroker->rsrc);
+ RETURN_RES(dict->rsrc);
} else {
RETURN_FALSE;
}
zval *dict;
enchant_dict *pdict;
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &dict, enchant_dict_ce) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &dict) == FAILURE) {
RETURN_THROWS();
}
PHP_ENCHANT_GET_DICT;
- if (pdict->pdict) {
- enchant_broker *broker = Z_ENCHANT_BROKER_P(&pdict->zbroker);
-
- if (broker && broker->pbroker) {
- enchant_broker_free_dict(broker->pbroker, pdict->pdict);
- broker->nb_dict--;
- zval_ptr_dtor(&pdict->zbroker);
- }
- pdict->pdict = NULL;
- }
-
+ zend_list_close(Z_RES_P(dict));
RETURN_TRUE;
}
/* }}} */
size_t taglen;
enchant_broker * pbroker;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Os", &broker, enchant_broker_ce, &tag, &taglen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &broker, &tag, &taglen) == FAILURE) {
RETURN_THROWS();
}
size_t ptaglen;
enchant_broker * pbroker;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Oss", &broker, enchant_broker_ce, &ptag, &ptaglen, &pordering, &porderinglen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rss", &broker, &ptag, &ptaglen, &pordering, &porderinglen) == FAILURE) {
RETURN_THROWS();
}
zval *broker;
enchant_broker * pbroker;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O", &broker, enchant_broker_ce) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &broker) == FAILURE) {
RETURN_THROWS();
}
size_t wordlen;
enchant_dict *pdict;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Os|z", &dict, enchant_dict_ce, &word, &wordlen, &sugg) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs|z", &dict, &word, &wordlen, &sugg) == FAILURE) {
RETURN_THROWS();
}
enchant_dict_free_string_list(pdict->pdict, suggs);
}
-
RETURN_FALSE;
}
+
RETURN_TRUE;
}
/* }}} */
size_t wordlen;
enchant_dict *pdict;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Os", &dict, enchant_dict_ce, &word, &wordlen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
RETURN_THROWS();
}
enchant_dict *pdict;
size_t n_sugg;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Os", &dict, enchant_dict_ce, &word, &wordlen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
RETURN_THROWS();
}
size_t wordlen;
enchant_dict *pdict;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Os", &dict, enchant_dict_ce, &word, &wordlen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
RETURN_THROWS();
}
size_t wordlen;
enchant_dict *pdict;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Os", &dict, enchant_dict_ce, &word, &wordlen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
RETURN_THROWS();
}
size_t wordlen;
enchant_dict *pdict;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Os", &dict, enchant_dict_ce, &word, &wordlen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs", &dict, &word, &wordlen) == FAILURE) {
RETURN_THROWS();
}
enchant_dict *pdict;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Oss", &dict, enchant_dict_ce, &mis, &mislen, &cor, &corlen) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "rss", &dict, &mis, &mislen, &cor, &corlen) == FAILURE) {
RETURN_THROWS();
}
enchant_dict *pdict;
const char *msg;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O", &dict, enchant_dict_ce) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &dict) == FAILURE) {
RETURN_THROWS();
}
zval *dict;
enchant_dict *pdict;
- if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O", &dict, enchant_dict_ce) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &dict) == FAILURE) {
RETURN_THROWS();
}
/** @generate-function-entries */
-final class EnchantBroker
-{
- /** @alias enchant_broker_init */
- public function __construct() {}
+/** @return resource|false */
+function enchant_broker_init() {}
- /** @alias enchant_broker_get_error */
- public function getError(): string|false {}
-
- /** @alias enchant_broker_list_dicts */
- public function listDicts(): ?array {}
-
- /** @alias enchant_broker_request_dict */
- public function requestDict(string $tag): EnchantDict|false {}
-
- /** @alias enchant_broker_request_pwl_dict */
- public function requestPWL(string $filename): EnchantDict|false {}
-
- /** @alias enchant_broker_dict_exists */
- public function isDict(string $tag): bool {}
-
- /** @alias enchant_broker_set_ordering */
- public function setOrdering(string $tag, string $ordering): bool {}
-
- /** @alias enchant_broker_describe */
- public function describe(): ?array {}
-}
-
-final class EnchantDict
-{
- public function __construct(EnchantBroker $broker, string $tag, ?string $pwl = null) {}
-
- /** @alias enchant_dict_quick_check */
- public function checkAndSuggest(string $word, &$suggestions = null): bool {}
-
- /** @alias enchant_dict_check */
- public function check(string $word): bool {}
-
- /** @alias enchant_dict_suggest */
- public function suggest(string $word): ?array {}
-
- /** @alias enchant_dict_add */
- public function add(string $word): void {}
-
- /** @alias enchant_dict_add_to_session */
- public function addToSession(string $word): void {}
-
- /** @alias enchant_dict_is_added */
- public function isAdded(string $word): bool {}
-
- /** @alias enchant_dict_store_replacement */
- public function storeReplacement(string $mis, string $cor): void {}
-
- /** @alias enchant_dict_get_error */
- public function getError(): string|false {}
-
- /** @alias enchant_dict_describe */
- public function describe(): array {}
-}
-
-function enchant_broker_init(): EnchantBroker|false {}
+/** @param resource $broker */
+function enchant_broker_free($broker): bool {}
/**
-* @deprecated
+* @param resource $broker
+* @return string|false
*/
-function enchant_broker_free(EnchantBroker $broker): bool {}
-
-function enchant_broker_get_error(EnchantBroker $broker): string|false {}
+function enchant_broker_get_error($broker) {}
/**
+* @param resource $broker
* @deprecated
*/
-function enchant_broker_set_dict_path(EnchantBroker $broker, int $name, string $value): bool {}
+function enchant_broker_set_dict_path($broker, int $name, string $value): bool {}
/**
+* @param resource $broker
* @deprecated
*/
-function enchant_broker_get_dict_path(EnchantBroker $broker, int $name): string|false {}
-
-function enchant_broker_list_dicts(EnchantBroker $broker): ?array {}
+function enchant_broker_get_dict_path($broker, int $name): string|false {}
-function enchant_broker_request_dict(EnchantBroker $broker, string $tag): EnchantDict|false {}
+/** @param resource $broker */
+function enchant_broker_list_dicts($broker): ?array {}
-function enchant_broker_request_pwl_dict(EnchantBroker $broker, string $filename): EnchantDict|false {}
+/**
+ * @param resource $broker
+ * @return resource|false
+ */
+function enchant_broker_request_dict($broker, string $tag) {}
/**
-* @deprecated
-*/
-function enchant_broker_free_dict(EnchantDict $dict): bool {}
+ * @param resource $broker
+ * @return resource|false
+ */
+function enchant_broker_request_pwl_dict($broker, string $filename) {}
-function enchant_broker_dict_exists(EnchantBroker $broker, string $tag): bool {}
+/** @param resource $dict */
+function enchant_broker_free_dict($dict): bool {}
-function enchant_broker_set_ordering(EnchantBroker $broker, string $tag, string $ordering): bool {}
+/** @param resource $broker */
+function enchant_broker_dict_exists($broker, string $tag): bool {}
-function enchant_broker_describe(EnchantBroker $broker): ?array {}
+/** @param resource $broker */
+function enchant_broker_set_ordering($broker, string $tag, string $ordering): bool {}
-function enchant_dict_quick_check(EnchantDict $dict, string $word, &$suggestions = null): bool {}
+/** @param resource $broker */
+function enchant_broker_describe($broker): ?array {}
-function enchant_dict_check(EnchantDict $dict, string $word): bool {}
+/** @param resource $dict */
+function enchant_dict_quick_check($dict, string $word, &$suggestions = null): bool {}
-function enchant_dict_suggest(EnchantDict $dict, string $word): ?array {}
+/** @param resource $dict */
+function enchant_dict_check($dict, string $word): bool {}
-function enchant_dict_add(EnchantDict $dict, string $word): void {}
+/** @param resource $dict */
+function enchant_dict_suggest($dict, string $word): ?array {}
+
+/** @param resource $dict */
+function enchant_dict_add($dict, string $word): void {}
/**
+* @param resource $dict
* @alias enchant_dict_add
* @deprecated
*/
-function enchant_dict_add_to_personal(EnchantDict $dict, string $word): void {}
+function enchant_dict_add_to_personal($dict, string $word): void {}
-function enchant_dict_add_to_session(EnchantDict $dict, string $word): void {}
+/** @param resource $dict */
+function enchant_dict_add_to_session($dict, string $word): void {}
-function enchant_dict_is_added(EnchantDict $dict, string $word): bool {}
+/** @param resource $dict */
+function enchant_dict_is_added($dict, string $word): bool {}
/**
* @param resource $dict
* @alias enchant_dict_is_added
* @deprecated
*/
-function enchant_dict_is_in_session(EnchantDict $dict, string $word): bool {}
-
-function enchant_dict_store_replacement(EnchantDict $dict, string $mis, string $cor): void {}
+function enchant_dict_is_in_session($dict, string $word): bool {}
-function enchant_dict_get_error(EnchantDict $dict): string|false {}
+/** @param resource $dict */
+function enchant_dict_store_replacement($dict, string $mis, string $cor): void {}
-function enchant_dict_describe(EnchantDict $dict): array {}
+/** @param resource $dict */
+function enchant_dict_get_error($dict): string|false {}
+/** @param resource $dict */
+function enchant_dict_describe($dict): array {}
/* This is a generated file, edit the .stub.php file instead. */
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_enchant_broker_init, 0, 0, EnchantBroker, MAY_BE_FALSE)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_init, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_broker_free, 0, 1, _IS_BOOL, 0)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ ZEND_ARG_INFO(0, broker)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_enchant_broker_get_error, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_get_error, 0, 0, 1)
+ ZEND_ARG_INFO(0, broker)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_broker_set_dict_path, 0, 3, _IS_BOOL, 0)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ ZEND_ARG_INFO(0, broker)
ZEND_ARG_TYPE_INFO(0, name, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_enchant_broker_get_dict_path, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ ZEND_ARG_INFO(0, broker)
ZEND_ARG_TYPE_INFO(0, name, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_broker_list_dicts, 0, 1, IS_ARRAY, 1)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ ZEND_ARG_INFO(0, broker)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_enchant_broker_request_dict, 0, 2, EnchantDict, MAY_BE_FALSE)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_request_dict, 0, 0, 2)
+ ZEND_ARG_INFO(0, broker)
ZEND_ARG_TYPE_INFO(0, tag, IS_STRING, 0)
ZEND_END_ARG_INFO()
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_enchant_broker_request_pwl_dict, 0, 2, EnchantDict, MAY_BE_FALSE)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_enchant_broker_request_pwl_dict, 0, 0, 2)
+ ZEND_ARG_INFO(0, broker)
ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_broker_free_dict, 0, 1, _IS_BOOL, 0)
- ZEND_ARG_OBJ_INFO(0, dict, EnchantDict, 0)
+ ZEND_ARG_INFO(0, dict)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_broker_dict_exists, 0, 2, _IS_BOOL, 0)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ ZEND_ARG_INFO(0, broker)
ZEND_ARG_TYPE_INFO(0, tag, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_broker_set_ordering, 0, 3, _IS_BOOL, 0)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
+ ZEND_ARG_INFO(0, broker)
ZEND_ARG_TYPE_INFO(0, tag, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, ordering, IS_STRING, 0)
ZEND_END_ARG_INFO()
#define arginfo_enchant_broker_describe arginfo_enchant_broker_list_dicts
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_quick_check, 0, 2, _IS_BOOL, 0)
- ZEND_ARG_OBJ_INFO(0, dict, EnchantDict, 0)
+ ZEND_ARG_INFO(0, dict)
ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, suggestions, "null")
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_check, 0, 2, _IS_BOOL, 0)
- ZEND_ARG_OBJ_INFO(0, dict, EnchantDict, 0)
+ ZEND_ARG_INFO(0, dict)
ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_suggest, 0, 2, IS_ARRAY, 1)
- ZEND_ARG_OBJ_INFO(0, dict, EnchantDict, 0)
+ ZEND_ARG_INFO(0, dict)
ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_add, 0, 2, IS_VOID, 0)
- ZEND_ARG_OBJ_INFO(0, dict, EnchantDict, 0)
+ ZEND_ARG_INFO(0, dict)
ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
ZEND_END_ARG_INFO()
#define arginfo_enchant_dict_is_in_session arginfo_enchant_dict_check
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_store_replacement, 0, 3, IS_VOID, 0)
- ZEND_ARG_OBJ_INFO(0, dict, EnchantDict, 0)
+ ZEND_ARG_INFO(0, dict)
ZEND_ARG_TYPE_INFO(0, mis, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, cor, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_enchant_dict_get_error, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
- ZEND_ARG_OBJ_INFO(0, dict, EnchantDict, 0)
+ ZEND_ARG_INFO(0, dict)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_describe, 0, 1, IS_ARRAY, 0)
- ZEND_ARG_OBJ_INFO(0, dict, EnchantDict, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_EnchantBroker___construct, 0, 0, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_EnchantBroker_getError, 0, 0, MAY_BE_STRING|MAY_BE_FALSE)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantBroker_listDicts, 0, 0, IS_ARRAY, 1)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_EnchantBroker_requestDict, 0, 1, EnchantDict, MAY_BE_FALSE)
- ZEND_ARG_TYPE_INFO(0, tag, IS_STRING, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_EnchantBroker_requestPWL, 0, 1, EnchantDict, MAY_BE_FALSE)
- ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantBroker_isDict, 0, 1, _IS_BOOL, 0)
- ZEND_ARG_TYPE_INFO(0, tag, IS_STRING, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantBroker_setOrdering, 0, 2, _IS_BOOL, 0)
- ZEND_ARG_TYPE_INFO(0, tag, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, ordering, IS_STRING, 0)
-ZEND_END_ARG_INFO()
-
-#define arginfo_class_EnchantBroker_describe arginfo_class_EnchantBroker_listDicts
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_EnchantDict___construct, 0, 0, 2)
- ZEND_ARG_OBJ_INFO(0, broker, EnchantBroker, 0)
- ZEND_ARG_TYPE_INFO(0, tag, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pwl, IS_STRING, 1, "null")
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantDict_checkAndSuggest, 0, 1, _IS_BOOL, 0)
- ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
- ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, suggestions, "null")
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantDict_check, 0, 1, _IS_BOOL, 0)
- ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantDict_suggest, 0, 1, IS_ARRAY, 1)
- ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantDict_add, 0, 1, IS_VOID, 0)
- ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
-ZEND_END_ARG_INFO()
-
-#define arginfo_class_EnchantDict_addToSession arginfo_class_EnchantDict_add
-
-#define arginfo_class_EnchantDict_isAdded arginfo_class_EnchantDict_check
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantDict_storeReplacement, 0, 2, IS_VOID, 0)
- ZEND_ARG_TYPE_INFO(0, mis, IS_STRING, 0)
- ZEND_ARG_TYPE_INFO(0, cor, IS_STRING, 0)
-ZEND_END_ARG_INFO()
-
-#define arginfo_class_EnchantDict_getError arginfo_class_EnchantBroker_getError
-
-ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_EnchantDict_describe, 0, 0, IS_ARRAY, 0)
+ ZEND_ARG_INFO(0, dict)
ZEND_END_ARG_INFO()
ZEND_FUNCTION(enchant_dict_store_replacement);
ZEND_FUNCTION(enchant_dict_get_error);
ZEND_FUNCTION(enchant_dict_describe);
-ZEND_METHOD(EnchantDict, __construct);
static const zend_function_entry ext_functions[] = {
ZEND_FE(enchant_broker_init, arginfo_enchant_broker_init)
- ZEND_DEP_FE(enchant_broker_free, arginfo_enchant_broker_free)
+ ZEND_FE(enchant_broker_free, arginfo_enchant_broker_free)
ZEND_FE(enchant_broker_get_error, arginfo_enchant_broker_get_error)
ZEND_DEP_FE(enchant_broker_set_dict_path, arginfo_enchant_broker_set_dict_path)
ZEND_DEP_FE(enchant_broker_get_dict_path, arginfo_enchant_broker_get_dict_path)
ZEND_FE(enchant_broker_list_dicts, arginfo_enchant_broker_list_dicts)
ZEND_FE(enchant_broker_request_dict, arginfo_enchant_broker_request_dict)
ZEND_FE(enchant_broker_request_pwl_dict, arginfo_enchant_broker_request_pwl_dict)
- ZEND_DEP_FE(enchant_broker_free_dict, arginfo_enchant_broker_free_dict)
+ ZEND_FE(enchant_broker_free_dict, arginfo_enchant_broker_free_dict)
ZEND_FE(enchant_broker_dict_exists, arginfo_enchant_broker_dict_exists)
ZEND_FE(enchant_broker_set_ordering, arginfo_enchant_broker_set_ordering)
ZEND_FE(enchant_broker_describe, arginfo_enchant_broker_describe)
ZEND_FE(enchant_dict_describe, arginfo_enchant_dict_describe)
ZEND_FE_END
};
-
-
-static const zend_function_entry class_EnchantBroker_methods[] = {
- ZEND_ME_MAPPING(__construct, enchant_broker_init, arginfo_class_EnchantBroker___construct, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(getError, enchant_broker_get_error, arginfo_class_EnchantBroker_getError, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(listDicts, enchant_broker_list_dicts, arginfo_class_EnchantBroker_listDicts, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(requestDict, enchant_broker_request_dict, arginfo_class_EnchantBroker_requestDict, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(requestPWL, enchant_broker_request_pwl_dict, arginfo_class_EnchantBroker_requestPWL, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(isDict, enchant_broker_dict_exists, arginfo_class_EnchantBroker_isDict, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(setOrdering, enchant_broker_set_ordering, arginfo_class_EnchantBroker_setOrdering, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(describe, enchant_broker_describe, arginfo_class_EnchantBroker_describe, ZEND_ACC_PUBLIC)
- ZEND_FE_END
-};
-
-
-static const zend_function_entry class_EnchantDict_methods[] = {
- ZEND_ME(EnchantDict, __construct, arginfo_class_EnchantDict___construct, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(checkAndSuggest, enchant_dict_quick_check, arginfo_class_EnchantDict_checkAndSuggest, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(check, enchant_dict_check, arginfo_class_EnchantDict_check, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(suggest, enchant_dict_suggest, arginfo_class_EnchantDict_suggest, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(add, enchant_dict_add, arginfo_class_EnchantDict_add, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(addToSession, enchant_dict_add_to_session, arginfo_class_EnchantDict_addToSession, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(isAdded, enchant_dict_is_added, arginfo_class_EnchantDict_isAdded, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(storeReplacement, enchant_dict_store_replacement, arginfo_class_EnchantDict_storeReplacement, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(getError, enchant_dict_get_error, arginfo_class_EnchantDict_getError, ZEND_ACC_PUBLIC)
- ZEND_ME_MAPPING(describe, enchant_dict_describe, arginfo_class_EnchantDict_describe, ZEND_ACC_PUBLIC)
- ZEND_FE_END
-};
}
if (!enchant_broker_describe($broker)) {
- @enchant_broker_free($broker);
+ enchant_broker_free($broker);
echo "skip: No broker providers found\n";
}
-@enchant_broker_free($broker);
+enchant_broker_free($broker);
?>
--FILE--
<?php
echo "failed, brocker describe array \n";
}
- @enchant_broker_free($broker);
+ enchant_broker_free($broker);
} else {
echo("failed, broker_init failure\n");
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
?>
--FILE--
<?php
$broker = enchant_broker_init();
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo "OK\n";
enchant_broker_free($broker);
}
echo "OK\n";
?>
---EXPECTF--
+--EXPECT--
OK
-
-Deprecated: Function enchant_broker_free() is deprecated in %s
OK
--TEST--
-@enchant_broker_free() function
+enchant_broker_free() function
--CREDITS--
marcosptf - <marcosptf@yahoo.com.br>
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
?>
--FILE--
<?php
$broker = enchant_broker_init();
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
- if (@enchant_broker_free($broker)) {
+ if (enchant_broker_free($broker)) {
echo("OK\n");
} else {
echo("broker free failed\n");
--TEST--
-@enchant_broker_free() function
+enchant_broker_free() function
--CREDITS--
marcosptf - <marcosptf@yahoo.com.br>
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if(!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if(!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if(!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$dicts = enchant_broker_list_dicts($broker);
$newWord = array("iLoveJava","iLoveJavascript","iLoveRuby","iLovePerl","iLoveAwk","iLoveC");
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
if (NULL === $AddtoPersonalDict) {
var_dump($AddtoPersonalDict);
- if (@enchant_broker_free_dict($requestDict)) {
+ if (enchant_broker_free_dict($requestDict)) {
echo("OK\n");
- if (@enchant_broker_free($broker)) {
+ if (enchant_broker_free($broker)) {
echo("OK\n");
} else {
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if(!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if(!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if(!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$broker = enchant_broker_init();
$dicts = enchant_broker_list_dicts($broker);
$newWord = "iLoveJava";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
}
echo "OK\n";
?>
---EXPECTF--
+--EXPECT--
OK
OK
NULL
-
-Deprecated: Function enchant_broker_free_dict() is deprecated in %s
OK
OK
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
?>
--FILE--
<?php
$broker = enchant_broker_init();
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$enchantErr = enchant_broker_get_error($broker);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
?>
--FILE--
<?php
$broker = enchant_broker_init();
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
} else {
echo("failure, its not a resource\n");
}
if (!enchant_broker_list_dicts($broker)) {
- @enchant_broker_free($broker);
+ enchant_broker_free($broker);
echo "skip: No broker dicts installed\n";
}
-@enchant_broker_free($broker);
+enchant_broker_free($broker);
?>
--FILE--
<?php
$broker = enchant_broker_init();
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$brokerListDicts = enchant_broker_list_dicts($broker);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
if (count($dicts)) {
$dict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
- if (is_object($dict)) {
+ if (is_resource($dict)) {
echo "OK\n";
} else {
echo "fail to request " . $dicts[0]['lang_tag'];
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
if (is_array($dicts)) {
$dict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
- if (is_object($dict)) {
+ if (is_resource($dict)) {
echo("OK\n");
} else {
echo("fail to request " . $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if(!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if(!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
?>
--FILE--
<?php
$broker = enchant_broker_init();
$pathPwlDict = __DIR__ . "/enchant_broker_request_pwl_dict.pwl";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_pwl_dict($broker, $pathPwlDict);
- if (is_object($requestDict)) {
+ if (is_resource($requestDict)) {
echo("OK\n");
$dictdescribe = enchant_dict_describe($requestDict);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$dicts = enchant_broker_list_dicts($broker);
$comma = ";";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
if (enchant_broker_set_ordering($broker,$dicts[0]['lang_tag'],$comma)) {
echo("OK\n");
}
if (!enchant_broker_list_dicts($broker)) {
- @enchant_broker_free($broker);
+ enchant_broker_free($broker);
echo "skip: No broker dicts installed\n";
}
-@enchant_broker_free($broker);
+enchant_broker_free($broker);
?>
--FILE--
<?php
var_dump($rDict);
?>
--EXPECTF--
-object(EnchantDict)#%d (0) {
-}
-object(EnchantDict)#%d (0) {
-}
-object(EnchantBroker)#%d (0) {
-}
-object(EnchantBroker)#%d (0) {
-}
-object(EnchantDict)#%d (0) {
-}
-object(EnchantDict)#%d (0) {
-}
-
+resource(%d) of type (enchant_dict)
+resource(%d) of type (enchant_dict)
+resource(%d) of type (enchant_broker)
+resource(%d) of type (enchant_broker)
+resource(%d) of type (enchant_dict)
+resource(%d) of type (enchant_dict)
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (defined("LIBENCHANT_VERSION") && version_compare(LIBENCHANT_VERSION, "2", ">")) die('skip libenchant v1 only');
?>
--FILE--
var_dump(enchant_broker_get_dict_path($broker, ENCHANT_ISPELL));
?>
--EXPECTF--
-Deprecated: Constant ENCHANT_MYSPELL is deprecated in %s
-
Deprecated: Function enchant_broker_get_dict_path() is deprecated in %s
Warning: enchant_broker_get_dict_path(): dict_path not set in %s on line %d
bool(false)
-Deprecated: Constant ENCHANT_ISPELL is deprecated in %s
-
Deprecated: Function enchant_broker_get_dict_path() is deprecated in %s
Warning: enchant_broker_get_dict_path(): dict_path not set in %s on line %d
+++ /dev/null
---TEST--
-constructor raise exception()
---SKIPIF--
-<?php
-if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
-?>
---INI--
-open_basedir=.
---FILE--
-<?php
-try {
- new EnchantDict(new EnchantBroker, '');
-} catch (ValueError $e) {
- echo $e->getMessage()."\n";
-}
-try {
- new EnchantDict(new EnchantBroker, '', '../test.pwl');
-} catch (Exception $e) {
- echo $e->getMessage()."\n";
-}
-?>
-OK
---EXPECTF--
-Tag cannot be empty
-Open_basedir restriction in effect
-OK
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$dicts = enchant_broker_list_dicts($broker);
$newWord = "iLoveJava";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$dicts = enchant_broker_list_dicts($broker);
$newWord = "iLoveJavaScript";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$dicts = enchant_broker_list_dicts($broker);
$newWord = "java";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$broker = enchant_broker_init();
$dicts = enchant_broker_list_dicts($broker);
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$broker = enchant_broker_init();
$dicts = enchant_broker_list_dicts($broker);
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$dicts = enchant_broker_list_dicts($broker);
$newWord = "aspell";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
$tag = 'en_US';
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$dicts = enchant_broker_list_dicts($broker);
$word = "aspell";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$wrongWord = "sava";
$rightWord = "java";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
?>
--FILE--
$dicts = enchant_broker_list_dicts($broker);
$sugs = "soong";
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
$requestDict = enchant_broker_request_dict($broker, $dicts[0]['lang_tag']);
--SKIPIF--
<?php
if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
+if (!is_resource(enchant_broker_init())) {die("skip, resource dont load\n");}
if (!is_array(enchant_broker_list_dicts(enchant_broker_init()))) {die("skip, no dictionary installed on this machine! \n");}
if (defined("LIBENCHANT_VERSION") && version_compare(LIBENCHANT_VERSION, "2", ">")) die('skip libenchant v1 only');
?>
$dictTypeValue1 = 1;
$dictTypeValue2 = 2;
-if (is_object($broker)) {
+if (is_resource($broker)) {
echo("OK\n");
if (enchant_broker_set_dict_path($broker, $dictTypeValue1, $backEndDictType1)) {
+++ /dev/null
---TEST--
-invalid object raise exception() function
---SKIPIF--
-<?php
-if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(enchant_broker_init())) {die("skip, resource dont load\n");}
-?>
---FILE--
-<?php
-$broker = enchant_broker_init();
-if (is_object($broker)) {
- echo "OK\n";
- @enchant_broker_free($broker);
- try {
- @enchant_broker_free($broker);
- } catch (ValueError $e) {
- echo $e->getMessage()."\n";
- }
-} else {
- exit("init failed\n");
-}
-echo "OK\n";
-?>
---EXPECTF--
-OK
-Invalid or uninitialized EnchantBroker object
-OK
+++ /dev/null
---TEST--
-Object API
---SKIPIF--
-<?php
-if(!extension_loaded('enchant')) die('skip, enchant not loader');
-if (!is_object(new EnchantBroker)) {die("skip, resource dont load\n");}
- ?>
---FILE--
-<?php
-echo "+ Broker\n";
-var_dump($broker = new EnchantBroker);
-var_dump(is_array($broker->describe()));
-$dicts = $broker->listDicts();
-var_dump($lang = $dicts[0]['lang_tag']);
-
-echo "+ Dict\n";
-var_dump($dict = $broker->requestDict($lang));
-var_dump(is_array($dict->describe()));
-unset($dict);
-
-echo "+ Check\n";
-var_dump($dict = new EnchantDict($broker, $lang));
-$w = "ElePHPant";
-var_dump($dict->check($w));
-var_dump($dict->isAdded($w));
-$dict->addToSession($w);
-var_dump($dict->check($w));
-var_dump($dict->isAdded($w));
-
-echo "+ Suggest\n";
-var_dump(is_array($dict->suggest("soong")));
-
-echo "+ PWL\n";
-var_dump($dict = new EnchantDict($broker, '', __DIR__ . '/enchant_broker_request_pwl_dict.pwl'));
-var_dump($dict->check('php'));
-var_dump($dict->check('node'));
-?>
-OK
---EXPECTF--
-+ Broker
-object(EnchantBroker)#%d (0) {
-}
-bool(true)
-string(%d) "%s"
-+ Dict
-object(EnchantDict)#%d (0) {
-}
-bool(true)
-+ Check
-object(EnchantDict)#%d (0) {
-}
-bool(false)
-bool(false)
-bool(true)
-bool(true)
-+ Suggest
-bool(true)
-+ PWL
-object(EnchantDict)#%d (0) {
-}
-bool(true)
-bool(false)
-OK