diff options
Diffstat (limited to 'umbrello/umbrello/codegenerators/php5writer.cpp')
-rw-r--r-- | umbrello/umbrello/codegenerators/php5writer.cpp | 3418 |
1 files changed, 3418 insertions, 0 deletions
diff --git a/umbrello/umbrello/codegenerators/php5writer.cpp b/umbrello/umbrello/codegenerators/php5writer.cpp new file mode 100644 index 00000000..044d3afe --- /dev/null +++ b/umbrello/umbrello/codegenerators/php5writer.cpp @@ -0,0 +1,3418 @@ +/*************************************************************************** + begin : Thu Oct 17 2002 + copyright : (C) 2002 by Heiko Nardmann + email : h.nardmann@secunet.de + (C) 2003-2006 Umbrello UML Modeller Authors <uml-devel@uml.sf.net> + php5 version by Thorsten Kunz (tk AT bytecrash DOT net) + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include "php5writer.h" + +#include <kdebug.h> +#include <qregexp.h> +#include <qtextstream.h> + +#include "../umldoc.h" +#include "../classifier.h" +#include "../association.h" +#include "../attribute.h" +#include "../operation.h" +#include "../umlnamespace.h" + +static const char *php5words[] = + { + "abs", + "abstract", + "acos", + "acosh", + "add", + "addAction", + "addColor", + "addEntry", + "addFill", + "addShape", + "addString", + "add_namespace", + "addcslashes", + "addslashes", + "addstring", + "aggregate", + "aggregate_info", + "aggregate_methods", + "aggregate_methods_by_list", + "aggregate_methods_by_regexp", + "aggregate_properties", + "aggregate_properties_by_list", + "aggregate_properties_by_regexp", + "aggregation_info", + "align", + "apache_child_terminate", + "apache_lookup_uri", + "apache_note", + "apache_request_headers", + "apache_response_headers", + "apache_setenv", + "append_child", + "append_sibling", + "array", + "array_change_key_case", + "array_chunk", + "array_count_values", + "array_diff", + "array_diff_assoc", + "array_fill", + "array_filter", + "array_flip", + "array_intersect", + "array_intersect_assoc", + "array_key_exists", + "array_keys", + "array_map", + "array_merge", + "array_merge_recursive", + "array_multisort", + "array_pad", + "array_pop", + "array_push", + "array_rand", + "array_reduce", + "array_reverse", + "array_search", + "array_shift", + "array_slice", + "array_splice", + "array_sum", + "array_unique", + "array_unshift", + "array_values", + "array_walk", + "arsort", + "ascii2ebcdic", + "asin", + "asinh", + "asort", + "aspell_check", + "aspell_new", + "aspell_suggest", + "assert", + "assert_options", + "assign", + "atan", + "atan2", + "atanh", + "attreditable", + "attributes", + "base64_decode", + "base64_encode", + "base_convert", + "basename", + "bcadd", + "bccomp", + "bcdiv", + "bcmod", + "bcmul", + "bcpow", + "bcpowmod", + "bcscale", + "bcsqrt", + "bcsub", + "bin2hex", + "bindec", + "bindtextdomain", + "bind_textdomain_codeset", + "bool", + "break", + "bzclose", + "bzcompress", + "bzdecompress", + "bzerrno", + "bzerror", + "bzerrstr", + "bzflush", + "bzopen", + "bzread", + "bzwrite", + "cal_days_in_month", + "cal_from_jd", + "cal_info", + "call_user_func", + "call_user_func_array", + "call_user_method", + "call_user_method_array", + "cal_to_jd", + "ccvs_add", + "ccvs_auth", + "ccvs_command", + "ccvs_count", + "ccvs_delete", + "ccvs_done", + "ccvs_init", + "ccvs_lookup", + "ccvs_new", + "ccvs_report", + "ccvs_return", + "ccvs_reverse", + "ccvs_sale", + "ccvs_status", + "ccvs_textvalue", + "ccvs_void", + "ceil", + "chdir", + "checkdate", + "checkdnsrr", + "checkin", + "checkout", + "chgrp", + "child_nodes", + "children", + "chmod", + "chop", + "chown", + "chr", + "chroot", + "chunk_split", + "class", + "class_exists", + "clearstatcache", + "clone_node", + "closedir", + "closelog", + "com_addref", + "com_get", + "com_invoke", + "com_isenum", + "com_load", + "com_load_typelib", + "compact", + "com_propget", + "com_propput", + "com_propset", + "com_release", + "com_set", + "connection_aborted", + "connection_status", + "connection_timeout", + "constant", + "content", + "continue", + "convert_cyr_string", + "_COOKIE", + "copy", + "cos", + "cosh", + "count", + "count_chars", + "cpdf_add_annotation", + "cpdf_add_outline", + "cpdf_arc", + "cpdf_begin_text", + "cpdf_circle", + "cpdf_clip", + "cpdf_close", + "cpdf_closepath", + "cpdf_closepath_fill_stroke", + "cpdf_closepath_stroke", + "cpdf_continue_text", + "cpdf_curveto", + "cpdf_end_text", + "cpdf_fill", + "cpdf_fill_stroke", + "cpdf_finalize", + "cpdf_finalize_page", + "cpdf_global_set_document_limits", + "cpdf_import_jpeg", + "cpdf_lineto", + "cpdf_moveto", + "cpdf_newpath", + "cpdf_open", + "cpdf_output_buffer", + "cpdf_page_init", + "cpdf_place_inline_image", + "cpdf_rect", + "cpdf_restore", + "cpdf_rlineto", + "cpdf_rmoveto", + "cpdf_rotate", + "cpdf_rotate_text", + "cpdf_save", + "cpdf_save_to_file", + "cpdf_scale", + "cpdf_set_action_url", + "cpdf_set_char_spacing", + "cpdf_set_creator", + "cpdf_set_current_page", + "cpdf_setdash", + "cpdf_setflat", + "cpdf_set_font", + "cpdf_set_font_directories", + "cpdf_set_font_map_file", + "cpdf_setgray", + "cpdf_setgray_fill", + "cpdf_setgray_stroke", + "cpdf_set_horiz_scaling", + "cpdf_set_keywords", + "cpdf_set_leading", + "cpdf_setlinecap", + "cpdf_setlinejoin", + "cpdf_setlinewidth", + "cpdf_setmiterlimit", + "cpdf_set_page_animation", + "cpdf_setrgbcolor", + "cpdf_setrgbcolor_fill", + "cpdf_setrgbcolor_stroke", + "cpdf_set_subject", + "cpdf_set_text_matrix", + "cpdf_set_text_pos", + "cpdf_set_text_rendering", + "cpdf_set_text_rise", + "cpdf_set_title", + "cpdf_set_viewer_preferences", + "cpdf_set_word_spacing", + "cpdf_show", + "cpdf_show_xy", + "cpdf_stringwidth", + "cpdf_stroke", + "cpdf_text", + "cpdf_translate", + "crack_check", + "crack_closedict", + "crack_getlastmessage", + "crack_opendict", + "crc32", + "create_attribute", + "create_cdata_section", + "create_comment", + "create_element", + "create_element_ns", + "create_entity_reference", + "create_function", + "create_processing_instruction", + "create_text_node", + "crypt", + "ctype_alnum", + "ctype_alpha", + "ctype_cntrl", + "ctype_digit", + "ctype_graph", + "ctype_lower", + "ctype_print", + "ctype_punct", + "ctype_space", + "ctype_upper", + "ctype_xdigit", + "curl_close", + "curl_errno", + "curl_error", + "curl_exec", + "curl_getinfo", + "curl_init", + "curl_setopt", + "curl_version", + "current", + "cybercash_base64_decode", + "cybercash_base64_encode", + "cybercash_decr", + "cybercash_encr", + "cybermut_creerformulairecm", + "cybermut_creerreponsecm", + "cybermut_testmac", + "cyrus_authenticate", + "cyrus_bind", + "cyrus_close", + "cyrus_connect", + "cyrus_query", + "cyrus_unbind", + "data", + "date", + "dba_close", + "dba_delete", + "dba_exists", + "dba_fetch", + "dba_firstkey", + "dba_handlers", + "dba_insert", + "dba_list", + "dba_nextkey", + "dba_open", + "dba_optimize", + "dba_popen", + "dba_replace", + "dbase_add_record", + "dbase_close", + "dbase_create", + "dbase_delete_record", + "dbase_get_record", + "dbase_get_record_with_names", + "dbase_numfields", + "dbase_numrecords", + "dbase_open", + "dbase_pack", + "dbase_replace_record", + "dba_sync", + "dblist", + "dbmclose", + "dbmdelete", + "dbmexists", + "dbmfetch", + "dbmfirstkey", + "dbminsert", + "dbmnextkey", + "dbmopen", + "dbmreplace", + "dbplus_add", + "dbplus_aql", + "dbplus_chdir", + "dbplus_close", + "dbplus_curr", + "dbplus_errcode", + "dbplus_errno", + "dbplus_find", + "dbplus_first", + "dbplus_flush", + "dbplus_freealllocks", + "dbplus_freelock", + "dbplus_freerlocks", + "dbplus_getlock", + "dbplus_getunique", + "dbplus_info", + "dbplus_last", + "dbplus_lockrel", + "dbplus_next", + "dbplus_open", + "dbplus_prev", + "dbplus_rchperm", + "dbplus_rcreate", + "dbplus_rcrtexact", + "dbplus_rcrtlike", + "dbplus_resolve", + "dbplus_restorepos", + "dbplus_rkeys", + "dbplus_ropen", + "dbplus_rquery", + "dbplus_rrename", + "dbplus_rsecindex", + "dbplus_runlink", + "dbplus_rzap", + "dbplus_savepos", + "dbplus_setindex", + "dbplus_setindexbynumber", + "dbplus_sql", + "dbplus_tcl", + "dbplus_tremove", + "dbplus_undo", + "dbplus_undoprepare", + "dbplus_unlockrel", + "dbplus_unselect", + "dbplus_update", + "dbplus_xlockrel", + "dbplus_xunlockrel", + "dbstat", + "dbx_close", + "dbx_compare", + "dbx_connect", + "dbx_error", + "dbx_escape_string", + "dbx_query", + "dbx_sort", + "dcgettext", + "dcngettext", + "dcstat", + "deaggregate", + "debug_backtrace", + "debugger_off", + "debugger_on", + "decbin", + "dechex", + "declare", + "decoct", + "DEFAULT_INCLUDE_PATH", + "define", + "defined", + "define_syslog_variables", + "deg2rad", + "delete", + "description", + "dgettext", + "die", + "dio_close", + "dio_fcntl", + "dio_open", + "dio_read", + "dio_seek", + "dio_stat", + "dio_tcsetattr", + "dio_truncate", + "dio_write", + "dir", + "dirname", + "disk_free_space", + "diskfreespace", + "disk_total_space", + "dl", + "dngettext", + "dns_check_record", + "dns_get_mx", + "dns_get_record", + "do", + "doctype", + "document_element", + "DOCUMENT_ROOT", + "domxml_new_doc", + "domxml_open_file", + "domxml_open_mem", + "domxml_version", + "domxml_xmltree", + "domxml_xslt_stylesheet", + "domxml_xslt_stylesheet_doc", + "domxml_xslt_stylesheet_file", + "dotnet_load", + "doubleval", + "drawCurve", + "drawCurveTo", + "drawLine", + "drawLineTo", + "dstanchors", + "dstofsrcanchors", + "dump_file", + "dump_mem", + "dump_node", + "each", + "E_ALL", + "easter_date", + "easter_days", + "ebcdic2ascii", + "echo", + "E_COMPILE_ERROR", + "E_COMPILE_WARNING", + "E_CORE_ERROR", + "E_CORE_WARNING", + "E_ERROR", + "else", + "elseif", + "empty", + "end", + "endfor", + "endforeach", + "endif", + "endswitch", + "endwhile", + "E_NOTICE", + "entities", + "_ENV", + "E_PARSE", + "ereg", + "eregi", + "eregi_replace", + "ereg_replace", + "error_log", + "error_reporting", + "escapeshellarg", + "escapeshellcmd", + "E_USER_ERROR", + "E_USER_NOTICE", + "E_USER_WARNING", + "eval", + "E_WARNING", + "exec", + "exif_imagetype", + "exif_read_data", + "exif_thumbnail", + "exit", + "exp", + "explode", + "expm1", + "extension_loaded", + "extract", + "ezmlm_hash", + "FALSE", + "fbsql_affected_rows", + "fbsql_autocommit", + "fbsql_change_user", + "fbsql_close", + "fbsql_commit", + "fbsql_connect", + "fbsql_create_blob", + "fbsql_create_clob", + "fbsql_create_db", + "fbsql_database", + "fbsql_database_password", + "fbsql_data_seek", + "fbsql_db_query", + "fbsql_db_status", + "fbsql_drop_db", + "fbsql_errno", + "fbsql_error", + "fbsql_fetch_array", + "fbsql_fetch_assoc", + "fbsql_fetch_field", + "fbsql_fetch_lengths", + "fbsql_fetch_object", + "fbsql_fetch_row", + "fbsql_field_flags", + "fbsql_field_len", + "fbsql_field_name", + "fbsql_field_seek", + "fbsql_field_table", + "fbsql_field_type", + "fbsql_free_result", + "fbsql_get_autostart_info", + "fbsql_hostname", + "fbsql_insert_id", + "fbsql_list_dbs", + "fbsql_list_fields", + "fbsql_list_tables", + "fbsql_next_result", + "fbsql_num_fields", + "fbsql_num_rows", + "fbsql_password", + "fbsql_pconnect", + "fbsql_query", + "fbsql_read_blob", + "fbsql_read_clob", + "fbsql_result", + "fbsql_rollback", + "fbsql_select_db", + "fbsql_set_lob_mode", + "fbsql_set_transaction", + "fbsql_start_db", + "fbsql_stop_db", + "fbsql_tablename", + "fbsql_username", + "fbsql_warnings", + "fclose", + "fdf_add_doc_javascript", + "fdf_add_template", + "fdf_close", + "fdf_create", + "fdf_errno", + "fdf_error", + "fdf_get_ap", + "fdf_get_attachment", + "fdf_get_encoding", + "fdf_get_file", + "fdf_get_status", + "fdf_get_value", + "fdf_get_version", + "fdf_header", + "fdf_next_field_name", + "fdf_open", + "fdf_open_string", + "fdf_save", + "fdf_save_string", + "fdf_set_ap", + "fdf_set_encoding", + "fdf_set_file", + "fdf_set_flags", + "fdf_set_javascript_action", + "fdf_set_opt", + "fdf_set_status", + "fdf_set_submit_form_action", + "fdf_set_target_frame", + "fdf_set_value", + "fdf_set_version", + "feof", + "fflush", + "fgetc", + "fgetcsv", + "fgets", + "fgetss", + "file", + "__FILE__", + "fileatime", + "filectime", + "file_exists", + "file_get_contents", + "filegroup", + "fileinode", + "filemtime", + "fileowner", + "fileperms", + "filepro", + "filepro_fieldcount", + "filepro_fieldname", + "filepro_fieldtype", + "filepro_fieldwidth", + "filepro_retrieve", + "filepro_rowcount", + "_FILES", + "filesize", + "filetype", + "find", + "first_child", + "floatval", + "flock", + "floor", + "flush", + "fmod", + "fnmatch", + "fopen", + "for", + "foreach", + "fpassthru", + "fprintf", + "fputs", + "fread", + "frenchtojd", + "fribidi_log2vis", + "fscanf", + "fseek", + "fsockopen", + "fstat", + "ftell", + "ftok", + "ftp_cdup", + "ftp_chdir", + "ftp_close", + "ftp_connect", + "ftp_delete", + "ftp_exec", + "ftp_fget", + "ftp_fput", + "ftp_get", + "ftp_get_option", + "ftp_login", + "ftp_mdtm", + "ftp_mkdir", + "ftp_nb_continue", + "ftp_nb_fget", + "ftp_nb_fput", + "ftp_nb_get", + "ftp_nb_put", + "ftp_nlist", + "ftp_pasv", + "ftp_put", + "ftp_pwd", + "ftp_quit", + "ftp_rawlist", + "ftp_rename", + "ftp_rmdir", + "ftp_set_option", + "ftp_site", + "ftp_size", + "ftp_ssl_connect", + "ftp_systype", + "ftruncate", + "ftstat", + "func_get_arg", + "func_get_args", + "func_num_args", + "function", + "function_exists", + "fwrite", + "GATEWAY_INTERFACE", + "gd_info", + "_GET", + "getallheaders", + "get_attribute", + "get_attribute_node", + "get_browser", + "get_cfg_var", + "get_class", + "get_class_methods", + "get_class_vars", + "get_content", + "get_current_user", + "getcwd", + "getdate", + "get_declared_classes", + "get_defined_constants", + "get_defined_functions", + "get_defined_vars", + "get_element_by_id", + "get_elements_by_tagname", + "getenv", + "get_extension_funcs", + "getHeight", + "gethostbyaddr", + "gethostbyname", + "gethostbynamel", + "get_html_translation_table", + "getimagesize", + "get_included_files", + "get_include_path", + "getlastmod", + "get_loaded_extensions", + "get_magic_quotes_gpc", + "get_magic_quotes_runtime", + "get_meta_tags", + "getmxrr", + "getmygid", + "getmyinode", + "getmypid", + "getmyuid", + "get_object_vars", + "getopt", + "get_parent_class", + "getprotobyname", + "getprotobynumber", + "getrandmax", + "get_required_files", + "get_resource_type", + "getrusage", + "getservbyname", + "getservbyport", + "getshape1", + "getshape2", + "gettext", + "gettimeofday", + "gettype", + "getwidth", + "getWidth", + "glob", + "global", + "GLOBALS", + "gmdate", + "gmmktime", + "gmp_abs", + "gmp_add", + "gmp_and", + "gmp_clrbit", + "gmp_cmp", + "gmp_com", + "gmp_div", + "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_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_sqrtrm", + "gmp_strval", + "gmp_sub", + "gmp_xor", + "gmstrftime", + "gregoriantojd", + "gzclose", + "gzcompress", + "gzdeflate", + "gzencode", + "gzeof", + "gzfile", + "gzgetc", + "gzgets", + "gzgetss", + "gzinflate", + "gzopen", + "gzpassthru", + "gzputs", + "gzread", + "gzrewind", + "gzseek", + "gztell", + "gzuncompress", + "gzwrite", + "has_attribute", + "has_attributess", + "has_child_nodes", + "header", + "headers_sent", + "hebrev", + "hebrevc", + "hexdec", + "highlight_file", + "highlight_string", + "html_dump_mem", + "htmlentities", + "html_entity_decode", + "htmlspecialchars", + "HTTP_ACCEPT", + "HTTP_ACCEPT_CHARSET", + "HTTP_ACCEPT_LANGUAGE", + "HTTP_CONNECTION", + "HTTP_COOKIE_VARS", + "HTTP_ENCODING", + "HTTP_ENV_VARS", + "HTTP_GET_VARS", + "HTTP_HOST", + "HTTP_POST_FILES", + "HTTP_POST_VARS", + "HTTP_RAW_POST_DATA", + "HTTP_REFERER", + "HTTP_SERVER_VARS", + "HTTP_SESSION_VARS", + "HTTP_STATE_VARS", + "HTTP_USER_AGENT", + "hw_api_attribute", + "hw_api_content", + "hwapi_hgcsp", + "hw_api_object", + "hw_Array2Objrec", + "hw_changeobject", + "hw_Children", + "hw_ChildrenObj", + "hw_Close", + "hw_Connect", + "hw_connection_info", + "hw_Cp", + "hw_Deleteobject", + "hw_DocByAnchor", + "hw_DocByAnchorObj", + "hw_Document_Attributes", + "hw_Document_BodyTag", + "hw_Document_Content", + "hw_Document_SetContent", + "hw_Document_Size", + "hw_dummy", + "hw_EditText", + "hw_Error", + "hw_ErrorMsg", + "hw_Free_Document", + "hw_GetAnchors", + "hw_GetAnchorsObj", + "hw_GetAndLock", + "hw_GetChildColl", + "hw_GetChildCollObj", + "hw_GetChildDocColl", + "hw_GetChildDocCollObj", + "hw_GetObject", + "hw_GetObjectByQuery", + "hw_GetObjectByQueryColl", + "hw_GetObjectByQueryCollObj", + "hw_GetObjectByQueryObj", + "hw_GetParents", + "hw_GetParentsObj", + "hw_getrellink", + "hw_GetRemote", + "hw_GetRemoteChildren", + "hw_GetSrcByDestObj", + "hw_GetText", + "hw_getusername", + "hw_Identify", + "hw_InCollections", + "hw_Info", + "hw_InsColl", + "hw_InsDoc", + "hw_insertanchors", + "hw_InsertDocument", + "hw_InsertObject", + "hw_mapid", + "hw_Modifyobject", + "hw_Mv", + "hw_New_Document", + "hw_Objrec2Array", + "hw_Output_Document", + "hw_pConnect", + "hw_PipeDocument", + "hw_Root", + "hw_setlinkroot", + "hw_stat", + "hwstat", + "hw_Unlock", + "hw_Who", + "hypot", + "ibase_blob_add", + "ibase_blob_cancel", + "ibase_blob_close", + "ibase_blob_create", + "ibase_blob_echo", + "ibase_blob_get", + "ibase_blob_import", + "ibase_blob_info", + "ibase_blob_open", + "ibase_close", + "ibase_commit", + "ibase_connect", + "ibase_errmsg", + "ibase_execute", + "ibase_fetch_object", + "ibase_fetch_row", + "ibase_field_info", + "ibase_free_query", + "ibase_free_result", + "ibase_num_fields", + "ibase_pconnect", + "ibase_prepare", + "ibase_query", + "ibase_rollback", + "ibase_timefmt", + "ibase_trans", + "iconv", + "iconv_get_encoding", + "iconv_set_encoding", + "identify", + "if", + "ifx_affected_rows", + "ifx_blobinfile_mode", + "ifx_byteasvarchar", + "ifx_close", + "ifx_connect", + "ifx_copy_blob", + "ifx_create_blob", + "ifx_create_char", + "ifx_do", + "ifx_error", + "ifx_errormsg", + "ifx_fetch_row", + "ifx_fieldproperties", + "ifx_fieldtypes", + "ifx_free_blob", + "ifx_free_char", + "ifx_free_result", + "ifx_get_blob", + "ifx_get_char", + "ifx_getsqlca", + "ifx_htmltbl_result", + "ifx_nullformat", + "ifx_num_fields", + "ifx_num_rows", + "ifx_pconnect", + "ifx_prepare", + "ifx_query", + "ifx_textasvarchar", + "ifx_update_blob", + "ifx_update_char", + "ifxus_close_slob", + "ifxus_create_slob", + "ifxus_free_slob", + "ifxus_open_slob", + "ifxus_read_slob", + "ifxus_seek_slob", + "ifxus_tell_slob", + "ifxus_write_slob", + "ignore_user_abort", + "image2wbmp", + "imagealphablending", + "imagearc", + "imagechar", + "imagecharup", + "imagecolorallocate", + "imagecolorallocatealpha", + "imagecolorat", + "imagecolorclosest", + "imagecolorclosestalpha", + "imagecolorclosesthwb", + "imagecolordeallocate", + "imagecolorexact", + "imagecolorexactalpha", + "imagecolorresolve", + "imagecolorresolvealpha", + "imagecolorset", + "imagecolorsforindex", + "imagecolorstotal", + "imagecolortransparent", + "imagecopy", + "imagecopymerge", + "imagecopymergegray", + "imagecopyresampled", + "imagecopyresized", + "imagecreate", + "imagecreatefromgd", + "imagecreatefromgd2", + "imagecreatefromgd2part", + "imagecreatefromgif", + "imagecreatefromjpeg", + "imagecreatefrompng", + "imagecreatefromstring", + "imagecreatefromwbmp", + "imagecreatefromxbm", + "imagecreatefromxpm", + "imagecreatetruecolor", + "imagedashedline", + "imagedestroy", + "imageellipse", + "imagefill", + "imagefilledarc", + "imagefilledellipse", + "imagefilledpolygon", + "imagefilledrectangle", + "imagefilltoborder", + "imagefontheight", + "imagefontwidth", + "imageftbbox", + "imagefttext", + "imagegammacorrect", + "imagegd", + "imagegd2", + "imagegif", + "imageinterlace", + "imagejpeg", + "imageline", + "imageloadfont", + "imagepalettecopy", + "imagepng", + "imagepolygon", + "imagepsbbox", + "imagepscopyfont", + "imagepsencodefont", + "imagepsextendfont", + "imagepsfreefont", + "imagepsloadfont", + "imagepsslantfont", + "imagepstext", + "imagerectangle", + "imagerotate", + "imagesetbrush", + "imagesetpixel", + "imagesetstyle", + "imagesetthickness", + "imagesettile", + "imagestring", + "imagestringup", + "imagesx", + "imagesy", + "imagetruecolortopalette", + "imagettfbbox", + "imagettftext", + "imagetypes", + "image_type_to_mime_type", + "imagewbmp", + "imap_8bit", + "imap_alerts", + "imap_append", + "imap_base64", + "imap_binary", + "imap_body", + "imap_bodystruct", + "imap_check", + "imap_clearflag_full", + "imap_close", + "imap_createmailbox", + "imap_delete", + "imap_deletemailbox", + "imap_errors", + "imap_expunge", + "imap_fetchbody", + "imap_fetchheader", + "imap_fetch_overview", + "imap_fetchstructure", + "imap_getmailboxes", + "imap_get_quota", + "imap_get_quotaroot", + "imap_getsubscribed", + "imap_header", + "imap_headerinfo", + "imap_headers", + "imap_last_error", + "imap_list", + "imap_listmailbox", + "imap_listscan", + "imap_listsubscribed", + "imap_lsub", + "imap_mail", + "imap_mailboxmsginfo", + "imap_mail_compose", + "imap_mail_copy", + "imap_mail_move", + "imap_mime_header_decode", + "imap_msgno", + "imap_num_msg", + "imap_num_recent", + "imap_open", + "imap_ping", + "imap_qprint", + "imap_renamemailbox", + "imap_reopen", + "imap_rfc822_parse_adrlist", + "imap_rfc822_parse_headers", + "imap_rfc822_write_address", + "imap_scanmailbox", + "imap_search", + "imap_setacl", + "imap_setflag_full", + "imap_set_quota", + "imap_sort", + "imap_status", + "imap_subscribe", + "imap_thread", + "imap_uid", + "imap_undelete", + "imap_unsubscribe", + "imap_utf7_decode", + "imap_utf7_encode", + "imap_utf8", + "implements", + "implode", + "import_request_variables", + "in_array", + "include", + "include_once", + "info", + "ingres_autocommit", + "ingres_close", + "ingres_commit", + "ingres_connect", + "ingres_fetch_array", + "ingres_fetch_object", + "ingres_fetch_row", + "ingres_field_length", + "ingres_field_name", + "ingres_field_nullable", + "ingres_field_precision", + "ingres_field_scale", + "ingres_field_type", + "ingres_num_fields", + "ingres_num_rows", + "ingres_pconnect", + "ingres_query", + "ingres_rollback", + "ini_alter", + "ini_get", + "ini_get_all", + "ini_restore", + "ini_set", + "insert", + "insertanchor", + "insert_before", + "insertcollection", + "insertdocument", + "int", + "interface", + "internal_subset", + "intval", + "ip2long", + "iptcembed", + "iptcparse", + "ircg_channel_mode", + "ircg_disconnect", + "ircg_fetch_error_msg", + "ircg_get_username", + "ircg_html_encode", + "ircg_ignore_add", + "ircg_ignore_del", + "ircg_is_conn_alive", + "ircg_join", + "ircg_kick", + "ircg_lookup_format_messages", + "ircg_msg", + "ircg_nick", + "ircg_nickname_escape", + "ircg_nickname_unescape", + "ircg_notice", + "ircg_part", + "ircg_pconnect", + "ircg_register_format_messages", + "ircg_set_current", + "ircg_set_file", + "ircg_set_on_die", + "ircg_topic", + "ircg_whois", + "is_a", + "is_array", + "is_blank_node", + "is_bool", + "is_callable", + "is_dir", + "is_double", + "is_executable", + "is_file", + "is_finite", + "is_float", + "is_infinite", + "is_int", + "is_integer", + "is_link", + "is_long", + "is_nan", + "is_null", + "is_numeric", + "is_object", + "is_readable", + "is_real", + "is_resource", + "is_scalar", + "isset", + "is_string", + "is_subclass_of", + "is_uploaded_file", + "is_writable", + "is_writeable", + "java_last_exception_clear", + "java_last_exception_get", + "jddayofweek", + "jdmonthname", + "jdtofrench", + "jdtogregorian", + "jdtojewish", + "jdtojulian", + "jdtounix", + "jewishtojd", + "join", + "jpeg2wbmp", + "juliantojd", + "key", + "krsort", + "ksort", + "langdepvalue", + "last_child", + "lcg_value", + "ldap_8859_to_t61", + "ldap_add", + "ldap_bind", + "ldap_close", + "ldap_compare", + "ldap_connect", + "ldap_count_entries", + "ldap_delete", + "ldap_dn2ufn", + "ldap_err2str", + "ldap_errno", + "ldap_error", + "ldap_explode_dn", + "ldap_first_attribute", + "ldap_first_entry", + "ldap_first_reference", + "ldap_free_result", + "ldap_get_attributes", + "ldap_get_dn", + "ldap_get_entries", + "ldap_get_option", + "ldap_get_values", + "ldap_get_values_len", + "ldap_list", + "ldap_mod_add", + "ldap_mod_del", + "ldap_modify", + "ldap_mod_replace", + "ldap_next_attribute", + "ldap_next_entry", + "ldap_next_reference", + "ldap_parse_reference", + "ldap_parse_result", + "ldap_read", + "ldap_rename", + "ldap_search", + "ldap_set_option", + "ldap_set_rebind_proc", + "ldap_sort", + "ldap_start_tls", + "ldap_t61_to_8859", + "ldap_unbind", + "levenshtein", + "__LINE__", + "link", + "linkinfo", + "list", + "localeconv", + "localtime", + "lock", + "log", + "log10", + "log1p", + "long2ip", + "lstat", + "ltrim", + "mail", + "mailparse_determine_best_xfer_encoding", + "mailparse_msg_create", + "mailparse_msg_extract_part", + "mailparse_msg_extract_part_file", + "mailparse_msg_free", + "mailparse_msg_get_part", + "mailparse_msg_get_part_data", + "mailparse_msg_get_structure", + "mailparse_msg_parse", + "mailparse_msg_parse_file", + "mailparse_rfc822_parse_addresses", + "mailparse_stream_encode", + "mailparse_uudecode_all", + "main", + "max", + "mb_convert_case", + "mb_convert_encoding", + "mb_convert_kana", + "mb_convert_variables", + "mb_decode_mimeheader", + "mb_decode_numericentity", + "mb_detect_encoding", + "mb_detect_order", + "mb_encode_mimeheader", + "mb_encode_numericentity", + "mb_ereg", + "mb_eregi", + "mb_eregi_replace", + "mb_ereg_match", + "mb_ereg_replace", + "mb_ereg_search", + "mb_ereg_search_getpos", + "mb_ereg_search_getregs", + "mb_ereg_search_init", + "mb_ereg_search_pos", + "mb_ereg_search_regs", + "mb_ereg_search_setpos", + "mb_get_info", + "mb_http_input", + "mb_http_output", + "mb_internal_encoding", + "mb_language", + "mb_output_handler", + "mb_parse_str", + "mb_preferred_mime_name", + "mb_regex_encoding", + "mb_regex_set_options", + "mb_send_mail", + "mb_split", + "mb_strcut", + "mb_strimwidth", + "mb_strlen", + "mb_strpos", + "mb_strrpos", + "mb_strtolower", + "mb_strtoupper", + "mb_strwidth", + "mb_substitute_character", + "mb_substr", + "mb_substr_count", + "mcal_append_event", + "mcal_close", + "mcal_create_calendar", + "mcal_date_compare", + "mcal_date_valid", + "mcal_day_of_week", + "mcal_day_of_year", + "mcal_days_in_month", + "mcal_delete_calendar", + "mcal_delete_event", + "mcal_event_add_attribute", + "mcal_event_init", + "mcal_event_set_alarm", + "mcal_event_set_category", + "mcal_event_set_class", + "mcal_event_set_description", + "mcal_event_set_end", + "mcal_event_set_recur_daily", + "mcal_event_set_recur_monthly_mday", + "mcal_event_set_recur_monthly_wday", + "mcal_event_set_recur_none", + "mcal_event_set_recur_weekly", + "mcal_event_set_recur_yearly", + "mcal_event_set_start", + "mcal_event_set_title", + "mcal_expunge", + "mcal_fetch_current_stream_event", + "mcal_fetch_event", + "mcal_is_leap_year", + "mcal_list_alarms", + "mcal_list_events", + "mcal_next_recurrence", + "mcal_open", + "mcal_popen", + "mcal_rename_calendar", + "mcal_reopen", + "mcal_snooze", + "mcal_store_event", + "mcal_time_valid", + "mcal_week_of_year", + "mcrypt_cbc", + "mcrypt_cfb", + "mcrypt_create_iv", + "mcrypt_decrypt", + "mcrypt_ecb", + "mcrypt_enc_get_algorithms_name", + "mcrypt_enc_get_block_size", + "mcrypt_enc_get_iv_size", + "mcrypt_enc_get_key_size", + "mcrypt_enc_get_modes_name", + "mcrypt_enc_get_supported_key_sizes", + "mcrypt_enc_is_block_algorithm", + "mcrypt_enc_is_block_algorithm_mode", + "mcrypt_enc_is_block_mode", + "mcrypt_encrypt", + "mcrypt_enc_self_test", + "mcrypt_generic", + "mcrypt_generic_deinit", + "mcrypt_generic_end", + "mcrypt_generic_init", + "mcrypt_get_block_size", + "mcrypt_get_cipher_name", + "mcrypt_get_iv_size", + "mcrypt_get_key_size", + "mcrypt_list_algorithms", + "mcrypt_list_modes", + "mcrypt_module_close", + "mcrypt_module_get_algo_block_size", + "mcrypt_module_get_algo_key_size", + "mcrypt_module_get_supported_key_sizes", + "mcrypt_module_is_block_algorithm", + "mcrypt_module_is_block_algorithm_mode", + "mcrypt_module_is_block_mode", + "mcrypt_module_open", + "mcrypt_module_self_test", + "mcrypt_ofb", + "mcve_adduser", + "mcve_adduserarg", + "mcve_bt", + "mcve_checkstatus", + "mcve_chkpwd", + "mcve_chngpwd", + "mcve_completeauthorizations", + "mcve_connect", + "mcve_connectionerror", + "mcve_deleteresponse", + "mcve_deletetrans", + "mcve_deleteusersetup", + "mcve_deluser", + "mcve_destroyconn", + "mcve_destroyengine", + "mcve_disableuser", + "mcve_edituser", + "mcve_enableuser", + "mcve_force", + "mcve_getcell", + "mcve_getcellbynum", + "mcve_getcommadelimited", + "mcve_getheader", + "mcve_getuserarg", + "mcve_getuserparam", + "mcve_gft", + "mcve_gl", + "mcve_gut", + "mcve_initconn", + "mcve_initengine", + "mcve_initusersetup", + "mcve_iscommadelimited", + "mcve_liststats", + "mcve_listusers", + "mcve_maxconntimeout", + "mcve_monitor", + "mcve_numcolumns", + "mcve_numrows", + "mcve_override", + "mcve_parsecommadelimited", + "mcve_ping", + "mcve_preauth", + "mcve_preauthcompletion", + "mcve_qc", + "mcve_responseparam", + "mcve_return", + "mcve_returncode", + "mcve_returnstatus", + "mcve_sale", + "mcve_setblocking", + "mcve_setdropfile", + "mcve_setip", + "mcve_setssl", + "mcve_settimeout", + "mcve_settle", + "mcve_text_avs", + "mcve_text_code", + "mcve_text_cv", + "mcve_transactionauth", + "mcve_transactionavs", + "mcve_transactionbatch", + "mcve_transactioncv", + "mcve_transactionid", + "mcve_transactionitem", + "mcve_transactionssent", + "mcve_transactiontext", + "mcve_transinqueue", + "mcve_transnew", + "mcve_transparam", + "mcve_transsend", + "mcve_ub", + "mcve_uwait", + "mcve_verifyconnection", + "mcve_verifysslcert", + "mcve_void", + "md5", + "md5_file", + "mdecrypt_generic", + "memory_get_usage", + "metaphone", + "method_exists", + "mhash", + "mhash_count", + "mhash_get_block_size", + "mhash_get_hash_name", + "mhash_keygen_s2k", + "microtime", + "mime_content_type", + "mimetype", + "min", + "ming_setcubicthreshold", + "ming_setscale", + "ming_useswfversion", + "mkdir", + "mktime", + "money_format", + "move", + "movePen", + "movePenTo", + "moveTo", + "move_uploaded_file", + "msession_connect", + "msession_count", + "msession_create", + "msession_destroy", + "msession_disconnect", + "msession_find", + "msession_get", + "msession_get_array", + "msession_getdata", + "msession_inc", + "msession_list", + "msession_listvar", + "msession_lock", + "msession_plugin", + "msession_randstr", + "msession_set", + "msession_set_array", + "msession_setdata", + "msession_timeout", + "msession_uniq", + "msession_unlock", + "msg_get_queue", + "msg_receive", + "msg_remove_queue", + "msg_send", + "msg_set_queue", + "msg_stat_queue", + "msql", + "msql_affected_rows", + "msql_close", + "msql_connect", + "msql_create_db", + "msql_createdb", + "msql_data_seek", + "msql_dbname", + "msql_drop_db", + "msql_dropdb", + "msql_error", + "msql_fetch_array", + "msql_fetch_field", + "msql_fetch_object", + "msql_fetch_row", + "msql_fieldflags", + "msql_fieldlen", + "msql_fieldname", + "msql_field_seek", + "msql_fieldtable", + "msql_fieldtype", + "msql_free_result", + "msql_freeresult", + "msql_list_dbs", + "msql_listdbs", + "msql_list_fields", + "msql_listfields", + "msql_list_tables", + "msql_listtables", + "msql_num_fields", + "msql_numfields", + "msql_num_rows", + "msql_numrows", + "msql_pconnect", + "msql_query", + "msql_regcase", + "msql_result", + "msql_select_db", + "msql_selectdb", + "msql_tablename", + "mssql_bind", + "mssql_close", + "mssql_connect", + "mssql_data_seek", + "mssql_execute", + "mssql_fetch_array", + "mssql_fetch_assoc", + "mssql_fetch_batch", + "mssql_fetch_field", + "mssql_fetch_object", + "mssql_fetch_row", + "mssql_field_length", + "mssql_field_name", + "mssql_field_seek", + "mssql_field_type", + "mssql_free_result", + "mssql_free_statement", + "mssql_get_last_message", + "mssql_guid_string", + "mssql_init", + "mssql_min_error_severity", + "mssql_min_message_severity", + "mssql_next_result", + "mssql_num_fields", + "mssql_num_rows", + "mssql_pconnect", + "mssql_query", + "mssql_result", + "mssql_rows_affected", + "mssql_select_db", + "mt_getrandmax", + "mt_rand", + "mt_srand", + "multColor", + "muscat_close", + "muscat_get", + "muscat_give", + "muscat_setup", + "muscat_setup_net", + "mysql_affected_rows", + "mysql_change_user", + "mysql_client_encoding", + "mysql_close", + "mysql_connect", + "mysql_create_db", + "mysql_data_seek", + "mysql_db_name", + "mysql_db_query", + "mysql_drop_db", + "mysql_errno", + "mysql_error", + "mysql_escape_string", + "mysql_fetch_array", + "mysql_fetch_assoc", + "mysql_fetch_field", + "mysql_fetch_lengths", + "mysql_fetch_object", + "mysql_fetch_row", + "mysql_field_flags", + "mysql_field_len", + "mysql_field_name", + "mysql_field_seek", + "mysql_field_table", + "mysql_field_type", + "mysql_free_result", + "mysql_get_client_info", + "mysql_get_host_info", + "mysql_get_proto_info", + "mysql_get_server_info", + "mysql_info", + "mysql_insert_id", + "mysql_list_dbs", + "mysql_list_fields", + "mysql_list_processes", + "mysql_list_tables", + "mysql_num_fields", + "mysql_num_rows", + "mysql_pconnect", + "mysql_ping", + "mysql_query", + "mysql_real_escape_string", + "mysql_result", + "mysql_select_db", + "mysql_stat", + "mysql_tablename", + "mysql_thread_id", + "mysql_unbuffered_query", + "name", + "natcasesort", + "natsort", + "ncurses_addch", + "ncurses_addchnstr", + "ncurses_addchstr", + "ncurses_addnstr", + "ncurses_addstr", + "ncurses_assume_default_colors", + "ncurses_attroff", + "ncurses_attron", + "ncurses_attrset", + "ncurses_baudrate", + "ncurses_beep", + "ncurses_bkgd", + "ncurses_bkgdset", + "ncurses_border", + "ncurses_can_change_color", + "ncurses_cbreak", + "ncurses_clear", + "ncurses_clrtobot", + "ncurses_clrtoeol", + "ncurses_color_set", + "ncurses_curs_set", + "ncurses_define_key", + "ncurses_def_prog_mode", + "ncurses_def_shell_mode", + "ncurses_delay_output", + "ncurses_delch", + "ncurses_deleteln", + "ncurses_delwin", + "ncurses_doupdate", + "ncurses_echo", + "ncurses_echochar", + "ncurses_end", + "ncurses_erase", + "ncurses_erasechar", + "ncurses_filter", + "ncurses_flash", + "ncurses_flushinp", + "ncurses_getch", + "ncurses_getmouse", + "ncurses_halfdelay", + "ncurses_has_colors", + "ncurses_has_ic", + "ncurses_has_il", + "ncurses_has_key", + "ncurses_hline", + "ncurses_inch", + "ncurses_init", + "ncurses_init_color", + "ncurses_init_pair", + "ncurses_insch", + "ncurses_insdelln", + "ncurses_insertln", + "ncurses_insstr", + "ncurses_instr", + "ncurses_isendwin", + "ncurses_keyok", + "ncurses_killchar", + "ncurses_longname", + "ncurses_mouseinterval", + "ncurses_mousemask", + "ncurses_move", + "ncurses_mvaddch", + "ncurses_mvaddchnstr", + "ncurses_mvaddchstr", + "ncurses_mvaddnstr", + "ncurses_mvaddstr", + "ncurses_mvcur", + "ncurses_mvdelch", + "ncurses_mvgetch", + "ncurses_mvhline", + "ncurses_mvinch", + "ncurses_mvvline", + "ncurses_mvwaddstr", + "ncurses_napms", + "ncurses_newwin", + "ncurses_nl", + "ncurses_nocbreak", + "ncurses_noecho", + "ncurses_nonl", + "ncurses_noqiflush", + "ncurses_noraw", + "ncurses_putp", + "ncurses_qiflush", + "ncurses_raw", + "ncurses_refresh", + "ncurses_resetty", + "ncurses_savetty", + "ncurses_scr_dump", + "ncurses_scr_init", + "ncurses_scrl", + "ncurses_scr_restore", + "ncurses_scr_set", + "ncurses_slk_attr", + "ncurses_slk_attroff", + "ncurses_slk_attron", + "ncurses_slk_attrset", + "ncurses_slk_clear", + "ncurses_slk_color", + "ncurses_slk_init", + "ncurses_slk_noutrefresh", + "ncurses_slk_refresh", + "ncurses_slk_restore", + "ncurses_slk_touch", + "ncurses_standend", + "ncurses_standout", + "ncurses_start_color", + "ncurses_termattrs", + "ncurses_termname", + "ncurses_timeout", + "ncurses_typeahead", + "ncurses_ungetch", + "ncurses_ungetmouse", + "ncurses_use_default_colors", + "ncurses_use_env", + "ncurses_use_extended_names", + "ncurses_vidattr", + "ncurses_vline", + "ncurses_wrefresh", + "new", + "next", + "nextframe", + "next_sibling", + "ngettext", + "nl2br", + "nl_langinfo", + "node_name", + "node_type", + "node_value", + "notations", + "notes_body", + "notes_copy_db", + "notes_create_db", + "notes_create_note", + "notes_drop_db", + "notes_find_note", + "notes_header_info", + "notes_list_msgs", + "notes_mark_read", + "notes_mark_unread", + "notes_nav_create", + "notes_search", + "notes_unread", + "notes_version", + "NULL", + "number_format", + "ob_clean", + "ob_end_clean", + "ob_end_flush", + "ob_flush", + "ob_get_contents", + "ob_get_length", + "ob_get_level", + "ob_get_status", + "ob_gzhandler", + "ob_iconv_handler", + "ob_implicit_flush", + "object", + "objectbyanchor", + "ob_start", + "ocibindbyname", + "ocicancel", + "OCICollAppend", + "ocicollassign", + "ocicollassignelem", + "ocicollgetelem", + "ocicollmax", + "ocicollsize", + "ocicolltrim", + "ocicolumnisnull", + "ocicolumnname", + "ocicolumnprecision", + "ocicolumnscale", + "ocicolumnsize", + "ocicolumntype", + "ocicolumntyperaw", + "ocicommit", + "ocidefinebyname", + "ocierror", + "ociexecute", + "ocifetch", + "ocifetchinto", + "ocifetchstatement", + "ocifreecollection", + "ocifreecursor", + "OCIFreeDesc", + "ocifreestatement", + "ociinternaldebug", + "ociloadlob", + "ocilogoff", + "ocilogon", + "ocinewcollection", + "ocinewcursor", + "ocinewdescriptor", + "ocinlogon", + "ocinumcols", + "ociparse", + "ociplogon", + "ociresult", + "ocirollback", + "ocirowcount", + "ocisavelob", + "ocisavelobfile", + "ociserverversion", + "ocisetprefetch", + "ocistatementtype", + "ociwritelobtofile", + "octdec", + "odbc_autocommit", + "odbc_binmode", + "odbc_close", + "odbc_close_all", + "odbc_columnprivileges", + "odbc_columns", + "odbc_commit", + "odbc_connect", + "odbc_cursor", + "odbc_data_source", + "odbc_do", + "odbc_error", + "odbc_errormsg", + "odbc_exec", + "odbc_execute", + "odbc_fetch_array", + "odbc_fetch_into", + "odbc_fetch_object", + "odbc_fetch_row", + "odbc_field_len", + "odbc_field_name", + "odbc_field_num", + "odbc_field_precision", + "odbc_field_scale", + "odbc_field_type", + "odbc_foreignkeys", + "odbc_free_result", + "odbc_gettypeinfo", + "odbc_longreadlen", + "odbc_next_result", + "odbc_num_fields", + "odbc_num_rows", + "odbc_pconnect", + "odbc_prepare", + "odbc_primarykeys", + "odbc_procedurecolumns", + "odbc_procedures", + "odbc_result", + "odbc_result_all", + "odbc_rollback", + "odbc_setoption", + "odbc_specialcolumns", + "odbc_statistics", + "odbc_tableprivileges", + "odbc_tables", + "opendir", + "openlog", + "openssl_csr_export", + "openssl_csr_export_to_file", + "openssl_csr_new", + "openssl_csr_sign", + "openssl_error_string", + "openssl_free_key", + "openssl_get_privatekey", + "openssl_get_publickey", + "openssl_open", + "openssl_pkcs7_decrypt", + "openssl_pkcs7_encrypt", + "openssl_pkcs7_sign", + "openssl_pkcs7_verify", + "openssl_pkey_export", + "openssl_pkey_export_to_file", + "openssl_pkey_get_private", + "openssl_pkey_get_public", + "openssl_pkey_new", + "openssl_private_decrypt", + "openssl_private_encrypt", + "openssl_public_decrypt", + "openssl_public_encrypt", + "openssl_seal", + "openssl_sign", + "openssl_verify", + "openssl_x509_check_private_key", + "openssl_x509_checkpurpose", + "openssl_x509_export", + "openssl_x509_export_to_file", + "openssl_x509_free", + "openssl_x509_parse", + "openssl_x509_read", + "ora_bind", + "ora_close", + "ora_columnname", + "ora_columnsize", + "ora_columntype", + "ora_commit", + "ora_commitoff", + "ora_commiton", + "ora_do", + "ora_error", + "ora_errorcode", + "ora_exec", + "ora_fetch", + "ora_fetch_into", + "ora_getcolumn", + "ora_logoff", + "ora_logon", + "ora_numcols", + "ora_numrows", + "ora_open", + "ora_parse", + "ora_plogon", + "ora_rollback", + "ord", + "output", + "overload", + "ovrimos_close", + "ovrimos_commit", + "ovrimos_connect", + "ovrimos_cursor", + "ovrimos_exec", + "ovrimos_execute", + "ovrimos_fetch_into", + "ovrimos_fetch_row", + "ovrimos_field_len", + "ovrimos_field_name", + "ovrimos_field_num", + "ovrimos_field_type", + "ovrimos_free_result", + "ovrimos_longreadlen", + "ovrimos_num_fields", + "ovrimos_num_rows", + "ovrimos_prepare", + "ovrimos_result", + "ovrimos_result_all", + "ovrimos_rollback", + "owner_document", + "pack", + "parent_node", + "parents", + "parse_ini_file", + "parse_str", + "parse_url", + "passthru", + "pathinfo", + "PATH_TRANSLATED", + "pclose", + "pcntl_exec", + "pcntl_fork", + "pcntl_signal", + "pcntl_waitpid", + "pcntl_wexitstatus", + "pcntl_wifexited", + "pcntl_wifsignaled", + "pcntl_wifstopped", + "pcntl_wstopsig", + "pcntl_wtermsig", + "pdf_add_annotation", + "pdf_add_bookmark", + "pdf_add_launchlink", + "pdf_add_locallink", + "pdf_add_note", + "pdf_add_outline", + "pdf_add_pdflink", + "pdf_add_thumbnail", + "pdf_add_weblink", + "pdf_arc", + "pdf_arcn", + "pdf_attach_file", + "pdf_begin_page", + "pdf_begin_pattern", + "pdf_begin_template", + "pdf_circle", + "pdf_clip", + "pdf_close", + "pdf_close_image", + "pdf_closepath", + "pdf_closepath_fill_stroke", + "pdf_closepath_stroke", + "pdf_close_pdi", + "pdf_close_pdi_page", + "pdf_concat", + "pdf_continue_text", + "pdf_curveto", + "pdf_delete", + "pdf_end_page", + "pdf_endpath", + "pdf_end_pattern", + "pdf_end_template", + "pdf_fill", + "pdf_fill_stroke", + "pdf_findfont", + "pdf_get_buffer", + "pdf_get_font", + "pdf_get_fontname", + "pdf_get_fontsize", + "pdf_get_image_height", + "pdf_get_image_width", + "pdf_get_majorversion", + "pdf_get_minorversion", + "pdf_get_parameter", + "pdf_get_pdi_parameter", + "pdf_get_pdi_value", + "pdf_get_value", + "pdf_initgraphics", + "pdf_lineto", + "pdf_makespotcolor", + "pdf_moveto", + "pdf_new", + "pdf_open", + "pdf_open_CCITT", + "pdf_open_file", + "pdf_open_gif", + "pdf_open_image", + "pdf_open_image_file", + "pdf_open_jpeg", + "pdf_open_memory_image", + "pdf_open_pdi", + "pdf_open_pdi_page", + "pdf_open_png", + "pdf_open_tiff", + "pdf_place_image", + "pdf_place_pdi_page", + "pdf_rect", + "pdf_restore", + "pdf_rotate", + "pdf_save", + "pdf_scale", + "pdf_set_border_color", + "pdf_set_border_dash", + "pdf_set_border_style", + "pdf_set_char_spacing", + "pdf_setcolor", + "pdf_setdash", + "pdf_set_duration", + "pdf_setflat", + "pdf_set_font", + "pdf_setfont", + "pdf_setgray", + "pdf_setgray_fill", + "pdf_setgray_stroke", + "pdf_set_horiz_scaling", + "pdf_set_info", + "pdf_set_info_author", + "pdf_set_info_creator", + "pdf_set_info_keywords", + "pdf_set_info_subject", + "pdf_set_info_title", + "pdf_set_leading", + "pdf_setlinecap", + "pdf_setlinejoin", + "pdf_setlinewidth", + "pdf_setmatrix", + "pdf_setmiterlimit", + "pdf_set_parameter", + "pdf_setpolydash", + "pdf_setrgbcolor", + "pdf_setrgbcolor_fill", + "pdf_setrgbcolor_stroke", + "pdf_set_text_matrix", + "pdf_set_text_pos", + "pdf_set_text_rendering", + "pdf_set_text_rise", + "pdf_set_value", + "pdf_set_word_spacing", + "pdf_show", + "pdf_show_boxed", + "pdf_show_xy", + "pdf_skew", + "pdf_stringwidth", + "pdf_stroke", + "pdf_translate", + "PEAR_EXTENSION_DIR", + "PEAR_INSTALL_DIR", + "pfpro_cleanup", + "pfpro_init", + "pfpro_process", + "pfpro_process_raw", + "pfpro_version", + "pfsockopen", + "pg_affected_rows", + "pg_cancel_query", + "pg_client_encoding", + "pg_close", + "pg_connect", + "pg_connection_busy", + "pg_connection_reset", + "pg_connection_status", + "pg_convert", + "pg_copy_from", + "pg_copy_to", + "pg_dbname", + "pg_delete", + "pg_end_copy", + "pg_escape_bytea", + "pg_escape_string", + "pg_fetch_all", + "pg_fetch_array", + "pg_fetch_assoc", + "pg_fetch_object", + "pg_fetch_result", + "pg_fetch_row", + "pg_field_is_null", + "pg_field_name", + "pg_field_num", + "pg_field_prtlen", + "pg_field_size", + "pg_field_type", + "pg_free_result", + "pg_get_notify", + "pg_get_pid", + "pg_get_result", + "pg_host", + "pg_insert", + "pg_last_error", + "pg_last_notice", + "pg_last_oid", + "pg_lo_close", + "pg_lo_create", + "pg_lo_export", + "pg_lo_import", + "pg_lo_open", + "pg_lo_read", + "pg_lo_read_all", + "pg_lo_seek", + "pg_lo_tell", + "pg_lo_unlink", + "pg_lo_write", + "pg_meta_data", + "pg_num_fields", + "pg_num_rows", + "pg_options", + "pg_pconnect", + "pg_ping", + "pg_port", + "pg_put_line", + "pg_query", + "pg_result_error", + "pg_result_seek", + "pg_result_status", + "pg_select", + "pg_send_query", + "pg_set_client_encoding", + "pg_trace", + "pg_tty", + "pg_unescape_bytea", + "pg_untrace", + "pg_update", + "PHP_BINDIR", + "PHP_CONFIG_FILE_PATH", + "phpcredits", + "PHP_DATADIR", + "PHP_ERRMSG", + "PHP_EXTENSION_DIR", + "phpinfo", + "php_ini_scanned_files", + "PHP_LIBDIR", + "PHP_LOCALSTATEDIR", + "php_logo_guid", + "PHP_OS", + "PHP_OUTPUT_HANDLER_CONT", + "PHP_OUTPUT_HANDLER_END", + "PHP_OUTPUT_HANDLER_START", + "php_sapi_name", + "PHP_SELF", + "PHP_SYSCONFDIR", + "php_uname", + "phpversion", + "PHP_VERSION", + "pi", + "png2wbmp", + "popen", + "pos", + "posix_ctermid", + "posix_getcwd", + "posix_getegid", + "posix_geteuid", + "posix_getgid", + "posix_getgrgid", + "posix_getgrnam", + "posix_getgroups", + "posix_getlogin", + "posix_getpgid", + "posix_getpgrp", + "posix_getpid", + "posix_getppid", + "posix_getpwnam", + "posix_getpwuid", + "posix_getrlimit", + "posix_getsid", + "posix_getuid", + "posix_isatty", + "posix_kill", + "posix_mkfifo", + "posix_setegid", + "posix_seteuid", + "posix_setgid", + "posix_setpgid", + "posix_setsid", + "posix_setuid", + "posix_times", + "posix_ttyname", + "posix_uname", + "_POST", + "pow", + "prefix", + "preg_grep", + "preg_match", + "preg_match_all", + "preg_quote", + "preg_replace", + "preg_replace_callback", + "preg_split", + "prev", + "previous_sibling", + "print", + "printer_abort", + "printer_close", + "printer_create_brush", + "printer_create_dc", + "printer_create_font", + "printer_create_pen", + "printer_delete_brush", + "printer_delete_dc", + "printer_delete_font", + "printer_delete_pen", + "printer_draw_bmp", + "printer_draw_chord", + "printer_draw_elipse", + "printer_draw_line", + "printer_draw_pie", + "printer_draw_rectangle", + "printer_draw_roundrect", + "printer_draw_text", + "printer_end_doc", + "printer_end_page", + "printer_get_option", + "printer_list", + "printer_logical_fontheight", + "printer_open", + "printer_select_brush", + "printer_select_font", + "printer_select_pen", + "printer_set_option", + "printer_start_doc", + "printer_start_page", + "printer_write", + "printf", + "print_r", + "private", + "proc_close", + "process", + "proc_open", + "protected", + "pspell_add_to_personal", + "pspell_add_to_session", + "pspell_check", + "pspell_clear_session", + "pspell_config_create", + "pspell_config_ignore", + "pspell_config_mode", + "pspell_config_personal", + "pspell_config_repl", + "pspell_config_runtogether", + "pspell_config_save_repl", + "pspell_new", + "pspell_new_config", + "pspell_new_personal", + "pspell_save_wordlist", + "pspell_store_replacement", + "pspell_suggest", + "public", + "public_id", + "putenv", + "qdom_error", + "qdom_tree", + "QUERY_STRING", + "quoted_printable_decode", + "quotemeta", + "rad2deg", + "rand", + "range", + "rawurldecode", + "rawurlencode", + "read", + "readdir", + "read_exif_data", + "readfile", + "readgzfile", + "readline", + "readline_add_history", + "readline_clear_history", + "readline_completion_function", + "readline_info", + "readline_list_history", + "readline_read_history", + "readline_write_history", + "readlink", + "realpath", + "reason", + "recode", + "recode_file", + "recode_string", + "register_shutdown_function", + "register_tick_function", + "REMOTE_ADDR", + "REMOTE_PORT", + "remove", + "remove_attribute", + "remove_child", + "rename", + "replace", + "replace_child", + "replace_node", + "_REQUEST", + "REQUEST_METHOD", + "REQUEST_URI", + "require", + "require_once", + "reset", + "restore_error_handler", + "restore_include_path", + "result_dump_file", + "result_dump_mem", + "return", + "rewind", + "rewinddir", + "rmdir", + "Rotate", + "rotateTo", + "round", + "rsort", + "rtrim", + "save", + "scale", + "scaleTo", + "SCRIPT_FILENAME", + "SCRIPT_NAME", + "sem_acquire", + "sem_get", + "sem_release", + "sem_remove", + "serialize", + "_SERVER", + "SERVER_ADMIN", + "SERVER_NAME", + "SERVER_PORT", + "SERVER_PROTOCOL", + "SERVER_SIGNATURE", + "SERVER_SOFTWARE", + "sesam_affected_rows", + "sesam_commit", + "sesam_connect", + "sesam_diagnostic", + "sesam_disconnect", + "sesam_errormsg", + "sesam_execimm", + "sesam_fetch_array", + "sesam_fetch_result", + "sesam_fetch_row", + "sesam_field_array", + "sesam_field_name", + "sesam_free_result", + "sesam_num_fields", + "sesam_query", + "sesam_rollback", + "sesam_seek_row", + "sesam_settransaction", + "_SESSION", + "session_cache_expire", + "session_cache_limiter", + "session_decode", + "session_destroy", + "session_encode", + "session_get_cookie_params", + "session_id", + "session_is_registered", + "session_module_name", + "session_name", + "session_readonly", + "session_register", + "session_save_path", + "session_set_cookie_params", + "session_set_save_handler", + "session_start", + "session_unregister", + "session_unset", + "session_write_close", + "setAction", + "set_attribute", + "setbackground", + "setbounds", + "setcolor", + "setColor", + "setcommitedversion", + "set_content", + "setcookie", + "setDepth", + "setdimension", + "setdown", + "set_error_handler", + "set_file_buffer", + "setFont", + "setframes", + "setHeight", + "setHit", + "set_include_path", + "setindentation", + "setLeftFill", + "setLeftMargin", + "setLine", + "setLineSpacing", + "setlocale", + "set_magic_quotes_runtime", + "setMargins", + "set_name", + "setname", + "setName", + "set_namespace", + "setOver", + "setrate", + "setRatio", + "setRightFill", + "setrightMargin", + "setSpacing", + "set_time_limit", + "settype", + "setUp", + "sha1", + "sha1_file", + "shell_exec", + "shm_attach", + "shm_detach", + "shm_get_var", + "shmop_close", + "shmop_delete", + "shmop_open", + "shmop_read", + "shmop_size", + "shmop_write", + "shm_put_var", + "shm_remove", + "shm_remove_var", + "show_source", + "shuffle", + "similar_text", + "sin", + "sinh", + "sizeof", + "skewX", + "skewXTo", + "skewY", + "skewYTo", + "sleep", + "snmpget", + "snmp_get_quick_print", + "snmprealwalk", + "snmpset", + "snmp_set_quick_print", + "snmpwalk", + "snmpwalkoid", + "socket_accept", + "socket_bind", + "socket_clear_error", + "socket_close", + "socket_connect", + "socket_create", + "socket_create_listen", + "socket_create_pair", + "socket_get_option", + "socket_getpeername", + "socket_getsockname", + "socket_get_status", + "socket_iovec_add", + "socket_iovec_alloc", + "socket_iovec_delete", + "socket_iovec_fetch", + "socket_iovec_free", + "socket_iovec_set", + "socket_last_error", + "socket_listen", + "socket_read", + "socket_readv", + "socket_recv", + "socket_recvfrom", + "socket_recvmsg", + "socket_select", + "socket_send", + "socket_sendmsg", + "socket_sendto", + "socket_set_blocking", + "socket_set_nonblock", + "socket_set_option", + "socket_set_timeout", + "socket_shutdown", + "socket_strerror", + "socket_write", + "socket_writev", + "sort", + "soundex", + "specified", + "split", + "spliti", + "sprintf", + "sql_regcase", + "sqrt", + "srand", + "srcanchors", + "srcsofdst", + "sscanf", + "stat", + "static", + "stdClass", + "strcasecmp", + "strchr", + "strcmp", + "strcoll", + "strcspn", + "stream_context_create", + "stream_context_get_options", + "stream_context_set_option", + "stream_context_set_params", + "stream_filter_append", + "stream_filter_prepend", + "stream_get_filters", + "stream_get_meta_data", + "stream_get_wrappers", + "streammp3", + "stream_register_filter", + "stream_register_wrapper", + "stream_select", + "stream_set_blocking", + "stream_set_timeout", + "stream_set_write_buffer", + "strftime", + "stripcslashes", + "stripslashes", + "strip_tags", + "stristr", + "strlen", + "strnatcasecmp", + "strnatcmp", + "strncasecmp", + "strncmp", + "str_pad", + "strpos", + "strrchr", + "str_repeat", + "str_replace", + "strrev", + "str_rot13", + "strrpos", + "str_shuffle", + "strspn", + "strstr", + "strtok", + "strtolower", + "strtotime", + "strtoupper", + "strtr", + "strval", + "str_word_count", + "substr", + "substr_count", + "substr_replace", + "SWFAction", + "swf_actiongeturl", + "swf_actiongotoframe", + "swf_actiongotolabel", + "swf_actionnextframe", + "swf_actionplay", + "swf_actionprevframe", + "swf_actionsettarget", + "swf_actionstop", + "swf_actiontogglequality", + "swf_actionwaitforframe", + "swf_addbuttonrecord", + "swf_addcolor", + "SWFBitmap", + "SWFbutton", + "swfbutton_keypress", + "swf_closefile", + "swf_definebitmap", + "swf_definefont", + "swf_defineline", + "swf_definepoly", + "swf_definerect", + "swf_definetext", + "SWFDisplayItem", + "swf_endbutton", + "swf_enddoaction", + "swf_endshape", + "swf_endsymbol", + "SWFFill", + "SWFFont", + "swf_fontsize", + "swf_fontslant", + "swf_fonttracking", + "swf_getbitmapinfo", + "swf_getfontinfo", + "swf_getframe", + "SWFGradient", + "swf_labelframe", + "swf_lookat", + "swf_modifyobject", + "SWFMorph", + "SWFMovie", + "swf_mulcolor", + "swf_nextid", + "swf_oncondition", + "swf_openfile", + "swf_ortho", + "swf_ortho2", + "swf_perspective", + "swf_placeobject", + "swf_polarview", + "swf_popmatrix", + "swf_posround", + "swf_pushmatrix", + "swf_removeobject", + "swf_rotate", + "swf_scale", + "swf_setfont", + "swf_setframe", + "SWFShape", + "swf_shapearc", + "swf_shapecurveto", + "swf_shapecurveto3", + "swf_shapefillbitmapclip", + "swf_shapefillbitmaptile", + "swf_shapefilloff", + "swf_shapefillsolid", + "swf_shapelinesolid", + "swf_shapelineto", + "swf_shapemoveto", + "swf_showframe", + "SWFSprite", + "swf_startbutton", + "swf_startdoaction", + "swf_startshape", + "swf_startsymbol", + "SWFText", + "SWFTextField", + "swf_textwidth", + "swf_translate", + "swf_viewport", + "switch", + "sybase_affected_rows", + "sybase_close", + "sybase_connect", + "sybase_data_seek", + "sybase_fetch_array", + "sybase_fetch_field", + "sybase_fetch_object", + "sybase_fetch_row", + "sybase_field_seek", + "sybase_free_result", + "sybase_get_last_message", + "sybase_min_client_severity", + "sybase_min_error_severity", + "sybase_min_message_severity", + "sybase_min_server_severity", + "sybase_num_fields", + "sybase_num_rows", + "sybase_pconnect", + "sybase_query", + "sybase_result", + "sybase_select_db", + "symlink", + "syslog", + "system", + "system_id", + "tagname", + "tan", + "tanh", + "target", + "tempnam", + "textdomain", + "time", + "title", + "tmpfile", + "token_get_all", + "token_name", + "touch", + "trigger_error", + "trim", + "TRUE", + "type", + "uasort", + "ucfirst", + "ucwords", + "udm_add_search_limit", + "udm_alloc_agent", + "udm_api_version", + "udm_cat_list", + "udm_cat_path", + "udm_check_charset", + "udm_check_stored", + "udm_clear_search_limits", + "udm_close_stored", + "udm_crc32", + "udm_errno", + "udm_error", + "udm_find", + "udm_free_agent", + "udm_free_ispell_data", + "udm_free_res", + "udm_get_doc_count", + "udm_get_res_field", + "udm_get_res_param", + "udm_load_ispell_data", + "udm_open_stored", + "udm_set_agent_param", + "uksort", + "umask", + "uniqid", + "unixtojd", + "unlink", + "unlink_node", + "unlock", + "unpack", + "unregister_tick_function", + "unserialize", + "unset", + "urldecode", + "urlencode", + "user", + "user_error", + "userlist", + "usleep", + "usort", + "utf8_decode", + "utf8_encode", + "value", + "values", + "var", + "var_dump", + "var_export", + "version_compare", + "virtual", + "vpopmail_add_alias_domain", + "vpopmail_add_alias_domain_ex", + "vpopmail_add_domain", + "vpopmail_add_domain_ex", + "vpopmail_add_user", + "vpopmail_alias_add", + "vpopmail_alias_del", + "vpopmail_alias_del_domain", + "vpopmail_alias_get", + "vpopmail_alias_get_all", + "vpopmail_auth_user", + "vpopmail_del_domain", + "vpopmail_del_domain_ex", + "vpopmail_del_user", + "vpopmail_error", + "vpopmail_passwd", + "vpopmail_set_user_quota", + "vprintf", + "vsprintf", + "w32api_deftype", + "w32api_init_dtype", + "w32api_invoke_function", + "w32api_register_function", + "w32api_set_call_method", + "wddx_add_vars", + "wddx_deserialize", + "wddx_packet_end", + "wddx_packet_start", + "wddx_serialize_value", + "wddx_serialize_vars", + "while", + "wordwrap", + "xinclude", + "xml_error_string", + "xml_get_current_byte_index", + "xml_get_current_column_number", + "xml_get_current_line_number", + "xml_get_error_code", + "xml_parse", + "xml_parse_into_struct", + "xml_parser_create", + "xml_parser_create_ns", + "xml_parser_free", + "xml_parser_get_option", + "xml_parser_set_option", + "xmlrpc_decode", + "xmlrpc_decode_request", + "xmlrpc_encode", + "xmlrpc_encode_request", + "xmlrpc_get_type", + "xmlrpc_parse_method_descriptions", + "xmlrpc_server_add_introspection_data", + "xmlrpc_server_call_method", + "xmlrpc_server_create", + "xmlrpc_server_destroy", + "xmlrpc_server_register_introspection_callback", + "xmlrpc_server_register_method", + "xmlrpc_set_type", + "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", + "xpath_eval", + "xpath_eval_expression", + "xpath_new_context", + "xptr_eval", + "xptr_new_context", + "xslt_create", + "xslt_errno", + "xslt_error", + "xslt_free", + "xslt_output_process", + "xslt_set_base", + "xslt_set_encoding", + "xslt_set_error_handler", + "xslt_set_log", + "xslt_set_sax_handler", + "xslt_set_sax_handlers", + "xslt_set_scheme_handler", + "xslt_set_scheme_handlers", + "yaz_addinfo", + "yaz_ccl_conf", + "yaz_ccl_parse", + "yaz_close", + "yaz_connect", + "yaz_database", + "yaz_element", + "yaz_errno", + "yaz_error", + "yaz_get_option", + "yaz_hits", + "yaz_itemorder", + "yaz_present", + "yaz_range", + "yaz_record", + "yaz_scan", + "yaz_scan_result", + "yaz_schema", + "yaz_search", + "yaz_set_option", + "yaz_sort", + "yaz_syntax", + "yaz_wait", + "yp_all", + "yp_cat", + "yp_errno", + "yp_err_string", + "yp_first", + "yp_get_default_domain", + "yp_master", + "yp_match", + "yp_next", + "yp_order", + "zend_logo_guid", + "zend_version", + "zend_version", + "zip_close", + "zip_entry_close", + "zip_entry_compressedsize", + "zip_entry_compressionmethod", + "zip_entry_filesize", + "zip_entry_name", + "zip_entry_open", + "zip_entry_read", + "zip_open", + "zip_read", + 0 + }; + +Php5Writer::Php5Writer() { +} + +Php5Writer::~Php5Writer() {} + + +void Php5Writer::writeClass(UMLClassifier *c) { + if(!c) { + kDebug()<<"Cannot write class of NULL concept!" << endl; + return; + } + + QString classname = cleanName(c->getName()); + //find an appropriate name for our file + QString fileName = findFileName(c, ".php"); + if (fileName.isEmpty()) { + emit codeGenerated(c, false); + return; + } + + QFile filephp; + if(!openFile(filephp, fileName)) { + emit codeGenerated(c, false); + return; + } + QTextStream php(&filephp); + + ////////////////////////////// + //Start generating the code!! + ///////////////////////////// + + + //try to find a heading file (license, coments, etc) + QString str; + str = getHeadingFile(".php"); + if(!str.isEmpty()) { + str.replace(QRegExp("%filename%"),fileName); + str.replace(QRegExp("%filepath%"),filephp.name()); + php<<str<<m_endl; + } + + + //write includes + UMLPackageList includes; + findObjectsRelated(c,includes); + UMLPackage *conc; + for(conc = includes.first(); conc ;conc = includes.next()) { + QString headerName = findFileName(conc, ".php"); + if (!headerName.isEmpty()) { + php << "require_once '" << headerName << "';" << m_endl; + } + } + php << m_endl; + + //Write class Documentation if there is somthing or if force option + if(forceDoc() || !c->getDoc().isEmpty()) { + php << m_endl << "/**" << m_endl; + php << " * class " << classname << m_endl; + php << formatDoc(c->getDoc()," * "); + php << " */" << m_endl ; + } + + UMLClassifierList superclasses = c->getSuperClasses(); + UMLAssociationList aggregations = c->getAggregations(); + UMLAssociationList compositions = c->getCompositions(); + UMLAssociationList realizations = c->getRealizations(); + UMLAssociation *a; + bool isInterface = c->isInterface(); + + //check if it is an interface or regular class + if(isInterface) { + php << "interface " << classname; + } else { + //check if class is abstract and / or has abstract methods + if(c->getAbstract()) + php << "abstract "; + php << "class " << classname << (superclasses.count() > 0 ? " extends ":""); + if(superclasses.count() > 0) { + //php5 does not support multiple inheritance so only use the first one and print a warning if more are used + UMLClassifier *obj = superclasses.first(); + php << cleanName(obj->getName()); + if(superclasses.count() > 1) + php << m_indentation << "//WARNING: PHP5 does not support multiple inheritance but there is more than 1 superclass defined in your UML model!"; + } + //check for realizations + if( !realizations.isEmpty()) { + int rc = realizations.count(); + int ri = rc; + for (a = realizations.first(); a; a = realizations.next()) { + UMLObject *o = a->getObject(Uml::B); + QString typeName = cleanName(o->getName()); + if(ri == rc) + php << m_endl << m_indentation << m_indentation << m_indentation << "implements "; + php << typeName << (--rc == 0 ? "" : ", "); + } + } + } + php << m_endl << '{' << m_endl; + + //associations + if( forceSections() || !aggregations.isEmpty()) { + php<< m_endl << m_indentation << "/** Aggregations: */" << m_endl; + for (a = aggregations.first(); a; a = aggregations.next()) { + php<< m_endl; + //maybe we should parse the string here and take multiplicity into account to decide + //which container to use. + UMLObject *o = a->getObject(Uml::A); + if (o == NULL) { + kError() << "aggregation role A object is NULL" << endl; + continue; + } + QString typeName = cleanName(o->getName()); + if (a->getMulti(Uml::A).isEmpty()) { + php << m_indentation << "var $m_" << ';' << m_endl; + } else { + php << m_indentation << "var $m_" << "Vector = array();" << m_endl; + } + }//end for + } + + if( forceSections() || !compositions.isEmpty()) { + php<< m_endl << m_indentation << "/** Compositions: */" << m_endl; + for (a = compositions.first(); a ; a = compositions.next()) { + // see comment on Aggregation about multiplicity... + UMLObject *o = a->getObject(Uml::A); + if (o == NULL) { + kError() << "composition role A object is NULL" << endl; + continue; + } + QString typeName = cleanName(o->getName()); + if (a->getMulti(Uml::A).isEmpty()) { + php << m_indentation << "var $m_" << ';' << m_endl; + } else { + php << m_indentation << "var $m_" << "Vector = array();" << m_endl; + } + } + } + + //attributes + if (!isInterface) + writeAttributes(c, php); + + //operations + writeOperations(c,php); + + php << m_endl; + + //finish file + php << m_endl << "} // end of " << classname << m_endl; + php << "?>" << m_endl; + + //close files and notfiy we are done + filephp.close(); + emit codeGenerated(c, true); +} + +//////////////////////////////////////////////////////////////////////////////////// +// Helper Methods + +void Php5Writer::writeOperations(UMLClassifier *c, QTextStream &php) { + + //Lists to store operations sorted by scope + UMLOperationList oppub,opprot,oppriv; + + bool isInterface = c->isInterface(); + bool generateErrorStub = false; + + oppub.setAutoDelete(false); + opprot.setAutoDelete(false); + oppriv.setAutoDelete(false); + + //sort operations by scope first and see if there are abstract methods + UMLOperationList opl(c->getOpList()); + for(UMLOperation *op = opl.first(); op ; op = opl.next()) { + switch(op->getVisibility()) { + case Uml::Visibility::Public: + oppub.append(op); + break; + case Uml::Visibility::Protected: + opprot.append(op); + break; + case Uml::Visibility::Private: + oppriv.append(op); + break; + default: + break; + } + } + + QString classname(cleanName(c->getName())); + + //write operations to file + if(forceSections() || !oppub.isEmpty()) { + php << m_endl; + writeOperations(classname,oppub,php,isInterface,generateErrorStub); + } + + if(forceSections() || !opprot.isEmpty()) { + php << m_endl; + writeOperations(classname,opprot,php,isInterface,generateErrorStub); + } + + if(forceSections() || !oppriv.isEmpty()) { + php << m_endl; + writeOperations(classname,oppriv,php,isInterface,generateErrorStub); + } + + + // build an oplist for all of the realized operations + UMLOperationList opreal; + opreal.setAutoDelete(false); + + // go through each of the realizations, taking each op + UMLAssociationList realizations = c->getRealizations(); + UMLAssociation *a; + + if( !realizations.isEmpty()) { + for (a = realizations.first(); a; a = realizations.next()) { + + // we know its a classifier if its in the list + UMLClassifier *real = (UMLClassifier*)a->getObject(Uml::B); + + UMLOperationList opl(real->getOpList()); + for(UMLOperation *op = opl.first(); op ; op = opl.next()) { + opreal.append(op); + } + } + } + + // write out all the realizations operations + writeOperations(classname,opreal,php,false,true); + +} + +void Php5Writer::writeOperations(const QString &/* classname */, UMLOperationList &opList, + QTextStream &php, bool isInterface /* = false */, + bool generateErrorStub /* = false */) { + for (UMLOperation *op=opList.first(); op ; op=opList.next()) { + UMLAttributeList atl = op->getParmList(); + UMLAttribute *at; + //write method doc if we have doc || if at least one of the params has doc + bool writeDoc = forceDoc() || !op->getDoc().isEmpty(); + for (at = atl.first(); at; at = atl.next()) + writeDoc |= !at->getDoc().isEmpty(); + + if( writeDoc ) //write method documentation + { + php <<m_indentation << "/**" << m_endl <<formatDoc(op->getDoc(),m_indentation + " * "); + php << m_indentation << " *" << m_endl; + + for (at = atl.first(); at; at = atl.next()) //write parameter documentation + { + if(forceDoc() || !at->getDoc().isEmpty()) { + php <<m_indentation << " * @param " + at->getTypeName() + ' ' + cleanName(at->getName()); + php << ' ' + formatDoc(at->getDoc(),"") << m_endl; + } + }//end for : write parameter documentation + php << m_indentation << " * @return " << op->getTypeName() << m_endl; + if (op->getAbstract()) php << m_indentation << " * @abstract" << m_endl; + if (op->getStatic()) php << m_indentation << " * @static" << m_endl; + switch(op->getVisibility()) { + case Uml::Visibility::Public: + php << m_indentation << " * @access public" << m_endl; + break; + case Uml::Visibility::Protected: + php << m_indentation << " * @access protected" << m_endl; + break; + case Uml::Visibility::Private: + php << m_indentation << " * @access private" << m_endl; + break; + default: + break; + } + php <<m_indentation << " */" << m_endl; + }//end if : write method documentation + + php << m_indentation; + if (op->getAbstract()) php << "abstract "; + switch(op->getVisibility()) { + case Uml::Visibility::Public: + php << "public "; + break; + case Uml::Visibility::Protected: + php << "protected "; + break; + case Uml::Visibility::Private: + php << "private "; + break; + default: + break; + } + if (op->getStatic()) php << "static "; + php << "function " << cleanName(op->getName()) << "("; + + int i= atl.count(); + int j=0; + for (at = atl.first(); at; at = atl.next(), j++) { + php << " $" << cleanName(at->getName()) + << (!(at->getInitialValue().isEmpty()) ? + (QString(" = ")+at->getInitialValue()) : + QString("")) + << ((j < i-1)?", ":""); + } + php <<" )"; + if(!isInterface && !op->getAbstract()) { + php << " {" << m_endl << m_indentation << m_indentation; + if(generateErrorStub) { + php << "trigger_error(\"Implement \" . __FUNCTION__);"; + } + php << m_endl << m_indentation << "} // end of member function " + cleanName(op->getName()) + m_endl; + } + else { + php << ';' + m_endl; + } + php << m_endl; + }//end for +} + +void Php5Writer::writeAttributes(UMLClassifier *c, QTextStream &php) { + UMLAttributeList atpub, atprot, atpriv, atdefval; + atpub.setAutoDelete(false); + atprot.setAutoDelete(false); + atpriv.setAutoDelete(false); + atdefval.setAutoDelete(false); + + //sort attributes by scope and see if they have a default value + UMLAttributeList atl = c->getAttributeList(); + UMLAttribute *at; + for(at = atl.first(); at ; at = atl.next()) { + if(!at->getInitialValue().isEmpty()) + atdefval.append(at); + switch(at->getVisibility()) { + case Uml::Visibility::Public: + atpub.append(at); + break; + case Uml::Visibility::Protected: + atprot.append(at); + break; + case Uml::Visibility::Private: + atpriv.append(at); + break; + default: + break; + } + } + + if(forceSections() || atl.count()) + php<< m_endl << m_indentation << " /*** Attributes: ***/" << m_endl <<m_endl; + + if(forceSections() || atpub.count()) { + writeAttributes(atpub,php); + } + + if(forceSections() || atprot.count()) { + writeAttributes(atprot,php); + } + + if(forceSections() || atpriv.count()) { + writeAttributes(atpriv,php); + } +} + + +void Php5Writer::writeAttributes(UMLAttributeList &atList, QTextStream &php) { + for (UMLAttribute *at = atList.first(); at ; at = atList.next()) { + bool isStatic = at->getStatic(); + if (forceDoc() || !at->getDoc().isEmpty()) { + php << m_indentation << "/**" << m_endl << formatDoc(at->getDoc(), m_indentation + " * "); + if(isStatic) php << m_indentation << " * @static" << m_endl; + switch(at->getVisibility()) { + case Uml::Visibility::Public: + php << m_indentation << " * @access public" << m_endl; + break; + case Uml::Visibility::Protected: + php << m_indentation << " * @access protected" << m_endl; + break; + case Uml::Visibility::Private: + php << m_indentation << " * @access private" << m_endl; + break; + default: + break; + } + php << m_indentation << " */" << m_endl; + } + php << m_indentation; + switch(at->getVisibility()) { + case Uml::Visibility::Public: + php << "public "; + break; + case Uml::Visibility::Protected: + php << "protected "; + break; + case Uml::Visibility::Private: + php << "private "; + break; + default: + break; + } + if(isStatic) php << "static "; + php << "$" << cleanName(at->getName()); + if(!at->getInitialValue().isEmpty()) + php << " = " << at->getInitialValue(); + php << ";" << m_endl << m_endl; + } // end for + return; +} + +/** + * returns "PHP" + */ +Uml::Programming_Language Php5Writer::getLanguage() { + return Uml::pl_PHP5; +} + +const QStringList Php5Writer::reservedKeywords() const { + + static QStringList keywords; + + if (keywords.isEmpty()) { + for (int i = 0; php5words[i]; i++) + keywords.append(php5words[i]); + } + + return keywords; +} + +#include "php5writer.moc" + |