Extension Upgrade Tracking ========================== ext/standard ------------ Status: In Progress array.c ------- error_log() Params API, what encoding to use for the message, handling email option string.c -------- parse_str() Params API. How do we deal with encoding of the data? sscanf() Params API. Rest - no idea yet. wordwrap() Upgrade, do wordwrapping on codepoint (or glyph ?) level, maybe use additional whitespace chars instead of just space. ext/filter ------------ Status: To be discussed The unicode support must be discussed with the filter maintainers and Andrei (sapi maintainers too?). Please mail them and the list prior to any work or commits. ext/gd ------------ Status: In Progress A preliminary version has been commited by Sara. Pierre is working on the migration of the GD extension for php6. ext/openssl ------------ Status: In Progress (Pierre) ext/spl ------------ Status: In progress zend_filehandle needs to operate on zstr. Once we have that we can finalize the internal c-function spl_autoload(). RegExIterator might need to deal with regex provided in unicode. SplFileObject needs toeithe deal withunicode files or a derived class must be created for that. Either way streams cannot deal with unicode line endings. ext/zip ------------ Status: done. Both the new OO and the old procedural API are unicode ready. Custom encoding for the entry names (ISO-*, ANSI, etc.) will be supported in later version. Binary strings are used now. The use is responsible of the encoding of the entry names. Completed ========= ext/bcmath ---------- Completed: bcadd() bcsub() bcmul() bcdiv() bcmod() bcpowmod() bcpow() bcsqrt() bccomp() bcscale() ext/bz2 ------- TBD: bz2_filter.c Completed: bzread() bzopen() bzerrno() bzerrstr() bzerror() bzcompress() bzdecompress() ext/gettext ------------ Completed: textdomain() gettext() _() dgettext() dcgettext() bindtextdomain() ngettext() dngettext() dcngettext() bind_textdomain_codeset() ext/gmp ------- Completed: gmp_abs() gmp_add() gmp_and() gmp_clrbit() gmp_cmp() gmp_com() gmp_divexact() gmp_div_q() gmp_div_qr() gmp_div_r() gmp_fact() gmp_gcd() gmp_gcdext() gmp_hamdist() gmp_init() gmp_intval() gmp_invert() gmp_jacobi() gmp_legendre() gmp_mod() gmp_mul() gmp_neg() gmp_nextprime() gmp_or() gmp_perfect_square() gmp_popcount() gmp_pow() gmp_powm() gmp_prob_prime() gmp_random() gmp_scan0() gmp_scan1() gmp_setbit() gmp_sign() gmp_sqrt() gmp_sqrtrem() gmp_strval() gmp_sub() gmp_xor() ext/hash -------- Completed: hash() hash_file() hash_hmac() hash_hmac_file() hash_init() hash_update() hash_update_stream() hash_update_file() hash_final() hash_algos() ext/json -------- Completed: json_encode() json_decode() ext/mcrypt ------------ Completed: mcrypt_ecb() mcrypt_cbc() mcrypt_cfb() mcrypt_ofb() mcrypt_get_key_size() mcrypt_get_block_size() mcrypt_get_cipher_name() mcrypt_create_iv() mcrypt_list_algorithms() mcrypt_list_modes() mcrypt_get_iv_size() mcrypt_encrypt() mcrypt_decrypt() mcrypt_module_open() mcrypt_generic_init() mcrypt_generic() mdecrypt_generic() mcrypt_generic_end() mcrypt_generic_deinit() mcrypt_enc_self_test() mcrypt_enc_is_block_algorithm_mode() mcrypt_enc_is_block_algorithm() mcrypt_enc_is_block_mode() mcrypt_enc_get_block_size() mcrypt_enc_get_key_size() mcrypt_enc_get_supported_key_sizes() mcrypt_enc_get_iv_size() mcrypt_enc_get_algorithms_name() mcrypt_enc_get_modes_name() mcrypt_module_self_test() mcrypt_module_is_block_algorithm_mode() mcrypt_module_is_block_algorithm() mcrypt_module_is_block_mode() mcrypt_module_get_algo_block_size() mcrypt_module_get_algo_key_size() mcrypt_module_get_supported_key_sizes() mcrypt_module_close() ext/mhash ------------ Completed: mhash_count() mhash_get_block_size() mhash_get_hash_name() mhash_keygen_count() mhash_get_keygen_name() mhash_keygen_uses_hash() mhash_keygen_uses_salt() mhash_get_keygen_salt_size() mhash_keygen_uses_count() mhash() mhash_keygen() mhash_keygen_s2k() ext/mysqli ---------- TBD: mysqli_embedded_server_start() mysqli_embedded_server_end() mysqli_disable_reads_from_master() mysqli_disable_rpl_parse() mysqli_enable_reads_from_master() mysqli_enable_rpl_parse() mysqli_master_query() mysqli_rpl_parse_enabled() mysqli_rpl_probe() mysqli_rpl_query_type() mysqli_send_query() mysqli_slave_query() Completed: mysqli_affected_rows() mysqli_autocommit() mysqli_change_user() mysqli_character_set_name() mysqli_close() mysqli_commit() mysqli_connect() mysqli_connect_errno() mysqli_connect_error() mysqli_data_seek() mysqli_debug() mysqli_dump_debug_info() mysqli_errno() mysqli_error() mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field mysqli_fetch_field_direct mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count() mysqli_field_seek() mysqli_field_tell() mysqli_free_result() mysqli_get_charset() mysqli_get_client_info() mysqli_get_client_version() mysqli_get_host_info mysqli_get_proto_info() mysqli_get_server_info() mysqli_get_server_version() mysqli_get_warnings() mysqli_info() mysqli_init() mysqli_insert_id() mysqli_kill() mysqli_more_results() mysqli_multi_query() mysqli_next_result() mysqli_num_fields() mysqli_num_rows() mysqli_options() mysqli_ping() mysqli_prepare() mysqli_query() mysqli_real_connect() mysqli_real_escape_string() mysqli_real_query() mysqli_report() mysqli_rollback() mysqli_select_db() mysqli_set_charset() mysqli_set_local_infile_default() mysqli_set_local_infile_handler() mysqli_sqlstate() mysqli_ssl_set() mysqli_stat() mysqli_stmt_affected_rows() mysqli_stmt_attr_get() mysqli_stmt_attr_set() mysqli_stmt_bind_param() mysqli_stmt_bind_result() mysqli_stmt_close() mysqli_stmt_data_seek() mysqli_stmt_errno() mysqli_stmt_error() mysqli_stmt_execute() mysqli_stmt_fetch() mysqli_stmt_field_count() mysqli_stmt_free_result() mysqli_stmt_get_warnings() mysqli_stmt_init() mysqli_stmt_insert_id() mysqli_stmt_num_rows() mysqli_stmt_param_count() mysqli_stmt_prepare() mysqli_stmt_reset() mysqli_stmt_result_metadata() mysqli_stmt_send_long_data() mysqli_stmt_sqlstate() mysqli_stmt_store_result() mysqli_store_result() mysqli_thread_id() mysqli_thread_safe() mysqli_use_result() mysqli_warning_count ext/reflection -------------- TBD: `grep -E 'FIXME|UTODO'` Completed: ReflectionClass::__construct() ReflectionClass::getConstant() ReflectionClass::getConstants() ReflectionClass::getConstructor() ReflectionClass::getDefaultProperties() ReflectionClass::getDocComment() ReflectionClass::getEndLine() ReflectionClass::getExtension() ReflectionClass::getExtensionName() ReflectionClass::getFileName() ReflectionClass::getInterfaceNames() ReflectionClass::getInterfaces() ReflectionClass::getMethod() ReflectionClass::getMethods() ReflectionClass::getModifiers() ReflectionClass::getName() ReflectionClass::getParentClass() ReflectionClass::getProperties() ReflectionClass::getProperty() ReflectionClass::getStartLine() ReflectionClass::getStaticProperties() ReflectionClass::getStaticPropertyValue() ReflectionClass::hasConstant() ReflectionClass::hasMethod() ReflectionClass::hasProperty() ReflectionClass::implementsInterface() ReflectionClass::isAbstract() ReflectionClass::isFinal() ReflectionClass::isInstance() ReflectionClass::isInstantiable() ReflectionClass::isInterface() ReflectionClass::isInternal() ReflectionClass::isIterateable() ReflectionClass::isSubclassOf() ReflectionClass::isUserDefined() ReflectionClass::newInstance() ReflectionClass::newInstanceArgs() ReflectionClass::setStaticPropertyValue() ReflectionClass::__toString() ReflectionExtension::__construct() ReflectionExtension::getClasses() ReflectionExtension::getClassNames() ReflectionExtension::getConstants() ReflectionExtension::getDependencies() ReflectionExtension::getFunctions() ReflectionExtension::getINIEntries() ReflectionExtension::getName() ReflectionExtension::getVersion() ReflectionExtension::__toString() ReflectionFunction::__construct() ReflectionFunction::getDocComment() ReflectionFunction::getEndLine() ReflectionFunction::getExtension() ReflectionFunction::getExtensionName() ReflectionFunction::getFileName() ReflectionFunction::getName() ReflectionFunction::getNumberOfParameters() ReflectionFunction::getNumberOfRequiredParameters() ReflectionFunction::getParameters() ReflectionFunction::getStartLine() ReflectionFunction::getStaticVariables() ReflectionFunction::invoke() ReflectionFunction::invokeArgs() ReflectionFunction::isDeprecated() ReflectionFunction::isDisabled() ReflectionFunction::isInternal() ReflectionFunction::isUserDefined() ReflectionFunction::returnsReference() ReflectionFunction::__toString() ReflectionMethod::__construct() ReflectionMethod::getDeclaringClass() ReflectionMethod::getModifiers() ReflectionMethod::getPrototype() ReflectionMethod::invoke() ReflectionMethod::invokeArgs() ReflectionMethod::isAbstract() ReflectionMethod::isConstructor() ReflectionMethod::isDestructor() ReflectionMethod::isFinal() ReflectionMethod::isPrivate() ReflectionMethod::isProtected() ReflectionMethod::isPublic() ReflectionMethod::isStatic() ReflectionMethod::__toString() ReflectionObject::__construct() ReflectionParameter::allowsNull() ReflectionParameter::__construct() ReflectionParameter::getClass() ReflectionParameter::getDeclaringClass() ReflectionParameter::getDeclaringFunction() ReflectionParameter::getDefaultValue() ReflectionParameter::getName() ReflectionParameter::getPosition() ReflectionParameter::isArray() ReflectionParameter::isDefaultValueAvailable() ReflectionParameter::isOptional() ReflectionParameter::isPassedByReference() ReflectionParameter::__toString() ReflectionProperty::__construct() ReflectionProperty::getDeclaringClass() ReflectionProperty::getDefaultValue() ReflectionProperty::getDocComment() ReflectionProperty::getModifiers() ReflectionProperty::getName() ReflectionProperty::getValue() ReflectionProperty::isDefault() ReflectionProperty::isPrivate() ReflectionProperty::isProtected() ReflectionProperty::isPublic() ReflectionProperty::isStatic() ReflectionProperty::setValue() ReflectionProperty::__toString() ext/simplexml ------------- TBD: SimpleXMLElement::getDocNamespaces() SimpleXMLElement::getNamespaces() Completed: SimpleXMLElement::addAttribute() SimpleXMLElement::addChild() SimpleXMLElement::asXML() SimpleXMLElement::attributes() SimpleXMLElement::children() SimpleXMLElement::getName() SimpleXMLElement::registerXPathNamespace() SimpleXMLElement::xpath() simplexml_import_dom() simplexml_load_file() simplexml_load_string() ext/soap -------- TBD: SoapServer::setObject() Completed: is_soap_fault() SoapClient::__call() SoapClient::__doRequest() SoapClient::__getCookies() SoapClient::__getFunctions() SoapClient::__getLastRequest() SoapClient::__getLastRequestHeaders() SoapClient::__getLastResponse() SoapClient::__getLastResponseHeaders() SoapClient::__getTypes() SoapClient::__setCookie() SoapClient::__setLocation() SoapClient::__setSoapHeaders() SoapClient::SoapClient() SoapFault::SoapFault() SoapFault::__toString() SoapHeader::SoapHeader() SoapParam::SoapParam() SoapServer::addFunction() SoapServer::getFunctions() SoapServer::handle() SoapServer::setClass() SoapServer::setPersistence() SoapServer::SoapServer() SoapVar::SoapVar() ext/standard ------------ array.c ------- array_change_key_case() array_chunk() array_combine() array_count_values() array_fill() array_filter() array_flip() array_key_exists() array_keys() array_map() array_merge() array_merge_recursive() array_multisort() array_product() array_push(), array_pop(), array_shift(), array_unshift() array_pad() array_rand() array_reduce() array_reverse() array_search() array_slice() array_splice() array_sum() array_values() array_unique() array_walk() array_walk_recursive() compact() count() extract() getopt() in_array() min() max() natsort(), natcasesort() range() shuffle() end(), prev(), next(), reset(), current(), key() sort(), rsort() asort(), arsort() ksort(), krsort() usort(), uasort(), uksort() array_diff(), array_udiff() array_diff_assoc(), array_diff_uassoc(), array_udiff_assoc(), array_udiff_uassoc() array_diff_key(), array_diff_ukey() array_intersect(), array_uintersect() array_intersect_assoc(), array_uintersect_assoc() array_intersect_uassoc(), array_uintersect_uassoc() array_intersect_key(), array_intersect_ukey() info.c ------ phpinfo() phpversion() phpcredits() php_logo_guid() php_real_logo_guid() php_egg_logo_guid() zend_logo_guid() php_sapi_name() php_uname() php_ini_scanned_files() string.c -------- addcslashes() addslashes() basename() bin2hex() chr() chunk_split() count_chars() dirname() explode() hebrev(), hebrevc() implode() levenshtein() localeconv() metaphone() money_format() nl_langinfo() nl2br() ord() pathinfo() quotemeta() range() similar_text() str_pad() str_repeat() str_replace() stri_replace() str_rot13() str_shuffle() str_split() str_word_count() strcoll() strcspn() strip_tags() stripcslashes() stripslashes() stripos() stristr() strnatcmp(), strnatcasecmp() strpbrk() strpos() strrchr() strripos() strrev() strrpos() strspn() strstr() strtok() strtolower() strtoupper() strtr() substr() substr_compare() substr_count() substr_replace() trim() ucfirst() ucwords() ext/spl ----------- Completed: php_spl.c class_implements() class_parents() spl_autoload() spl_autoload_call() spl_autoload_extensions() spl_autoload_functions() spl_autoload_register() spl_autoload_unregister() spl_classes() spl_object_hash() spl_array.c class ArrayObject class ArrayIterator class RecursiveArrayIterator spl_directory.c class SplFileInfo class DirectoryIterator class RecursiveDirectoryIterator class SplFileObject class SplTempFileObject spl_exceptions.c class BadFunctionCallException class BadMethodCallException class DomainException class InvalidArgumentException class LengthException class LogicException class OutOfBoundsException class OutOfRangeException class OverflowException class RangeException class RuntimeException class UnderflowException class UnexpectedValueException spl_iterators.c iterator_to_array() iterator_count() iterator_apply() class RecursiveIteratorIterator class AppendIterator class ArrayIterator class ArrayObject class CachingIterator class DirectoryIterator class EmptyIterator class FilterIterator class InfiniteIterator class IteratorIterator class LimitIterator class NoRewindIterator class ParentIterator class RecursiveCachingIterator class RecursiveFilterIterator class RecursiveIteratorIterator class RecursiveRegexIterator class RegexIterator spl_observer.c class SplObjectStorage spl_sxe.c class SimpleXMLIteraotr ext/sysvmsg ----------- Completed: msg_get_queue() msg_send() msg_receive() msg_remove_queue() msg_stat_queue() msg_set_queue() ext/sysvsem ----------- Completed: sem_get() sem_acquire() sem_release() sem_remove() ext/sysvshm ----------- Completed: shm_attach() shm_remove() shm_detach() shm_put_var() shm_has_var() shm_get_var() shm_remove_var() ext/tidy -------- TBD: tidy_get_body() tidy_get_head() tidy_get_html() tidy_get_root() tidy_parse_file() tidy_repair_file() tidy_repair_string() Completed: tidy_access_count() tidy_clean_repair() tidy_config_count() tidy_diagnose() tidy_error_count() tidy_get_config() tidy_get_error_buffer() tidy_get_html_ver() tidy_getopt() tidy_get_opt_doc() tidy_get_output() tidy_get_release() tidy_get_status() tidy_is_xhtml() tidy_is_xml() tidy_parse_string() tidy_warning_count() tidyNode::getParent() tidyNode::hasChildren() tidyNode::hasSiblings() tidyNode::isAsp() tidyNode::isComment() tidyNode::isHtml() tidyNode::isJste() tidyNode::isPhp() tidyNode::isText() ext/xml ------- TBD: xml_parse() xml_parse_into_struct() xml_parser_create() xml_parser_create_ns() xml_parser_set_option() Completed: utf8_decode() utf8_encode() xml_error_string() xml_get_current_byte_index() xml_get_current_column_number() xml_get_current_line_number() xml_get_error_code() xml_parser_free() xml_parser_get_option() xml_set_character_data_handler() xml_set_default_handler() xml_set_element_handler() xml_set_end_namespace_decl_handler() xml_set_external_entity_ref_handler() xml_set_notation_decl_handler() xml_set_object() xml_set_processing_instruction_handler() xml_set_start_namespace_decl_handler() xml_set_unparsed_entity_decl_handler() ext/xmlreader ------------- Completed: XMLReader::close() XMLReader::expand() XMLReader::getAttribute() XMLReader::getAttributeNo() XMLReader::getAttributeNs() XMLReader::getParserProperty() XMLReader::isValid() XMLReader::lookupNamespace() XMLReader::moveToAttribute() XMLReader::moveToAttributeNo() XMLReader::moveToAttributeNs() XMLReader::moveToElement() XMLReader::moveToFirstAttribute() XMLReader::moveToNextAttribute() XMLReader::next() XMLReader::open() XMLReader::read() XMLReader::readInnerXml() XMLReader::readOuterXml() XMLReader::readString() XMLReader::setParserProperty() XMLReader::setRelaxNGSchema() XMLReader::setRelaxNGSchemaSource() XMLReader::setSchema() XMLReader::XML() ext/xmlwriter ------------- Completed: xmlwriter_end_attribute() xmlwriter_end_cdata() xmlwriter_end_comment() xmlwriter_end_document() xmlwriter_end_dtd() xmlwriter_end_dtd_attlist() xmlwriter_end_dtd_element() xmlwriter_end_dtd_entity() xmlwriter_end_element() xmlwriter_end_pi() xmlwriter_flush() xmlwriter_full_end_element() xmlwriter_open_memory() xmlwriter_open_uri() xmlwriter_output_memory() xmlwriter_set_indent() xmlwriter_set_indent_string() xmlwriter_start_attribute() xmlwriter_start_attribute_ns() xmlwriter_start_cdata() xmlwriter_start_comment() xmlwriter_start_document() xmlwriter_start_dtd() xmlwriter_start_dtd_attlist() xmlwriter_start_dtd_element() xmlwriter_start_dtd_entity() xmlwriter_start_element() xmlwriter_start_element_ns() xmlwriter_start_pi() xmlwriter_text() xmlwriter_write_attribute() xmlwriter_write_attribute_ns() xmlwriter_write_cdata() xmlwriter_write_comment() xmlwriter_write_dtd() xmlwriter_write_dtd_attlist() xmlwriter_write_dtd_element() xmlwriter_write_dtd_entity() xmlwriter_write_element() xmlwriter_write_element_ns() xmlwriter_write_pi() xmlwriter_write_raw() ext/xsl ------- Completed: xsl_xsltprocessor_get_parameter() xsl_xsltprocessor_has_exslt_support() xsl_xsltprocessor_import_stylesheet() xsl_xsltprocessor_register_php_functions() xsl_xsltprocessor_remove_parameter() xsl_xsltprocessor_set_parameter() xsl_xsltprocessor_transform_to_doc() xsl_xsltprocessor_transform_to_uri() xsl_xsltprocessor_transform_to_xml() ext/zlib -------- TBD: zlib_filter.c zlib_fopen_wrapper.c Completed: gzcompress() gzuncompress() gzdeflate() gzinflate() gzencode() gzdecode() zlib_encode() zlib_decode() zlib_get_coding_type() readgzfile() gzrewind() gzclose() gzeof() gzgetc() gzgets() gzgetss() gzread() gzopen() gzpassthru() gzseek() gztell() gzwrite() gzputs() gzfile() gzcompress() gzuncompress() Zend Engine ----------- Status: In Progress TBD: debug_backtrace() Completed: class_exists() create_function() debug_print_backtrace() define() defined() each() error_reporting() extension_loaded() func_get_arg() func_get_args() func_num_args() function_exists() get_class() get_class_methods() get_class_vars() get_declared_classes() get_declared_interfaces() get_defined_constants() get_defined_functions() get_defined_vars() get_extension_funcs() get_included_files() get_loaded_extensions() get_object_vars() get_parent_class() get_resource_type() interface_exists() is_a() is_subclass_of() method_exists() property_exists() restore_error_handler() restore_exception_handler() set_error_handler() set_exception_handler() strcasecmp() strcmp() strlen() strncasecmp() strncmp() trigger_error() zend_thread_id() zend_version() vim: set et ts=4 sts=4: