1 /*
2 SPDX-License-Identifier: GPL-2.0-or-later
3
4 SPDX-FileCopyrightText: 2002 Heiko Nardmann <h.nardmann@secunet.de>
5 SPDX-FileCopyrightText: 2004 Thorsten Kunz <tk AT bytecrash DOT net>
6 SPDX-FileCopyrightText: 2003-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
7 */
8
9 #include "php5writer.h"
10
11 #include "association.h"
12 #include "attribute.h"
13 #include "classifier.h"
14 #include "debug_utils.h"
15 #include "operation.h"
16 #include "umldoc.h"
17
18 #include <QRegExp>
19 #include <QTextStream>
20
21 static const char *reserved_words[] = {
22 "abs",
23 "abstract",
24 "acos",
25 "acosh",
26 "add",
27 "addAction",
28 "addColor",
29 "addEntry",
30 "addFill",
31 "addShape",
32 "addString",
33 "add_namespace",
34 "addcslashes",
35 "addslashes",
36 "addstring",
37 "aggregate",
38 "aggregate_info",
39 "aggregate_methods",
40 "aggregate_methods_by_list",
41 "aggregate_methods_by_regexp",
42 "aggregate_properties",
43 "aggregate_properties_by_list",
44 "aggregate_properties_by_regexp",
45 "aggregation_info",
46 "align",
47 "apache_child_terminate",
48 "apache_lookup_uri",
49 "apache_note",
50 "apache_request_headers",
51 "apache_response_headers",
52 "apache_setenv",
53 "append_child",
54 "append_sibling",
55 "array",
56 "array_change_key_case",
57 "array_chunk",
58 "array_count_values",
59 "array_diff",
60 "array_diff_assoc",
61 "array_fill",
62 "array_filter",
63 "array_flip",
64 "array_intersect",
65 "array_intersect_assoc",
66 "array_key_exists",
67 "array_keys",
68 "array_map",
69 "array_merge",
70 "array_merge_recursive",
71 "array_multisort",
72 "array_pad",
73 "array_pop",
74 "array_push",
75 "array_rand",
76 "array_reduce",
77 "array_reverse",
78 "array_search",
79 "array_shift",
80 "array_slice",
81 "array_splice",
82 "array_sum",
83 "array_unique",
84 "array_unshift",
85 "array_values",
86 "array_walk",
87 "arsort",
88 "ascii2ebcdic",
89 "asin",
90 "asinh",
91 "asort",
92 "aspell_check",
93 "aspell_new",
94 "aspell_suggest",
95 "assert",
96 "assert_options",
97 "assign",
98 "atan",
99 "atan2",
100 "atanh",
101 "attreditable",
102 "attributes",
103 "base64_decode",
104 "base64_encode",
105 "base_convert",
106 "basename",
107 "bcadd",
108 "bccomp",
109 "bcdiv",
110 "bcmod",
111 "bcmul",
112 "bcpow",
113 "bcpowmod",
114 "bcscale",
115 "bcsqrt",
116 "bcsub",
117 "bin2hex",
118 "bindec",
119 "bindtextdomain",
120 "bind_textdomain_codeset",
121 "bool",
122 "break",
123 "bzclose",
124 "bzcompress",
125 "bzdecompress",
126 "bzerrno",
127 "bzerror",
128 "bzerrstr",
129 "bzflush",
130 "bzopen",
131 "bzread",
132 "bzwrite",
133 "cal_days_in_month",
134 "cal_from_jd",
135 "cal_info",
136 "call_user_func",
137 "call_user_func_array",
138 "call_user_method",
139 "call_user_method_array",
140 "cal_to_jd",
141 "ccvs_add",
142 "ccvs_auth",
143 "ccvs_command",
144 "ccvs_count",
145 "ccvs_delete",
146 "ccvs_done",
147 "ccvs_init",
148 "ccvs_lookup",
149 "ccvs_new",
150 "ccvs_report",
151 "ccvs_return",
152 "ccvs_reverse",
153 "ccvs_sale",
154 "ccvs_status",
155 "ccvs_textvalue",
156 "ccvs_void",
157 "ceil",
158 "chdir",
159 "checkdate",
160 "checkdnsrr",
161 "checkin",
162 "checkout",
163 "chgrp",
164 "child_nodes",
165 "children",
166 "chmod",
167 "chop",
168 "chown",
169 "chr",
170 "chroot",
171 "chunk_split",
172 "class",
173 "class_exists",
174 "clearstatcache",
175 "clone_node",
176 "closedir",
177 "closelog",
178 "com_addref",
179 "com_get",
180 "com_invoke",
181 "com_isenum",
182 "com_load",
183 "com_load_typelib",
184 "compact",
185 "com_propget",
186 "com_propput",
187 "com_propset",
188 "com_release",
189 "com_set",
190 "connection_aborted",
191 "connection_status",
192 "connection_timeout",
193 "constant",
194 "content",
195 "continue",
196 "convert_cyr_string",
197 "_COOKIE",
198 "copy",
199 "cos",
200 "cosh",
201 "count",
202 "count_chars",
203 "cpdf_add_annotation",
204 "cpdf_add_outline",
205 "cpdf_arc",
206 "cpdf_begin_text",
207 "cpdf_circle",
208 "cpdf_clip",
209 "cpdf_close",
210 "cpdf_closepath",
211 "cpdf_closepath_fill_stroke",
212 "cpdf_closepath_stroke",
213 "cpdf_continue_text",
214 "cpdf_curveto",
215 "cpdf_end_text",
216 "cpdf_fill",
217 "cpdf_fill_stroke",
218 "cpdf_finalize",
219 "cpdf_finalize_page",
220 "cpdf_global_set_document_limits",
221 "cpdf_import_jpeg",
222 "cpdf_lineto",
223 "cpdf_moveto",
224 "cpdf_newpath",
225 "cpdf_open",
226 "cpdf_output_buffer",
227 "cpdf_page_init",
228 "cpdf_place_inline_image",
229 "cpdf_rect",
230 "cpdf_restore",
231 "cpdf_rlineto",
232 "cpdf_rmoveto",
233 "cpdf_rotate",
234 "cpdf_rotate_text",
235 "cpdf_save",
236 "cpdf_save_to_file",
237 "cpdf_scale",
238 "cpdf_set_action_url",
239 "cpdf_set_char_spacing",
240 "cpdf_set_creator",
241 "cpdf_set_current_page",
242 "cpdf_setdash",
243 "cpdf_setflat",
244 "cpdf_set_font",
245 "cpdf_set_font_directories",
246 "cpdf_set_font_map_file",
247 "cpdf_setgray",
248 "cpdf_setgray_fill",
249 "cpdf_setgray_stroke",
250 "cpdf_set_horiz_scaling",
251 "cpdf_set_keywords",
252 "cpdf_set_leading",
253 "cpdf_setlinecap",
254 "cpdf_setlinejoin",
255 "cpdf_setlinewidth",
256 "cpdf_setmiterlimit",
257 "cpdf_set_page_animation",
258 "cpdf_setrgbcolor",
259 "cpdf_setrgbcolor_fill",
260 "cpdf_setrgbcolor_stroke",
261 "cpdf_set_subject",
262 "cpdf_set_text_matrix",
263 "cpdf_set_text_pos",
264 "cpdf_set_text_rendering",
265 "cpdf_set_text_rise",
266 "cpdf_set_title",
267 "cpdf_set_viewer_preferences",
268 "cpdf_set_word_spacing",
269 "cpdf_show",
270 "cpdf_show_xy",
271 "cpdf_stringwidth",
272 "cpdf_stroke",
273 "cpdf_text",
274 "cpdf_translate",
275 "crack_check",
276 "crack_closedict",
277 "crack_getlastmessage",
278 "crack_opendict",
279 "crc32",
280 "create_attribute",
281 "create_cdata_section",
282 "create_comment",
283 "create_element",
284 "create_element_ns",
285 "create_entity_reference",
286 "create_function",
287 "create_processing_instruction",
288 "create_text_node",
289 "crypt",
290 "ctype_alnum",
291 "ctype_alpha",
292 "ctype_cntrl",
293 "ctype_digit",
294 "ctype_graph",
295 "ctype_lower",
296 "ctype_print",
297 "ctype_punct",
298 "ctype_space",
299 "ctype_upper",
300 "ctype_xdigit",
301 "curl_close",
302 "curl_errno",
303 "curl_error",
304 "curl_exec",
305 "curl_getinfo",
306 "curl_init",
307 "curl_setopt",
308 "curl_version",
309 "current",
310 "cybercash_base64_decode",
311 "cybercash_base64_encode",
312 "cybercash_decr",
313 "cybercash_encr",
314 "cybermut_creerformulairecm",
315 "cybermut_creerreponsecm",
316 "cybermut_testmac",
317 "cyrus_authenticate",
318 "cyrus_bind",
319 "cyrus_close",
320 "cyrus_connect",
321 "cyrus_query",
322 "cyrus_unbind",
323 "data",
324 "date",
325 "dba_close",
326 "dba_delete",
327 "dba_exists",
328 "dba_fetch",
329 "dba_firstkey",
330 "dba_handlers",
331 "dba_insert",
332 "dba_list",
333 "dba_nextkey",
334 "dba_open",
335 "dba_optimize",
336 "dba_popen",
337 "dba_replace",
338 "dbase_add_record",
339 "dbase_close",
340 "dbase_create",
341 "dbase_delete_record",
342 "dbase_get_record",
343 "dbase_get_record_with_names",
344 "dbase_numfields",
345 "dbase_numrecords",
346 "dbase_open",
347 "dbase_pack",
348 "dbase_replace_record",
349 "dba_sync",
350 "dblist",
351 "dbmclose",
352 "dbmdelete",
353 "dbmexists",
354 "dbmfetch",
355 "dbmfirstkey",
356 "dbminsert",
357 "dbmnextkey",
358 "dbmopen",
359 "dbmreplace",
360 "dbplus_add",
361 "dbplus_aql",
362 "dbplus_chdir",
363 "dbplus_close",
364 "dbplus_curr",
365 "dbplus_errcode",
366 "dbplus_errno",
367 "dbplus_find",
368 "dbplus_first",
369 "dbplus_flush",
370 "dbplus_freealllocks",
371 "dbplus_freelock",
372 "dbplus_freerlocks",
373 "dbplus_getlock",
374 "dbplus_getunique",
375 "dbplus_info",
376 "dbplus_last",
377 "dbplus_lockrel",
378 "dbplus_next",
379 "dbplus_open",
380 "dbplus_prev",
381 "dbplus_rchperm",
382 "dbplus_rcreate",
383 "dbplus_rcrtexact",
384 "dbplus_rcrtlike",
385 "dbplus_resolve",
386 "dbplus_restorepos",
387 "dbplus_rkeys",
388 "dbplus_ropen",
389 "dbplus_rquery",
390 "dbplus_rrename",
391 "dbplus_rsecindex",
392 "dbplus_runlink",
393 "dbplus_rzap",
394 "dbplus_savepos",
395 "dbplus_setindex",
396 "dbplus_setindexbynumber",
397 "dbplus_sql",
398 "dbplus_tcl",
399 "dbplus_tremove",
400 "dbplus_undo",
401 "dbplus_undoprepare",
402 "dbplus_unlockrel",
403 "dbplus_unselect",
404 "dbplus_update",
405 "dbplus_xlockrel",
406 "dbplus_xunlockrel",
407 "dbstat",
408 "dbx_close",
409 "dbx_compare",
410 "dbx_connect",
411 "dbx_error",
412 "dbx_escape_string",
413 "dbx_query",
414 "dbx_sort",
415 "dcgettext",
416 "dcngettext",
417 "dcstat",
418 "deaggregate",
419 "debug_backtrace",
420 "debugger_off",
421 "debugger_on",
422 "decbin",
423 "dechex",
424 "declare",
425 "decoct",
426 "DEFAULT_INCLUDE_PATH",
427 "define",
428 "defined",
429 "define_syslog_variables",
430 "deg2rad",
431 "delete",
432 "description",
433 "dgettext",
434 "die",
435 "dio_close",
436 "dio_fcntl",
437 "dio_open",
438 "dio_read",
439 "dio_seek",
440 "dio_stat",
441 "dio_tcsetattr",
442 "dio_truncate",
443 "dio_write",
444 "dir",
445 "dirname",
446 "disk_free_space",
447 "diskfreespace",
448 "disk_total_space",
449 "dl",
450 "dngettext",
451 "dns_check_record",
452 "dns_get_mx",
453 "dns_get_record",
454 "do",
455 "doctype",
456 "document_element",
457 "DOCUMENT_ROOT",
458 "domxml_new_doc",
459 "domxml_open_file",
460 "domxml_open_mem",
461 "domxml_version",
462 "domxml_xmltree",
463 "domxml_xslt_stylesheet",
464 "domxml_xslt_stylesheet_doc",
465 "domxml_xslt_stylesheet_file",
466 "dotnet_load",
467 "doubleval",
468 "drawCurve",
469 "drawCurveTo",
470 "drawLine",
471 "drawLineTo",
472 "dstanchors",
473 "dstofsrcanchors",
474 "dump_file",
475 "dump_mem",
476 "dump_node",
477 "each",
478 "E_ALL",
479 "easter_date",
480 "easter_days",
481 "ebcdic2ascii",
482 "echo",
483 "E_COMPILE_ERROR",
484 "E_COMPILE_WARNING",
485 "E_CORE_ERROR",
486 "E_CORE_WARNING",
487 "E_ERROR",
488 "else",
489 "elseif",
490 "empty",
491 "end",
492 "endfor",
493 "endforeach",
494 "endif",
495 "endswitch",
496 "endwhile",
497 "E_NOTICE",
498 "entities",
499 "_ENV",
500 "E_PARSE",
501 "ereg",
502 "eregi",
503 "eregi_replace",
504 "ereg_replace",
505 "error_log",
506 "error_reporting",
507 "escapeshellarg",
508 "escapeshellcmd",
509 "E_USER_ERROR",
510 "E_USER_NOTICE",
511 "E_USER_WARNING",
512 "eval",
513 "E_WARNING",
514 "exec",
515 "exif_imagetype",
516 "exif_read_data",
517 "exif_thumbnail",
518 "exit",
519 "exp",
520 "explode",
521 "expm1",
522 "extension_loaded",
523 "extract",
524 "ezmlm_hash",
525 "FALSE",
526 "fbsql_affected_rows",
527 "fbsql_autocommit",
528 "fbsql_change_user",
529 "fbsql_close",
530 "fbsql_commit",
531 "fbsql_connect",
532 "fbsql_create_blob",
533 "fbsql_create_clob",
534 "fbsql_create_db",
535 "fbsql_database",
536 "fbsql_database_password",
537 "fbsql_data_seek",
538 "fbsql_db_query",
539 "fbsql_db_status",
540 "fbsql_drop_db",
541 "fbsql_errno",
542 "fbsql_error",
543 "fbsql_fetch_array",
544 "fbsql_fetch_assoc",
545 "fbsql_fetch_field",
546 "fbsql_fetch_lengths",
547 "fbsql_fetch_object",
548 "fbsql_fetch_row",
549 "fbsql_field_flags",
550 "fbsql_field_len",
551 "fbsql_field_name",
552 "fbsql_field_seek",
553 "fbsql_field_table",
554 "fbsql_field_type",
555 "fbsql_free_result",
556 "fbsql_get_autostart_info",
557 "fbsql_hostname",
558 "fbsql_insert_id",
559 "fbsql_list_dbs",
560 "fbsql_list_fields",
561 "fbsql_list_tables",
562 "fbsql_next_result",
563 "fbsql_num_fields",
564 "fbsql_num_rows",
565 "fbsql_password",
566 "fbsql_pconnect",
567 "fbsql_query",
568 "fbsql_read_blob",
569 "fbsql_read_clob",
570 "fbsql_result",
571 "fbsql_rollback",
572 "fbsql_select_db",
573 "fbsql_set_lob_mode",
574 "fbsql_set_transaction",
575 "fbsql_start_db",
576 "fbsql_stop_db",
577 "fbsql_tablename",
578 "fbsql_username",
579 "fbsql_warnings",
580 "fclose",
581 "fdf_add_doc_javascript",
582 "fdf_add_template",
583 "fdf_close",
584 "fdf_create",
585 "fdf_errno",
586 "fdf_error",
587 "fdf_get_ap",
588 "fdf_get_attachment",
589 "fdf_get_encoding",
590 "fdf_get_file",
591 "fdf_get_status",
592 "fdf_get_value",
593 "fdf_get_version",
594 "fdf_header",
595 "fdf_next_field_name",
596 "fdf_open",
597 "fdf_open_string",
598 "fdf_save",
599 "fdf_save_string",
600 "fdf_set_ap",
601 "fdf_set_encoding",
602 "fdf_set_file",
603 "fdf_set_flags",
604 "fdf_set_javascript_action",
605 "fdf_set_opt",
606 "fdf_set_status",
607 "fdf_set_submit_form_action",
608 "fdf_set_target_frame",
609 "fdf_set_value",
610 "fdf_set_version",
611 "feof",
612 "fflush",
613 "fgetc",
614 "fgetcsv",
615 "fgets",
616 "fgetss",
617 "file",
618 "__FILE__",
619 "fileatime",
620 "filectime",
621 "file_exists",
622 "file_get_contents",
623 "filegroup",
624 "fileinode",
625 "filemtime",
626 "fileowner",
627 "fileperms",
628 "filepro",
629 "filepro_fieldcount",
630 "filepro_fieldname",
631 "filepro_fieldtype",
632 "filepro_fieldwidth",
633 "filepro_retrieve",
634 "filepro_rowcount",
635 "_FILES",
636 "filesize",
637 "filetype",
638 "find",
639 "first_child",
640 "floatval",
641 "flock",
642 "floor",
643 "flush",
644 "fmod",
645 "fnmatch",
646 "fopen",
647 "for",
648 "foreach",
649 "fpassthru",
650 "fprintf",
651 "fputs",
652 "fread",
653 "frenchtojd",
654 "fribidi_log2vis",
655 "fscanf",
656 "fseek",
657 "fsockopen",
658 "fstat",
659 "ftell",
660 "ftok",
661 "ftp_cdup",
662 "ftp_chdir",
663 "ftp_close",
664 "ftp_connect",
665 "ftp_delete",
666 "ftp_exec",
667 "ftp_fget",
668 "ftp_fput",
669 "ftp_get",
670 "ftp_get_option",
671 "ftp_login",
672 "ftp_mdtm",
673 "ftp_mkdir",
674 "ftp_nb_continue",
675 "ftp_nb_fget",
676 "ftp_nb_fput",
677 "ftp_nb_get",
678 "ftp_nb_put",
679 "ftp_nlist",
680 "ftp_pasv",
681 "ftp_put",
682 "ftp_pwd",
683 "ftp_quit",
684 "ftp_rawlist",
685 "ftp_rename",
686 "ftp_rmdir",
687 "ftp_set_option",
688 "ftp_site",
689 "ftp_size",
690 "ftp_ssl_connect",
691 "ftp_systype",
692 "ftruncate",
693 "ftstat",
694 "func_get_arg",
695 "func_get_args",
696 "func_num_args",
697 "function",
698 "function_exists",
699 "fwrite",
700 "GATEWAY_INTERFACE",
701 "gd_info",
702 "_GET",
703 "getallheaders",
704 "get_attribute",
705 "get_attribute_node",
706 "get_browser",
707 "get_cfg_var",
708 "get_class",
709 "get_class_methods",
710 "get_class_vars",
711 "get_content",
712 "get_current_user",
713 "getcwd",
714 "getdate",
715 "get_declared_classes",
716 "get_defined_constants",
717 "get_defined_functions",
718 "get_defined_vars",
719 "get_element_by_id",
720 "get_elements_by_tagname",
721 "getenv",
722 "get_extension_funcs",
723 "getHeight",
724 "gethostbyaddr",
725 "gethostbyname",
726 "gethostbynamel",
727 "get_html_translation_table",
728 "getimagesize",
729 "get_included_files",
730 "get_include_path",
731 "getlastmod",
732 "get_loaded_extensions",
733 "get_magic_quotes_gpc",
734 "get_magic_quotes_runtime",
735 "get_meta_tags",
736 "getmxrr",
737 "getmygid",
738 "getmyinode",
739 "getmypid",
740 "getmyuid",
741 "get_object_vars",
742 "getopt",
743 "get_parent_class",
744 "getprotobyname",
745 "getprotobynumber",
746 "getrandmax",
747 "get_required_files",
748 "get_resource_type",
749 "getrusage",
750 "getservbyname",
751 "getservbyport",
752 "getshape1",
753 "getshape2",
754 "gettext",
755 "gettimeofday",
756 "gettype",
757 "getwidth",
758 "getWidth",
759 "glob",
760 "global",
761 "GLOBALS",
762 "gmdate",
763 "gmmktime",
764 "gmp_abs",
765 "gmp_add",
766 "gmp_and",
767 "gmp_clrbit",
768 "gmp_cmp",
769 "gmp_com",
770 "gmp_div",
771 "gmp_divexact",
772 "gmp_div_q",
773 "gmp_div_qr",
774 "gmp_div_r",
775 "gmp_fact",
776 "gmp_gcd",
777 "gmp_gcdext",
778 "gmp_hamdist",
779 "gmp_init",
780 "gmp_intval",
781 "gmp_invert",
782 "gmp_jacobi",
783 "gmp_legendre",
784 "gmp_mod",
785 "gmp_mul",
786 "gmp_neg",
787 "gmp_or",
788 "gmp_perfect_square",
789 "gmp_popcount",
790 "gmp_pow",
791 "gmp_powm",
792 "gmp_prob_prime",
793 "gmp_random",
794 "gmp_scan0",
795 "gmp_scan1",
796 "gmp_setbit",
797 "gmp_sign",
798 "gmp_sqrt",
799 "gmp_sqrtrm",
800 "gmp_strval",
801 "gmp_sub",
802 "gmp_xor",
803 "gmstrftime",
804 "gregoriantojd",
805 "gzclose",
806 "gzcompress",
807 "gzdeflate",
808 "gzencode",
809 "gzeof",
810 "gzfile",
811 "gzgetc",
812 "gzgets",
813 "gzgetss",
814 "gzinflate",
815 "gzopen",
816 "gzpassthru",
817 "gzputs",
818 "gzread",
819 "gzrewind",
820 "gzseek",
821 "gztell",
822 "gzuncompress",
823 "gzwrite",
824 "has_attribute",
825 "has_attributess",
826 "has_child_nodes",
827 "header",
828 "headers_sent",
829 "hebrev",
830 "hebrevc",
831 "hexdec",
832 "highlight_file",
833 "highlight_string",
834 "html_dump_mem",
835 "htmlentities",
836 "html_entity_decode",
837 "htmlspecialchars",
838 "HTTP_ACCEPT",
839 "HTTP_ACCEPT_CHARSET",
840 "HTTP_ACCEPT_LANGUAGE",
841 "HTTP_CONNECTION",
842 "HTTP_COOKIE_VARS",
843 "HTTP_ENCODING",
844 "HTTP_ENV_VARS",
845 "HTTP_GET_VARS",
846 "HTTP_HOST",
847 "HTTP_POST_FILES",
848 "HTTP_POST_VARS",
849 "HTTP_RAW_POST_DATA",
850 "HTTP_REFERER",
851 "HTTP_SERVER_VARS",
852 "HTTP_SESSION_VARS",
853 "HTTP_STATE_VARS",
854 "HTTP_USER_AGENT",
855 "hw_api_attribute",
856 "hw_api_content",
857 "hwapi_hgcsp",
858 "hw_api_object",
859 "hw_Array2Objrec",
860 "hw_changeobject",
861 "hw_Children",
862 "hw_ChildrenObj",
863 "hw_Close",
864 "hw_Connect",
865 "hw_connection_info",
866 "hw_Cp",
867 "hw_Deleteobject",
868 "hw_DocByAnchor",
869 "hw_DocByAnchorObj",
870 "hw_Document_Attributes",
871 "hw_Document_BodyTag",
872 "hw_Document_Content",
873 "hw_Document_SetContent",
874 "hw_Document_Size",
875 "hw_dummy",
876 "hw_EditText",
877 "hw_Error",
878 "hw_ErrorMsg",
879 "hw_Free_Document",
880 "hw_GetAnchors",
881 "hw_GetAnchorsObj",
882 "hw_GetAndLock",
883 "hw_GetChildColl",
884 "hw_GetChildCollObj",
885 "hw_GetChildDocColl",
886 "hw_GetChildDocCollObj",
887 "hw_GetObject",
888 "hw_GetObjectByQuery",
889 "hw_GetObjectByQueryColl",
890 "hw_GetObjectByQueryCollObj",
891 "hw_GetObjectByQueryObj",
892 "hw_GetParents",
893 "hw_GetParentsObj",
894 "hw_getrellink",
895 "hw_GetRemote",
896 "hw_GetRemoteChildren",
897 "hw_GetSrcByDestObj",
898 "hw_GetText",
899 "hw_getusername",
900 "hw_Identify",
901 "hw_InCollections",
902 "hw_Info",
903 "hw_InsColl",
904 "hw_InsDoc",
905 "hw_insertanchors",
906 "hw_InsertDocument",
907 "hw_InsertObject",
908 "hw_mapid",
909 "hw_Modifyobject",
910 "hw_Mv",
911 "hw_New_Document",
912 "hw_Objrec2Array",
913 "hw_Output_Document",
914 "hw_pConnect",
915 "hw_PipeDocument",
916 "hw_Root",
917 "hw_setlinkroot",
918 "hw_stat",
919 "hwstat",
920 "hw_Unlock",
921 "hw_Who",
922 "hypot",
923 "ibase_blob_add",
924 "ibase_blob_cancel",
925 "ibase_blob_close",
926 "ibase_blob_create",
927 "ibase_blob_echo",
928 "ibase_blob_get",
929 "ibase_blob_import",
930 "ibase_blob_info",
931 "ibase_blob_open",
932 "ibase_close",
933 "ibase_commit",
934 "ibase_connect",
935 "ibase_errmsg",
936 "ibase_execute",
937 "ibase_fetch_object",
938 "ibase_fetch_row",
939 "ibase_field_info",
940 "ibase_free_query",
941 "ibase_free_result",
942 "ibase_num_fields",
943 "ibase_pconnect",
944 "ibase_prepare",
945 "ibase_query",
946 "ibase_rollback",
947 "ibase_timefmt",
948 "ibase_trans",
949 "iconv",
950 "iconv_get_encoding",
951 "iconv_set_encoding",
952 "identify",
953 "if",
954 "ifx_affected_rows",
955 "ifx_blobinfile_mode",
956 "ifx_byteasvarchar",
957 "ifx_close",
958 "ifx_connect",
959 "ifx_copy_blob",
960 "ifx_create_blob",
961 "ifx_create_char",
962 "ifx_do",
963 "ifx_error",
964 "ifx_errormsg",
965 "ifx_fetch_row",
966 "ifx_fieldproperties",
967 "ifx_fieldtypes",
968 "ifx_free_blob",
969 "ifx_free_char",
970 "ifx_free_result",
971 "ifx_get_blob",
972 "ifx_get_char",
973 "ifx_getsqlca",
974 "ifx_htmltbl_result",
975 "ifx_nullformat",
976 "ifx_num_fields",
977 "ifx_num_rows",
978 "ifx_pconnect",
979 "ifx_prepare",
980 "ifx_query",
981 "ifx_textasvarchar",
982 "ifx_update_blob",
983 "ifx_update_char",
984 "ifxus_close_slob",
985 "ifxus_create_slob",
986 "ifxus_free_slob",
987 "ifxus_open_slob",
988 "ifxus_read_slob",
989 "ifxus_seek_slob",
990 "ifxus_tell_slob",
991 "ifxus_write_slob",
992 "ignore_user_abort",
993 "image2wbmp",
994 "imagealphablending",
995 "imagearc",
996 "imagechar",
997 "imagecharup",
998 "imagecolorallocate",
999 "imagecolorallocatealpha",
1000 "imagecolorat",
1001 "imagecolorclosest",
1002 "imagecolorclosestalpha",
1003 "imagecolorclosesthwb",
1004 "imagecolordeallocate",
1005 "imagecolorexact",
1006 "imagecolorexactalpha",
1007 "imagecolorresolve",
1008 "imagecolorresolvealpha",
1009 "imagecolorset",
1010 "imagecolorsforindex",
1011 "imagecolorstotal",
1012 "imagecolortransparent",
1013 "imagecopy",
1014 "imagecopymerge",
1015 "imagecopymergegray",
1016 "imagecopyresampled",
1017 "imagecopyresized",
1018 "imagecreate",
1019 "imagecreatefromgd",
1020 "imagecreatefromgd2",
1021 "imagecreatefromgd2part",
1022 "imagecreatefromgif",
1023 "imagecreatefromjpeg",
1024 "imagecreatefrompng",
1025 "imagecreatefromstring",
1026 "imagecreatefromwbmp",
1027 "imagecreatefromxbm",
1028 "imagecreatefromxpm",
1029 "imagecreatetruecolor",
1030 "imagedashedline",
1031 "imagedestroy",
1032 "imageellipse",
1033 "imagefill",
1034 "imagefilledarc",
1035 "imagefilledellipse",
1036 "imagefilledpolygon",
1037 "imagefilledrectangle",
1038 "imagefilltoborder",
1039 "imagefontheight",
1040 "imagefontwidth",
1041 "imageftbbox",
1042 "imagefttext",
1043 "imagegammacorrect",
1044 "imagegd",
1045 "imagegd2",
1046 "imagegif",
1047 "imageinterlace",
1048 "imagejpeg",
1049 "imageline",
1050 "imageloadfont",
1051 "imagepalettecopy",
1052 "imagepng",
1053 "imagepolygon",
1054 "imagepsbbox",
1055 "imagepscopyfont",
1056 "imagepsencodefont",
1057 "imagepsextendfont",
1058 "imagepsfreefont",
1059 "imagepsloadfont",
1060 "imagepsslantfont",
1061 "imagepstext",
1062 "imagerectangle",
1063 "imagerotate",
1064 "imagesetbrush",
1065 "imagesetpixel",
1066 "imagesetstyle",
1067 "imagesetthickness",
1068 "imagesettile",
1069 "imagestring",
1070 "imagestringup",
1071 "imagesx",
1072 "imagesy",
1073 "imagetruecolortopalette",
1074 "imagettfbbox",
1075 "imagettftext",
1076 "imagetypes",
1077 "image_type_to_mime_type",
1078 "imagewbmp",
1079 "imap_8bit",
1080 "imap_alerts",
1081 "imap_append",
1082 "imap_base64",
1083 "imap_binary",
1084 "imap_body",
1085 "imap_bodystruct",
1086 "imap_check",
1087 "imap_clearflag_full",
1088 "imap_close",
1089 "imap_createmailbox",
1090 "imap_delete",
1091 "imap_deletemailbox",
1092 "imap_errors",
1093 "imap_expunge",
1094 "imap_fetchbody",
1095 "imap_fetchheader",
1096 "imap_fetch_overview",
1097 "imap_fetchstructure",
1098 "imap_getmailboxes",
1099 "imap_get_quota",
1100 "imap_get_quotaroot",
1101 "imap_getsubscribed",
1102 "imap_header",
1103 "imap_headerinfo",
1104 "imap_headers",
1105 "imap_last_error",
1106 "imap_list",
1107 "imap_listmailbox",
1108 "imap_listscan",
1109 "imap_listsubscribed",
1110 "imap_lsub",
1111 "imap_mail",
1112 "imap_mailboxmsginfo",
1113 "imap_mail_compose",
1114 "imap_mail_copy",
1115 "imap_mail_move",
1116 "imap_mime_header_decode",
1117 "imap_msgno",
1118 "imap_num_msg",
1119 "imap_num_recent",
1120 "imap_open",
1121 "imap_ping",
1122 "imap_qprint",
1123 "imap_renamemailbox",
1124 "imap_reopen",
1125 "imap_rfc822_parse_adrlist",
1126 "imap_rfc822_parse_headers",
1127 "imap_rfc822_write_address",
1128 "imap_scanmailbox",
1129 "imap_search",
1130 "imap_setacl",
1131 "imap_setflag_full",
1132 "imap_set_quota",
1133 "imap_sort",
1134 "imap_status",
1135 "imap_subscribe",
1136 "imap_thread",
1137 "imap_uid",
1138 "imap_undelete",
1139 "imap_unsubscribe",
1140 "imap_utf7_decode",
1141 "imap_utf7_encode",
1142 "imap_utf8",
1143 "implements",
1144 "implode",
1145 "import_request_variables",
1146 "in_array",
1147 "include",
1148 "include_once",
1149 "info",
1150 "ingres_autocommit",
1151 "ingres_close",
1152 "ingres_commit",
1153 "ingres_connect",
1154 "ingres_fetch_array",
1155 "ingres_fetch_object",
1156 "ingres_fetch_row",
1157 "ingres_field_length",
1158 "ingres_field_name",
1159 "ingres_field_nullable",
1160 "ingres_field_precision",
1161 "ingres_field_scale",
1162 "ingres_field_type",
1163 "ingres_num_fields",
1164 "ingres_num_rows",
1165 "ingres_pconnect",
1166 "ingres_query",
1167 "ingres_rollback",
1168 "ini_alter",
1169 "ini_get",
1170 "ini_get_all",
1171 "ini_restore",
1172 "ini_set",
1173 "insert",
1174 "insertanchor",
1175 "insert_before",
1176 "insertcollection",
1177 "insertdocument",
1178 "int",
1179 "interface",
1180 "internal_subset",
1181 "intval",
1182 "ip2long",
1183 "iptcembed",
1184 "iptcparse",
1185 "ircg_channel_mode",
1186 "ircg_disconnect",
1187 "ircg_fetch_error_msg",
1188 "ircg_get_username",
1189 "ircg_html_encode",
1190 "ircg_ignore_add",
1191 "ircg_ignore_del",
1192 "ircg_is_conn_alive",
1193 "ircg_join",
1194 "ircg_kick",
1195 "ircg_lookup_format_messages",
1196 "ircg_msg",
1197 "ircg_nick",
1198 "ircg_nickname_escape",
1199 "ircg_nickname_unescape",
1200 "ircg_notice",
1201 "ircg_part",
1202 "ircg_pconnect",
1203 "ircg_register_format_messages",
1204 "ircg_set_current",
1205 "ircg_set_file",
1206 "ircg_set_on_die",
1207 "ircg_topic",
1208 "ircg_whois",
1209 "is_a",
1210 "is_array",
1211 "is_blank_node",
1212 "is_bool",
1213 "is_callable",
1214 "is_dir",
1215 "is_double",
1216 "is_executable",
1217 "is_file",
1218 "is_finite",
1219 "is_float",
1220 "is_infinite",
1221 "is_int",
1222 "is_integer",
1223 "is_link",
1224 "is_long",
1225 "is_nan",
1226 "is_null",
1227 "is_numeric",
1228 "is_object",
1229 "is_readable",
1230 "is_real",
1231 "is_resource",
1232 "is_scalar",
1233 "isset",
1234 "is_string",
1235 "is_subclass_of",
1236 "is_uploaded_file",
1237 "is_writable",
1238 "is_writeable",
1239 "java_last_exception_clear",
1240 "java_last_exception_get",
1241 "jddayofweek",
1242 "jdmonthname",
1243 "jdtofrench",
1244 "jdtogregorian",
1245 "jdtojewish",
1246 "jdtojulian",
1247 "jdtounix",
1248 "jewishtojd",
1249 "join",
1250 "jpeg2wbmp",
1251 "juliantojd",
1252 "key",
1253 "krsort",
1254 "ksort",
1255 "langdepvalue",
1256 "last_child",
1257 "lcg_value",
1258 "ldap_8859_to_t61",
1259 "ldap_add",
1260 "ldap_bind",
1261 "ldap_close",
1262 "ldap_compare",
1263 "ldap_connect",
1264 "ldap_count_entries",
1265 "ldap_delete",
1266 "ldap_dn2ufn",
1267 "ldap_err2str",
1268 "ldap_errno",
1269 "ldap_error",
1270 "ldap_explode_dn",
1271 "ldap_first_attribute",
1272 "ldap_first_entry",
1273 "ldap_first_reference",
1274 "ldap_free_result",
1275 "ldap_get_attributes",
1276 "ldap_get_dn",
1277 "ldap_get_entries",
1278 "ldap_get_option",
1279 "ldap_get_values",
1280 "ldap_get_values_len",
1281 "ldap_list",
1282 "ldap_mod_add",
1283 "ldap_mod_del",
1284 "ldap_modify",
1285 "ldap_mod_replace",
1286 "ldap_next_attribute",
1287 "ldap_next_entry",
1288 "ldap_next_reference",
1289 "ldap_parse_reference",
1290 "ldap_parse_result",
1291 "ldap_read",
1292 "ldap_rename",
1293 "ldap_search",
1294 "ldap_set_option",
1295 "ldap_set_rebind_proc",
1296 "ldap_sort",
1297 "ldap_start_tls",
1298 "ldap_t61_to_8859",
1299 "ldap_unbind",
1300 "levenshtein",
1301 "__LINE__",
1302 "link",
1303 "linkinfo",
1304 "list",
1305 "localeconv",
1306 "localtime",
1307 "lock",
1308 "log",
1309 "log10",
1310 "log1p",
1311 "long2ip",
1312 "lstat",
1313 "ltrim",
1314 "mail",
1315 "mailparse_determine_best_xfer_encoding",
1316 "mailparse_msg_create",
1317 "mailparse_msg_extract_part",
1318 "mailparse_msg_extract_part_file",
1319 "mailparse_msg_free",
1320 "mailparse_msg_get_part",
1321 "mailparse_msg_get_part_data",
1322 "mailparse_msg_get_structure",
1323 "mailparse_msg_parse",
1324 "mailparse_msg_parse_file",
1325 "mailparse_rfc822_parse_addresses",
1326 "mailparse_stream_encode",
1327 "mailparse_uudecode_all",
1328 "main",
1329 "max",
1330 "mb_convert_case",
1331 "mb_convert_encoding",
1332 "mb_convert_kana",
1333 "mb_convert_variables",
1334 "mb_decode_mimeheader",
1335 "mb_decode_numericentity",
1336 "mb_detect_encoding",
1337 "mb_detect_order",
1338 "mb_encode_mimeheader",
1339 "mb_encode_numericentity",
1340 "mb_ereg",
1341 "mb_eregi",
1342 "mb_eregi_replace",
1343 "mb_ereg_match",
1344 "mb_ereg_replace",
1345 "mb_ereg_search",
1346 "mb_ereg_search_getpos",
1347 "mb_ereg_search_getregs",
1348 "mb_ereg_search_init",
1349 "mb_ereg_search_pos",
1350 "mb_ereg_search_regs",
1351 "mb_ereg_search_setpos",
1352 "mb_get_info",
1353 "mb_http_input",
1354 "mb_http_output",
1355 "mb_internal_encoding",
1356 "mb_language",
1357 "mb_output_handler",
1358 "mb_parse_str",
1359 "mb_preferred_mime_name",
1360 "mb_regex_encoding",
1361 "mb_regex_set_options",
1362 "mb_send_mail",
1363 "mb_split",
1364 "mb_strcut",
1365 "mb_strimwidth",
1366 "mb_strlen",
1367 "mb_strpos",
1368 "mb_strrpos",
1369 "mb_strtolower",
1370 "mb_strtoupper",
1371 "mb_strwidth",
1372 "mb_substitute_character",
1373 "mb_substr",
1374 "mb_substr_count",
1375 "mcal_append_event",
1376 "mcal_close",
1377 "mcal_create_calendar",
1378 "mcal_date_compare",
1379 "mcal_date_valid",
1380 "mcal_day_of_week",
1381 "mcal_day_of_year",
1382 "mcal_days_in_month",
1383 "mcal_delete_calendar",
1384 "mcal_delete_event",
1385 "mcal_event_add_attribute",
1386 "mcal_event_init",
1387 "mcal_event_set_alarm",
1388 "mcal_event_set_category",
1389 "mcal_event_set_class",
1390 "mcal_event_set_description",
1391 "mcal_event_set_end",
1392 "mcal_event_set_recur_daily",
1393 "mcal_event_set_recur_monthly_mday",
1394 "mcal_event_set_recur_monthly_wday",
1395 "mcal_event_set_recur_none",
1396 "mcal_event_set_recur_weekly",
1397 "mcal_event_set_recur_yearly",
1398 "mcal_event_set_start",
1399 "mcal_event_set_title",
1400 "mcal_expunge",
1401 "mcal_fetch_current_stream_event",
1402 "mcal_fetch_event",
1403 "mcal_is_leap_year",
1404 "mcal_list_alarms",
1405 "mcal_list_events",
1406 "mcal_next_recurrence",
1407 "mcal_open",
1408 "mcal_popen",
1409 "mcal_rename_calendar",
1410 "mcal_reopen",
1411 "mcal_snooze",
1412 "mcal_store_event",
1413 "mcal_time_valid",
1414 "mcal_week_of_year",
1415 "mcrypt_cbc",
1416 "mcrypt_cfb",
1417 "mcrypt_create_iv",
1418 "mcrypt_decrypt",
1419 "mcrypt_ecb",
1420 "mcrypt_enc_get_algorithms_name",
1421 "mcrypt_enc_get_block_size",
1422 "mcrypt_enc_get_iv_size",
1423 "mcrypt_enc_get_key_size",
1424 "mcrypt_enc_get_modes_name",
1425 "mcrypt_enc_get_supported_key_sizes",
1426 "mcrypt_enc_is_block_algorithm",
1427 "mcrypt_enc_is_block_algorithm_mode",
1428 "mcrypt_enc_is_block_mode",
1429 "mcrypt_encrypt",
1430 "mcrypt_enc_self_test",
1431 "mcrypt_generic",
1432 "mcrypt_generic_deinit",
1433 "mcrypt_generic_end",
1434 "mcrypt_generic_init",
1435 "mcrypt_get_block_size",
1436 "mcrypt_get_cipher_name",
1437 "mcrypt_get_iv_size",
1438 "mcrypt_get_key_size",
1439 "mcrypt_list_algorithms",
1440 "mcrypt_list_modes",
1441 "mcrypt_module_close",
1442 "mcrypt_module_get_algo_block_size",
1443 "mcrypt_module_get_algo_key_size",
1444 "mcrypt_module_get_supported_key_sizes",
1445 "mcrypt_module_is_block_algorithm",
1446 "mcrypt_module_is_block_algorithm_mode",
1447 "mcrypt_module_is_block_mode",
1448 "mcrypt_module_open",
1449 "mcrypt_module_self_test",
1450 "mcrypt_ofb",
1451 "mcve_adduser",
1452 "mcve_adduserarg",
1453 "mcve_bt",
1454 "mcve_checkstatus",
1455 "mcve_chkpwd",
1456 "mcve_chngpwd",
1457 "mcve_completeauthorizations",
1458 "mcve_connect",
1459 "mcve_connectionerror",
1460 "mcve_deleteresponse",
1461 "mcve_deletetrans",
1462 "mcve_deleteusersetup",
1463 "mcve_deluser",
1464 "mcve_destroyconn",
1465 "mcve_destroyengine",
1466 "mcve_disableuser",
1467 "mcve_edituser",
1468 "mcve_enableuser",
1469 "mcve_force",
1470 "mcve_getcell",
1471 "mcve_getcellbynum",
1472 "mcve_getcommadelimited",
1473 "mcve_getheader",
1474 "mcve_getuserarg",
1475 "mcve_getuserparam",
1476 "mcve_gft",
1477 "mcve_gl",
1478 "mcve_gut",
1479 "mcve_initconn",
1480 "mcve_initengine",
1481 "mcve_initusersetup",
1482 "mcve_iscommadelimited",
1483 "mcve_liststats",
1484 "mcve_listusers",
1485 "mcve_maxconntimeout",
1486 "mcve_monitor",
1487 "mcve_numcolumns",
1488 "mcve_numrows",
1489 "mcve_override",
1490 "mcve_parsecommadelimited",
1491 "mcve_ping",
1492 "mcve_preauth",
1493 "mcve_preauthcompletion",
1494 "mcve_qc",
1495 "mcve_responseparam",
1496 "mcve_return",
1497 "mcve_returncode",
1498 "mcve_returnstatus",
1499 "mcve_sale",
1500 "mcve_setblocking",
1501 "mcve_setdropfile",
1502 "mcve_setip",
1503 "mcve_setssl",
1504 "mcve_settimeout",
1505 "mcve_settle",
1506 "mcve_text_avs",
1507 "mcve_text_code",
1508 "mcve_text_cv",
1509 "mcve_transactionauth",
1510 "mcve_transactionavs",
1511 "mcve_transactionbatch",
1512 "mcve_transactioncv",
1513 "mcve_transactionid",
1514 "mcve_transactionitem",
1515 "mcve_transactionssent",
1516 "mcve_transactiontext",
1517 "mcve_transinqueue",
1518 "mcve_transnew",
1519 "mcve_transparam",
1520 "mcve_transsend",
1521 "mcve_ub",
1522 "mcve_uwait",
1523 "mcve_verifyconnection",
1524 "mcve_verifysslcert",
1525 "mcve_void",
1526 "md5",
1527 "md5_file",
1528 "mdecrypt_generic",
1529 "memory_get_usage",
1530 "metaphone",
1531 "method_exists",
1532 "mhash",
1533 "mhash_count",
1534 "mhash_get_block_size",
1535 "mhash_get_hash_name",
1536 "mhash_keygen_s2k",
1537 "microtime",
1538 "mime_content_type",
1539 "mimetype",
1540 "min",
1541 "ming_setcubicthreshold",
1542 "ming_setscale",
1543 "ming_useswfversion",
1544 "mkdir",
1545 "mktime",
1546 "money_format",
1547 "move",
1548 "movePen",
1549 "movePenTo",
1550 "moveTo",
1551 "move_uploaded_file",
1552 "msession_connect",
1553 "msession_count",
1554 "msession_create",
1555 "msession_destroy",
1556 "msession_disconnect",
1557 "msession_find",
1558 "msession_get",
1559 "msession_get_array",
1560 "msession_getdata",
1561 "msession_inc",
1562 "msession_list",
1563 "msession_listvar",
1564 "msession_lock",
1565 "msession_plugin",
1566 "msession_randstr",
1567 "msession_set",
1568 "msession_set_array",
1569 "msession_setdata",
1570 "msession_timeout",
1571 "msession_uniq",
1572 "msession_unlock",
1573 "msg_get_queue",
1574 "msg_receive",
1575 "msg_remove_queue",
1576 "msg_send",
1577 "msg_set_queue",
1578 "msg_stat_queue",
1579 "msql",
1580 "msql_affected_rows",
1581 "msql_close",
1582 "msql_connect",
1583 "msql_create_db",
1584 "msql_createdb",
1585 "msql_data_seek",
1586 "msql_dbname",
1587 "msql_drop_db",
1588 "msql_dropdb",
1589 "msql_error",
1590 "msql_fetch_array",
1591 "msql_fetch_field",
1592 "msql_fetch_object",
1593 "msql_fetch_row",
1594 "msql_fieldflags",
1595 "msql_fieldlen",
1596 "msql_fieldname",
1597 "msql_field_seek",
1598 "msql_fieldtable",
1599 "msql_fieldtype",
1600 "msql_free_result",
1601 "msql_freeresult",
1602 "msql_list_dbs",
1603 "msql_listdbs",
1604 "msql_list_fields",
1605 "msql_listfields",
1606 "msql_list_tables",
1607 "msql_listtables",
1608 "msql_num_fields",
1609 "msql_numfields",
1610 "msql_num_rows",
1611 "msql_numrows",
1612 "msql_pconnect",
1613 "msql_query",
1614 "msql_regcase",
1615 "msql_result",
1616 "msql_select_db",
1617 "msql_selectdb",
1618 "msql_tablename",
1619 "mssql_bind",
1620 "mssql_close",
1621 "mssql_connect",
1622 "mssql_data_seek",
1623 "mssql_execute",
1624 "mssql_fetch_array",
1625 "mssql_fetch_assoc",
1626 "mssql_fetch_batch",
1627 "mssql_fetch_field",
1628 "mssql_fetch_object",
1629 "mssql_fetch_row",
1630 "mssql_field_length",
1631 "mssql_field_name",
1632 "mssql_field_seek",
1633 "mssql_field_type",
1634 "mssql_free_result",
1635 "mssql_free_statement",
1636 "mssql_get_last_message",
1637 "mssql_guid_string",
1638 "mssql_init",
1639 "mssql_min_error_severity",
1640 "mssql_min_message_severity",
1641 "mssql_next_result",
1642 "mssql_num_fields",
1643 "mssql_num_rows",
1644 "mssql_pconnect",
1645 "mssql_query",
1646 "mssql_result",
1647 "mssql_rows_affected",
1648 "mssql_select_db",
1649 "mt_getrandmax",
1650 "mt_rand",
1651 "mt_srand",
1652 "multColor",
1653 "muscat_close",
1654 "muscat_get",
1655 "muscat_give",
1656 "muscat_setup",
1657 "muscat_setup_net",
1658 "mysql_affected_rows",
1659 "mysql_change_user",
1660 "mysql_client_encoding",
1661 "mysql_close",
1662 "mysql_connect",
1663 "mysql_create_db",
1664 "mysql_data_seek",
1665 "mysql_db_name",
1666 "mysql_db_query",
1667 "mysql_drop_db",
1668 "mysql_errno",
1669 "mysql_error",
1670 "mysql_escape_string",
1671 "mysql_fetch_array",
1672 "mysql_fetch_assoc",
1673 "mysql_fetch_field",
1674 "mysql_fetch_lengths",
1675 "mysql_fetch_object",
1676 "mysql_fetch_row",
1677 "mysql_field_flags",
1678 "mysql_field_len",
1679 "mysql_field_name",
1680 "mysql_field_seek",
1681 "mysql_field_table",
1682 "mysql_field_type",
1683 "mysql_free_result",
1684 "mysql_get_client_info",
1685 "mysql_get_host_info",
1686 "mysql_get_proto_info",
1687 "mysql_get_server_info",
1688 "mysql_info",
1689 "mysql_insert_id",
1690 "mysql_list_dbs",
1691 "mysql_list_fields",
1692 "mysql_list_processes",
1693 "mysql_list_tables",
1694 "mysql_num_fields",
1695 "mysql_num_rows",
1696 "mysql_pconnect",
1697 "mysql_ping",
1698 "mysql_query",
1699 "mysql_real_escape_string",
1700 "mysql_result",
1701 "mysql_select_db",
1702 "mysql_stat",
1703 "mysql_tablename",
1704 "mysql_thread_id",
1705 "mysql_unbuffered_query",
1706 "name",
1707 "natcasesort",
1708 "natsort",
1709 "ncurses_addch",
1710 "ncurses_addchnstr",
1711 "ncurses_addchstr",
1712 "ncurses_addnstr",
1713 "ncurses_addstr",
1714 "ncurses_assume_default_colors",
1715 "ncurses_attroff",
1716 "ncurses_attron",
1717 "ncurses_attrset",
1718 "ncurses_baudrate",
1719 "ncurses_beep",
1720 "ncurses_bkgd",
1721 "ncurses_bkgdset",
1722 "ncurses_border",
1723 "ncurses_can_change_color",
1724 "ncurses_cbreak",
1725 "ncurses_clear",
1726 "ncurses_clrtobot",
1727 "ncurses_clrtoeol",
1728 "ncurses_color_set",
1729 "ncurses_curs_set",
1730 "ncurses_define_key",
1731 "ncurses_def_prog_mode",
1732 "ncurses_def_shell_mode",
1733 "ncurses_delay_output",
1734 "ncurses_delch",
1735 "ncurses_deleteln",
1736 "ncurses_delwin",
1737 "ncurses_doupdate",
1738 "ncurses_echo",
1739 "ncurses_echochar",
1740 "ncurses_end",
1741 "ncurses_erase",
1742 "ncurses_erasechar",
1743 "ncurses_filter",
1744 "ncurses_flash",
1745 "ncurses_flushinp",
1746 "ncurses_getch",
1747 "ncurses_getmouse",
1748 "ncurses_halfdelay",
1749 "ncurses_has_colors",
1750 "ncurses_has_ic",
1751 "ncurses_has_il",
1752 "ncurses_has_key",
1753 "ncurses_hline",
1754 "ncurses_inch",
1755 "ncurses_init",
1756 "ncurses_init_color",
1757 "ncurses_init_pair",
1758 "ncurses_insch",
1759 "ncurses_insdelln",
1760 "ncurses_insertln",
1761 "ncurses_insstr",
1762 "ncurses_instr",
1763 "ncurses_isendwin",
1764 "ncurses_keyok",
1765 "ncurses_killchar",
1766 "ncurses_longname",
1767 "ncurses_mouseinterval",
1768 "ncurses_mousemask",
1769 "ncurses_move",
1770 "ncurses_mvaddch",
1771 "ncurses_mvaddchnstr",
1772 "ncurses_mvaddchstr",
1773 "ncurses_mvaddnstr",
1774 "ncurses_mvaddstr",
1775 "ncurses_mvcur",
1776 "ncurses_mvdelch",
1777 "ncurses_mvgetch",
1778 "ncurses_mvhline",
1779 "ncurses_mvinch",
1780 "ncurses_mvvline",
1781 "ncurses_mvwaddstr",
1782 "ncurses_napms",
1783 "ncurses_newwin",
1784 "ncurses_nl",
1785 "ncurses_nocbreak",
1786 "ncurses_noecho",
1787 "ncurses_nonl",
1788 "ncurses_noqiflush",
1789 "ncurses_noraw",
1790 "ncurses_putp",
1791 "ncurses_qiflush",
1792 "ncurses_raw",
1793 "ncurses_refresh",
1794 "ncurses_resetty",
1795 "ncurses_savetty",
1796 "ncurses_scr_dump",
1797 "ncurses_scr_init",
1798 "ncurses_scrl",
1799 "ncurses_scr_restore",
1800 "ncurses_scr_set",
1801 "ncurses_slk_attr",
1802 "ncurses_slk_attroff",
1803 "ncurses_slk_attron",
1804 "ncurses_slk_attrset",
1805 "ncurses_slk_clear",
1806 "ncurses_slk_color",
1807 "ncurses_slk_init",
1808 "ncurses_slk_noutrefresh",
1809 "ncurses_slk_refresh",
1810 "ncurses_slk_restore",
1811 "ncurses_slk_touch",
1812 "ncurses_standend",
1813 "ncurses_standout",
1814 "ncurses_start_color",
1815 "ncurses_termattrs",
1816 "ncurses_termname",
1817 "ncurses_timeout",
1818 "ncurses_typeahead",
1819 "ncurses_ungetch",
1820 "ncurses_ungetmouse",
1821 "ncurses_use_default_colors",
1822 "ncurses_use_env",
1823 "ncurses_use_extended_names",
1824 "ncurses_vidattr",
1825 "ncurses_vline",
1826 "ncurses_wrefresh",
1827 "new",
1828 "next",
1829 "nextframe",
1830 "next_sibling",
1831 "ngettext",
1832 "nl2br",
1833 "nl_langinfo",
1834 "node_name",
1835 "node_type",
1836 "node_value",
1837 "notations",
1838 "notes_body",
1839 "notes_copy_db",
1840 "notes_create_db",
1841 "notes_create_note",
1842 "notes_drop_db",
1843 "notes_find_note",
1844 "notes_header_info",
1845 "notes_list_msgs",
1846 "notes_mark_read",
1847 "notes_mark_unread",
1848 "notes_nav_create",
1849 "notes_search",
1850 "notes_unread",
1851 "notes_version",
1852 "NULL",
1853 "number_format",
1854 "ob_clean",
1855 "ob_end_clean",
1856 "ob_end_flush",
1857 "ob_flush",
1858 "ob_get_contents",
1859 "ob_get_length",
1860 "ob_get_level",
1861 "ob_get_status",
1862 "ob_gzhandler",
1863 "ob_iconv_handler",
1864 "ob_implicit_flush",
1865 "object",
1866 "objectbyanchor",
1867 "ob_start",
1868 "ocibindbyname",
1869 "ocicancel",
1870 "OCICollAppend",
1871 "ocicollassign",
1872 "ocicollassignelem",
1873 "ocicollgetelem",
1874 "ocicollmax",
1875 "ocicollsize",
1876 "ocicolltrim",
1877 "ocicolumnisnull",
1878 "ocicolumnname",
1879 "ocicolumnprecision",
1880 "ocicolumnscale",
1881 "ocicolumnsize",
1882 "ocicolumntype",
1883 "ocicolumntyperaw",
1884 "ocicommit",
1885 "ocidefinebyname",
1886 "ocierror",
1887 "ociexecute",
1888 "ocifetch",
1889 "ocifetchinto",
1890 "ocifetchstatement",
1891 "ocifreecollection",
1892 "ocifreecursor",
1893 "OCIFreeDesc",
1894 "ocifreestatement",
1895 "ociinternaldebug",
1896 "ociloadlob",
1897 "ocilogoff",
1898 "ocilogon",
1899 "ocinewcollection",
1900 "ocinewcursor",
1901 "ocinewdescriptor",
1902 "ocinlogon",
1903 "ocinumcols",
1904 "ociparse",
1905 "ociplogon",
1906 "ociresult",
1907 "ocirollback",
1908 "ocirowcount",
1909 "ocisavelob",
1910 "ocisavelobfile",
1911 "ociserverversion",
1912 "ocisetprefetch",
1913 "ocistatementtype",
1914 "ociwritelobtofile",
1915 "octdec",
1916 "odbc_autocommit",
1917 "odbc_binmode",
1918 "odbc_close",
1919 "odbc_close_all",
1920 "odbc_columnprivileges",
1921 "odbc_columns",
1922 "odbc_commit",
1923 "odbc_connect",
1924 "odbc_cursor",
1925 "odbc_data_source",
1926 "odbc_do",
1927 "odbc_error",
1928 "odbc_errormsg",
1929 "odbc_exec",
1930 "odbc_execute",
1931 "odbc_fetch_array",
1932 "odbc_fetch_into",
1933 "odbc_fetch_object",
1934 "odbc_fetch_row",
1935 "odbc_field_len",
1936 "odbc_field_name",
1937 "odbc_field_num",
1938 "odbc_field_precision",
1939 "odbc_field_scale",
1940 "odbc_field_type",
1941 "odbc_foreignkeys",
1942 "odbc_free_result",
1943 "odbc_gettypeinfo",
1944 "odbc_longreadlen",
1945 "odbc_next_result",
1946 "odbc_num_fields",
1947 "odbc_num_rows",
1948 "odbc_pconnect",
1949 "odbc_prepare",
1950 "odbc_primarykeys",
1951 "odbc_procedurecolumns",
1952 "odbc_procedures",
1953 "odbc_result",
1954 "odbc_result_all",
1955 "odbc_rollback",
1956 "odbc_setoption",
1957 "odbc_specialcolumns",
1958 "odbc_statistics",
1959 "odbc_tableprivileges",
1960 "odbc_tables",
1961 "opendir",
1962 "openlog",
1963 "openssl_csr_export",
1964 "openssl_csr_export_to_file",
1965 "openssl_csr_new",
1966 "openssl_csr_sign",
1967 "openssl_error_string",
1968 "openssl_free_key",
1969 "openssl_get_privatekey",
1970 "openssl_get_publickey",
1971 "openssl_open",
1972 "openssl_pkcs7_decrypt",
1973 "openssl_pkcs7_encrypt",
1974 "openssl_pkcs7_sign",
1975 "openssl_pkcs7_verify",
1976 "openssl_pkey_export",
1977 "openssl_pkey_export_to_file",
1978 "openssl_pkey_get_private",
1979 "openssl_pkey_get_public",
1980 "openssl_pkey_new",
1981 "openssl_private_decrypt",
1982 "openssl_private_encrypt",
1983 "openssl_public_decrypt",
1984 "openssl_public_encrypt",
1985 "openssl_seal",
1986 "openssl_sign",
1987 "openssl_verify",
1988 "openssl_x509_check_private_key",
1989 "openssl_x509_checkpurpose",
1990 "openssl_x509_export",
1991 "openssl_x509_export_to_file",
1992 "openssl_x509_free",
1993 "openssl_x509_parse",
1994 "openssl_x509_read",
1995 "ora_bind",
1996 "ora_close",
1997 "ora_columnname",
1998 "ora_columnsize",
1999 "ora_columntype",
2000 "ora_commit",
2001 "ora_commitoff",
2002 "ora_commiton",
2003 "ora_do",
2004 "ora_error",
2005 "ora_errorcode",
2006 "ora_exec",
2007 "ora_fetch",
2008 "ora_fetch_into",
2009 "ora_getcolumn",
2010 "ora_logoff",
2011 "ora_logon",
2012 "ora_numcols",
2013 "ora_numrows",
2014 "ora_open",
2015 "ora_parse",
2016 "ora_plogon",
2017 "ora_rollback",
2018 "ord",
2019 "output",
2020 "overload",
2021 "ovrimos_close",
2022 "ovrimos_commit",
2023 "ovrimos_connect",
2024 "ovrimos_cursor",
2025 "ovrimos_exec",
2026 "ovrimos_execute",
2027 "ovrimos_fetch_into",
2028 "ovrimos_fetch_row",
2029 "ovrimos_field_len",
2030 "ovrimos_field_name",
2031 "ovrimos_field_num",
2032 "ovrimos_field_type",
2033 "ovrimos_free_result",
2034 "ovrimos_longreadlen",
2035 "ovrimos_num_fields",
2036 "ovrimos_num_rows",
2037 "ovrimos_prepare",
2038 "ovrimos_result",
2039 "ovrimos_result_all",
2040 "ovrimos_rollback",
2041 "owner_document",
2042 "pack",
2043 "parent_node",
2044 "parents",
2045 "parse_ini_file",
2046 "parse_str",
2047 "parse_url",
2048 "passthru",
2049 "pathinfo",
2050 "PATH_TRANSLATED",
2051 "pclose",
2052 "pcntl_exec",
2053 "pcntl_fork",
2054 "pcntl_signal",
2055 "pcntl_waitpid",
2056 "pcntl_wexitstatus",
2057 "pcntl_wifexited",
2058 "pcntl_wifsignaled",
2059 "pcntl_wifstopped",
2060 "pcntl_wstopsig",
2061 "pcntl_wtermsig",
2062 "pdf_add_annotation",
2063 "pdf_add_bookmark",
2064 "pdf_add_launchlink",
2065 "pdf_add_locallink",
2066 "pdf_add_note",
2067 "pdf_add_outline",
2068 "pdf_add_pdflink",
2069 "pdf_add_thumbnail",
2070 "pdf_add_weblink",
2071 "pdf_arc",
2072 "pdf_arcn",
2073 "pdf_attach_file",
2074 "pdf_begin_page",
2075 "pdf_begin_pattern",
2076 "pdf_begin_template",
2077 "pdf_circle",
2078 "pdf_clip",
2079 "pdf_close",
2080 "pdf_close_image",
2081 "pdf_closepath",
2082 "pdf_closepath_fill_stroke",
2083 "pdf_closepath_stroke",
2084 "pdf_close_pdi",
2085 "pdf_close_pdi_page",
2086 "pdf_concat",
2087 "pdf_continue_text",
2088 "pdf_curveto",
2089 "pdf_delete",
2090 "pdf_end_page",
2091 "pdf_endpath",
2092 "pdf_end_pattern",
2093 "pdf_end_template",
2094 "pdf_fill",
2095 "pdf_fill_stroke",
2096 "pdf_findfont",
2097 "pdf_get_buffer",
2098 "pdf_get_font",
2099 "pdf_get_fontname",
2100 "pdf_get_fontsize",
2101 "pdf_get_image_height",
2102 "pdf_get_image_width",
2103 "pdf_get_majorversion",
2104 "pdf_get_minorversion",
2105 "pdf_get_parameter",
2106 "pdf_get_pdi_parameter",
2107 "pdf_get_pdi_value",
2108 "pdf_get_value",
2109 "pdf_initgraphics",
2110 "pdf_lineto",
2111 "pdf_makespotcolor",
2112 "pdf_moveto",
2113 "pdf_new",
2114 "pdf_open",
2115 "pdf_open_CCITT",
2116 "pdf_open_file",
2117 "pdf_open_gif",
2118 "pdf_open_image",
2119 "pdf_open_image_file",
2120 "pdf_open_jpeg",
2121 "pdf_open_memory_image",
2122 "pdf_open_pdi",
2123 "pdf_open_pdi_page",
2124 "pdf_open_png",
2125 "pdf_open_tiff",
2126 "pdf_place_image",
2127 "pdf_place_pdi_page",
2128 "pdf_rect",
2129 "pdf_restore",
2130 "pdf_rotate",
2131 "pdf_save",
2132 "pdf_scale",
2133 "pdf_set_border_color",
2134 "pdf_set_border_dash",
2135 "pdf_set_border_style",
2136 "pdf_set_char_spacing",
2137 "pdf_setcolor",
2138 "pdf_setdash",
2139 "pdf_set_duration",
2140 "pdf_setflat",
2141 "pdf_set_font",
2142 "pdf_setfont",
2143 "pdf_setgray",
2144 "pdf_setgray_fill",
2145 "pdf_setgray_stroke",
2146 "pdf_set_horiz_scaling",
2147 "pdf_set_info",
2148 "pdf_set_info_author",
2149 "pdf_set_info_creator",
2150 "pdf_set_info_keywords",
2151 "pdf_set_info_subject",
2152 "pdf_set_info_title",
2153 "pdf_set_leading",
2154 "pdf_setlinecap",
2155 "pdf_setlinejoin",
2156 "pdf_setlinewidth",
2157 "pdf_setmatrix",
2158 "pdf_setmiterlimit",
2159 "pdf_set_parameter",
2160 "pdf_setpolydash",
2161 "pdf_setrgbcolor",
2162 "pdf_setrgbcolor_fill",
2163 "pdf_setrgbcolor_stroke",
2164 "pdf_set_text_matrix",
2165 "pdf_set_text_pos",
2166 "pdf_set_text_rendering",
2167 "pdf_set_text_rise",
2168 "pdf_set_value",
2169 "pdf_set_word_spacing",
2170 "pdf_show",
2171 "pdf_show_boxed",
2172 "pdf_show_xy",
2173 "pdf_skew",
2174 "pdf_stringwidth",
2175 "pdf_stroke",
2176 "pdf_translate",
2177 "PEAR_EXTENSION_DIR",
2178 "PEAR_INSTALL_DIR",
2179 "pfpro_cleanup",
2180 "pfpro_init",
2181 "pfpro_process",
2182 "pfpro_process_raw",
2183 "pfpro_version",
2184 "pfsockopen",
2185 "pg_affected_rows",
2186 "pg_cancel_query",
2187 "pg_client_encoding",
2188 "pg_close",
2189 "pg_connect",
2190 "pg_connection_busy",
2191 "pg_connection_reset",
2192 "pg_connection_status",
2193 "pg_convert",
2194 "pg_copy_from",
2195 "pg_copy_to",
2196 "pg_dbname",
2197 "pg_delete",
2198 "pg_end_copy",
2199 "pg_escape_bytea",
2200 "pg_escape_string",
2201 "pg_fetch_all",
2202 "pg_fetch_array",
2203 "pg_fetch_assoc",
2204 "pg_fetch_object",
2205 "pg_fetch_result",
2206 "pg_fetch_row",
2207 "pg_field_is_null",
2208 "pg_field_name",
2209 "pg_field_num",
2210 "pg_field_prtlen",
2211 "pg_field_size",
2212 "pg_field_type",
2213 "pg_free_result",
2214 "pg_get_notify",
2215 "pg_get_pid",
2216 "pg_get_result",
2217 "pg_host",
2218 "pg_insert",
2219 "pg_last_error",
2220 "pg_last_notice",
2221 "pg_last_oid",
2222 "pg_lo_close",
2223 "pg_lo_create",
2224 "pg_lo_export",
2225 "pg_lo_import",
2226 "pg_lo_open",
2227 "pg_lo_read",
2228 "pg_lo_read_all",
2229 "pg_lo_seek",
2230 "pg_lo_tell",
2231 "pg_lo_unlink",
2232 "pg_lo_write",
2233 "pg_meta_data",
2234 "pg_num_fields",
2235 "pg_num_rows",
2236 "pg_options",
2237 "pg_pconnect",
2238 "pg_ping",
2239 "pg_port",
2240 "pg_put_line",
2241 "pg_query",
2242 "pg_result_error",
2243 "pg_result_seek",
2244 "pg_result_status",
2245 "pg_select",
2246 "pg_send_query",
2247 "pg_set_client_encoding",
2248 "pg_trace",
2249 "pg_tty",
2250 "pg_unescape_bytea",
2251 "pg_untrace",
2252 "pg_update",
2253 "PHP_BINDIR",
2254 "PHP_CONFIG_FILE_PATH",
2255 "phpcredits",
2256 "PHP_DATADIR",
2257 "PHP_ERRMSG",
2258 "PHP_EXTENSION_DIR",
2259 "phpinfo",
2260 "php_ini_scanned_files",
2261 "PHP_LIBDIR",
2262 "PHP_LOCALSTATEDIR",
2263 "php_logo_guid",
2264 "PHP_OS",
2265 "PHP_OUTPUT_HANDLER_CONT",
2266 "PHP_OUTPUT_HANDLER_END",
2267 "PHP_OUTPUT_HANDLER_START",
2268 "php_sapi_name",
2269 "PHP_SELF",
2270 "PHP_SYSCONFDIR",
2271 "php_uname",
2272 "phpversion",
2273 "PHP_VERSION",
2274 "pi",
2275 "png2wbmp",
2276 "popen",
2277 "pos",
2278 "posix_ctermid",
2279 "posix_getcwd",
2280 "posix_getegid",
2281 "posix_geteuid",
2282 "posix_getgid",
2283 "posix_getgrgid",
2284 "posix_getgrnam",
2285 "posix_getgroups",
2286 "posix_getlogin",
2287 "posix_getpgid",
2288 "posix_getpgrp",
2289 "posix_getpid",
2290 "posix_getppid",
2291 "posix_getpwnam",
2292 "posix_getpwuid",
2293 "posix_getrlimit",
2294 "posix_getsid",
2295 "posix_getuid",
2296 "posix_isatty",
2297 "posix_kill",
2298 "posix_mkfifo",
2299 "posix_setegid",
2300 "posix_seteuid",
2301 "posix_setgid",
2302 "posix_setpgid",
2303 "posix_setsid",
2304 "posix_setuid",
2305 "posix_times",
2306 "posix_ttyname",
2307 "posix_uname",
2308 "_POST",
2309 "pow",
2310 "prefix",
2311 "preg_grep",
2312 "preg_match",
2313 "preg_match_all",
2314 "preg_quote",
2315 "preg_replace",
2316 "preg_replace_callback",
2317 "preg_split",
2318 "prev",
2319 "previous_sibling",
2320 "print",
2321 "printer_abort",
2322 "printer_close",
2323 "printer_create_brush",
2324 "printer_create_dc",
2325 "printer_create_font",
2326 "printer_create_pen",
2327 "printer_delete_brush",
2328 "printer_delete_dc",
2329 "printer_delete_font",
2330 "printer_delete_pen",
2331 "printer_draw_bmp",
2332 "printer_draw_chord",
2333 "printer_draw_elipse",
2334 "printer_draw_line",
2335 "printer_draw_pie",
2336 "printer_draw_rectangle",
2337 "printer_draw_roundrect",
2338 "printer_draw_text",
2339 "printer_end_doc",
2340 "printer_end_page",
2341 "printer_get_option",
2342 "printer_list",
2343 "printer_logical_fontheight",
2344 "printer_open",
2345 "printer_select_brush",
2346 "printer_select_font",
2347 "printer_select_pen",
2348 "printer_set_option",
2349 "printer_start_doc",
2350 "printer_start_page",
2351 "printer_write",
2352 "printf",
2353 "print_r",
2354 "private",
2355 "proc_close",
2356 "process",
2357 "proc_open",
2358 "protected",
2359 "pspell_add_to_personal",
2360 "pspell_add_to_session",
2361 "pspell_check",
2362 "pspell_clear_session",
2363 "pspell_config_create",
2364 "pspell_config_ignore",
2365 "pspell_config_mode",
2366 "pspell_config_personal",
2367 "pspell_config_repl",
2368 "pspell_config_runtogether",
2369 "pspell_config_save_repl",
2370 "pspell_new",
2371 "pspell_new_config",
2372 "pspell_new_personal",
2373 "pspell_save_wordlist",
2374 "pspell_store_replacement",
2375 "pspell_suggest",
2376 "public",
2377 "public_id",
2378 "putenv",
2379 "qdom_error",
2380 "qdom_tree",
2381 "QUERY_STRING",
2382 "quoted_printable_decode",
2383 "quotemeta",
2384 "rad2deg",
2385 "rand",
2386 "range",
2387 "rawurldecode",
2388 "rawurlencode",
2389 "read",
2390 "readdir",
2391 "read_exif_data",
2392 "readfile",
2393 "readgzfile",
2394 "readline",
2395 "readline_add_history",
2396 "readline_clear_history",
2397 "readline_completion_function",
2398 "readline_info",
2399 "readline_list_history",
2400 "readline_read_history",
2401 "readline_write_history",
2402 "readlink",
2403 "realpath",
2404 "reason",
2405 "recode",
2406 "recode_file",
2407 "recode_string",
2408 "register_shutdown_function",
2409 "register_tick_function",
2410 "REMOTE_ADDR",
2411 "REMOTE_PORT",
2412 "remove",
2413 "remove_attribute",
2414 "remove_child",
2415 "rename",
2416 "replace",
2417 "replace_child",
2418 "replace_node",
2419 "_REQUEST",
2420 "REQUEST_METHOD",
2421 "REQUEST_URI",
2422 "require",
2423 "require_once",
2424 "reset",
2425 "restore_error_handler",
2426 "restore_include_path",
2427 "result_dump_file",
2428 "result_dump_mem",
2429 "return",
2430 "rewind",
2431 "rewinddir",
2432 "rmdir",
2433 "Rotate",
2434 "rotateTo",
2435 "round",
2436 "rsort",
2437 "rtrim",
2438 "save",
2439 "scale",
2440 "scaleTo",
2441 "SCRIPT_FILENAME",
2442 "SCRIPT_NAME",
2443 "sem_acquire",
2444 "sem_get",
2445 "sem_release",
2446 "sem_remove",
2447 "serialize",
2448 "_SERVER",
2449 "SERVER_ADMIN",
2450 "SERVER_NAME",
2451 "SERVER_PORT",
2452 "SERVER_PROTOCOL",
2453 "SERVER_SIGNATURE",
2454 "SERVER_SOFTWARE",
2455 "sesam_affected_rows",
2456 "sesam_commit",
2457 "sesam_connect",
2458 "sesam_diagnostic",
2459 "sesam_disconnect",
2460 "sesam_errormsg",
2461 "sesam_execimm",
2462 "sesam_fetch_array",
2463 "sesam_fetch_result",
2464 "sesam_fetch_row",
2465 "sesam_field_array",
2466 "sesam_field_name",
2467 "sesam_free_result",
2468 "sesam_num_fields",
2469 "sesam_query",
2470 "sesam_rollback",
2471 "sesam_seek_row",
2472 "sesam_settransaction",
2473 "_SESSION",
2474 "session_cache_expire",
2475 "session_cache_limiter",
2476 "session_decode",
2477 "session_destroy",
2478 "session_encode",
2479 "session_get_cookie_params",
2480 "session_id",
2481 "session_is_registered",
2482 "session_module_name",
2483 "session_name",
2484 "session_readonly",
2485 "session_register",
2486 "session_save_path",
2487 "session_set_cookie_params",
2488 "session_set_save_handler",
2489 "session_start",
2490 "session_unregister",
2491 "session_unset",
2492 "session_write_close",
2493 "setAction",
2494 "set_attribute",
2495 "setbackground",
2496 "setbounds",
2497 "setcolor",
2498 "setColor",
2499 "setcommitedversion",
2500 "set_content",
2501 "setcookie",
2502 "setDepth",
2503 "setdimension",
2504 "setdown",
2505 "set_error_handler",
2506 "set_file_buffer",
2507 "setFont",
2508 "setframes",
2509 "setHeight",
2510 "setHit",
2511 "set_include_path",
2512 "setindentation",
2513 "setLeftFill",
2514 "setLeftMargin",
2515 "setLine",
2516 "setLineSpacing",
2517 "setlocale",
2518 "set_magic_quotes_runtime",
2519 "setMargins",
2520 "set_name",
2521 "setname",
2522 "setName",
2523 "set_namespace",
2524 "setOver",
2525 "setrate",
2526 "setRatio",
2527 "setRightFill",
2528 "setrightMargin",
2529 "setSpacing",
2530 "set_time_limit",
2531 "settype",
2532 "setUp",
2533 "sha1",
2534 "sha1_file",
2535 "shell_exec",
2536 "shm_attach",
2537 "shm_detach",
2538 "shm_get_var",
2539 "shmop_close",
2540 "shmop_delete",
2541 "shmop_open",
2542 "shmop_read",
2543 "shmop_size",
2544 "shmop_write",
2545 "shm_put_var",
2546 "shm_remove",
2547 "shm_remove_var",
2548 "show_source",
2549 "shuffle",
2550 "similar_text",
2551 "sin",
2552 "sinh",
2553 "sizeof",
2554 "skewX",
2555 "skewXTo",
2556 "skewY",
2557 "skewYTo",
2558 "sleep",
2559 "snmpget",
2560 "snmp_get_quick_print",
2561 "snmprealwalk",
2562 "snmpset",
2563 "snmp_set_quick_print",
2564 "snmpwalk",
2565 "snmpwalkoid",
2566 "socket_accept",
2567 "socket_bind",
2568 "socket_clear_error",
2569 "socket_close",
2570 "socket_connect",
2571 "socket_create",
2572 "socket_create_listen",
2573 "socket_create_pair",
2574 "socket_get_option",
2575 "socket_getpeername",
2576 "socket_getsockname",
2577 "socket_get_status",
2578 "socket_iovec_add",
2579 "socket_iovec_alloc",
2580 "socket_iovec_delete",
2581 "socket_iovec_fetch",
2582 "socket_iovec_free",
2583 "socket_iovec_set",
2584 "socket_last_error",
2585 "socket_listen",
2586 "socket_read",
2587 "socket_readv",
2588 "socket_recv",
2589 "socket_recvfrom",
2590 "socket_recvmsg",
2591 "socket_select",
2592 "socket_send",
2593 "socket_sendmsg",
2594 "socket_sendto",
2595 "socket_set_blocking",
2596 "socket_set_nonblock",
2597 "socket_set_option",
2598 "socket_set_timeout",
2599 "socket_shutdown",
2600 "socket_strerror",
2601 "socket_write",
2602 "socket_writev",
2603 "sort",
2604 "soundex",
2605 "specified",
2606 "split",
2607 "spliti",
2608 "sprintf",
2609 "sql_regcase",
2610 "sqrt",
2611 "srand",
2612 "srcanchors",
2613 "srcsofdst",
2614 "sscanf",
2615 "stat",
2616 "static",
2617 "stdClass",
2618 "strcasecmp",
2619 "strchr",
2620 "strcmp",
2621 "strcoll",
2622 "strcspn",
2623 "stream_context_create",
2624 "stream_context_get_options",
2625 "stream_context_set_option",
2626 "stream_context_set_params",
2627 "stream_filter_append",
2628 "stream_filter_prepend",
2629 "stream_get_filters",
2630 "stream_get_meta_data",
2631 "stream_get_wrappers",
2632 "streammp3",
2633 "stream_register_filter",
2634 "stream_register_wrapper",
2635 "stream_select",
2636 "stream_set_blocking",
2637 "stream_set_timeout",
2638 "stream_set_write_buffer",
2639 "strftime",
2640 "stripcslashes",
2641 "stripslashes",
2642 "strip_tags",
2643 "stristr",
2644 "strlen",
2645 "strnatcasecmp",
2646 "strnatcmp",
2647 "strncasecmp",
2648 "strncmp",
2649 "str_pad",
2650 "strpos",
2651 "strrchr",
2652 "str_repeat",
2653 "str_replace",
2654 "strrev",
2655 "str_rot13",
2656 "strrpos",
2657 "str_shuffle",
2658 "strspn",
2659 "strstr",
2660 "strtok",
2661 "strtolower",
2662 "strtotime",
2663 "strtoupper",
2664 "strtr",
2665 "strval",
2666 "str_word_count",
2667 "substr",
2668 "substr_count",
2669 "substr_replace",
2670 "SWFAction",
2671 "swf_actiongeturl",
2672 "swf_actiongotoframe",
2673 "swf_actiongotolabel",
2674 "swf_actionnextframe",
2675 "swf_actionplay",
2676 "swf_actionprevframe",
2677 "swf_actionsettarget",
2678 "swf_actionstop",
2679 "swf_actiontogglequality",
2680 "swf_actionwaitforframe",
2681 "swf_addbuttonrecord",
2682 "swf_addcolor",
2683 "SWFBitmap",
2684 "SWFbutton",
2685 "swfbutton_keypress",
2686 "swf_closefile",
2687 "swf_definebitmap",
2688 "swf_definefont",
2689 "swf_defineline",
2690 "swf_definepoly",
2691 "swf_definerect",
2692 "swf_definetext",
2693 "SWFDisplayItem",
2694 "swf_endbutton",
2695 "swf_enddoaction",
2696 "swf_endshape",
2697 "swf_endsymbol",
2698 "SWFFill",
2699 "SWFFont",
2700 "swf_fontsize",
2701 "swf_fontslant",
2702 "swf_fonttracking",
2703 "swf_getbitmapinfo",
2704 "swf_getfontinfo",
2705 "swf_getframe",
2706 "SWFGradient",
2707 "swf_labelframe",
2708 "swf_lookat",
2709 "swf_modifyobject",
2710 "SWFMorph",
2711 "SWFMovie",
2712 "swf_mulcolor",
2713 "swf_nextid",
2714 "swf_oncondition",
2715 "swf_openfile",
2716 "swf_ortho",
2717 "swf_ortho2",
2718 "swf_perspective",
2719 "swf_placeobject",
2720 "swf_polarview",
2721 "swf_popmatrix",
2722 "swf_posround",
2723 "swf_pushmatrix",
2724 "swf_removeobject",
2725 "swf_rotate",
2726 "swf_scale",
2727 "swf_setfont",
2728 "swf_setframe",
2729 "SWFShape",
2730 "swf_shapearc",
2731 "swf_shapecurveto",
2732 "swf_shapecurveto3",
2733 "swf_shapefillbitmapclip",
2734 "swf_shapefillbitmaptile",
2735 "swf_shapefilloff",
2736 "swf_shapefillsolid",
2737 "swf_shapelinesolid",
2738 "swf_shapelineto",
2739 "swf_shapemoveto",
2740 "swf_showframe",
2741 "SWFSprite",
2742 "swf_startbutton",
2743 "swf_startdoaction",
2744 "swf_startshape",
2745 "swf_startsymbol",
2746 "SWFText",
2747 "SWFTextField",
2748 "swf_textwidth",
2749 "swf_translate",
2750 "swf_viewport",
2751 "switch",
2752 "sybase_affected_rows",
2753 "sybase_close",
2754 "sybase_connect",
2755 "sybase_data_seek",
2756 "sybase_fetch_array",
2757 "sybase_fetch_field",
2758 "sybase_fetch_object",
2759 "sybase_fetch_row",
2760 "sybase_field_seek",
2761 "sybase_free_result",
2762 "sybase_get_last_message",
2763 "sybase_min_client_severity",
2764 "sybase_min_error_severity",
2765 "sybase_min_message_severity",
2766 "sybase_min_server_severity",
2767 "sybase_num_fields",
2768 "sybase_num_rows",
2769 "sybase_pconnect",
2770 "sybase_query",
2771 "sybase_result",
2772 "sybase_select_db",
2773 "symlink",
2774 "syslog",
2775 "system",
2776 "system_id",
2777 "tagname",
2778 "tan",
2779 "tanh",
2780 "target",
2781 "tempnam",
2782 "textdomain",
2783 "time",
2784 "title",
2785 "tmpfile",
2786 "token_get_all",
2787 "token_name",
2788 "touch",
2789 "trigger_error",
2790 "trim",
2791 "TRUE",
2792 "type",
2793 "uasort",
2794 "ucfirst",
2795 "ucwords",
2796 "udm_add_search_limit",
2797 "udm_alloc_agent",
2798 "udm_api_version",
2799 "udm_cat_list",
2800 "udm_cat_path",
2801 "udm_check_charset",
2802 "udm_check_stored",
2803 "udm_clear_search_limits",
2804 "udm_close_stored",
2805 "udm_crc32",
2806 "udm_errno",
2807 "udm_error",
2808 "udm_find",
2809 "udm_free_agent",
2810 "udm_free_ispell_data",
2811 "udm_free_res",
2812 "udm_get_doc_count",
2813 "udm_get_res_field",
2814 "udm_get_res_param",
2815 "udm_load_ispell_data",
2816 "udm_open_stored",
2817 "udm_set_agent_param",
2818 "uksort",
2819 "umask",
2820 "uniqid",
2821 "unixtojd",
2822 "unlink",
2823 "unlink_node",
2824 "unlock",
2825 "unpack",
2826 "unregister_tick_function",
2827 "unserialize",
2828 "unset",
2829 "urldecode",
2830 "urlencode",
2831 "user",
2832 "user_error",
2833 "userlist",
2834 "usleep",
2835 "usort",
2836 "utf8_decode",
2837 "utf8_encode",
2838 "value",
2839 "values",
2840 "var",
2841 "var_dump",
2842 "var_export",
2843 "version_compare",
2844 "virtual",
2845 "vpopmail_add_alias_domain",
2846 "vpopmail_add_alias_domain_ex",
2847 "vpopmail_add_domain",
2848 "vpopmail_add_domain_ex",
2849 "vpopmail_add_user",
2850 "vpopmail_alias_add",
2851 "vpopmail_alias_del",
2852 "vpopmail_alias_del_domain",
2853 "vpopmail_alias_get",
2854 "vpopmail_alias_get_all",
2855 "vpopmail_auth_user",
2856 "vpopmail_del_domain",
2857 "vpopmail_del_domain_ex",
2858 "vpopmail_del_user",
2859 "vpopmail_error",
2860 "vpopmail_passwd",
2861 "vpopmail_set_user_quota",
2862 "vprintf",
2863 "vsprintf",
2864 "w32api_deftype",
2865 "w32api_init_dtype",
2866 "w32api_invoke_function",
2867 "w32api_register_function",
2868 "w32api_set_call_method",
2869 "wddx_add_vars",
2870 "wddx_deserialize",
2871 "wddx_packet_end",
2872 "wddx_packet_start",
2873 "wddx_serialize_value",
2874 "wddx_serialize_vars",
2875 "while",
2876 "wordwrap",
2877 "xinclude",
2878 "xml_error_string",
2879 "xml_get_current_byte_index",
2880 "xml_get_current_column_number",
2881 "xml_get_current_line_number",
2882 "xml_get_error_code",
2883 "xml_parse",
2884 "xml_parse_into_struct",
2885 "xml_parser_create",
2886 "xml_parser_create_ns",
2887 "xml_parser_free",
2888 "xml_parser_get_option",
2889 "xml_parser_set_option",
2890 "xmlrpc_decode",
2891 "xmlrpc_decode_request",
2892 "xmlrpc_encode",
2893 "xmlrpc_encode_request",
2894 "xmlrpc_get_type",
2895 "xmlrpc_parse_method_descriptions",
2896 "xmlrpc_server_add_introspection_data",
2897 "xmlrpc_server_call_method",
2898 "xmlrpc_server_create",
2899 "xmlrpc_server_destroy",
2900 "xmlrpc_server_register_introspection_callback",
2901 "xmlrpc_server_register_method",
2902 "xmlrpc_set_type",
2903 "xml_set_character_data_handler",
2904 "xml_set_default_handler",
2905 "xml_set_element_handler",
2906 "xml_set_end_namespace_decl_handler",
2907 "xml_set_external_entity_ref_handler",
2908 "xml_set_notation_decl_handler",
2909 "xml_set_object",
2910 "xml_set_processing_instruction_handler",
2911 "xml_set_start_namespace_decl_handler",
2912 "xml_set_unparsed_entity_decl_handler",
2913 "xpath_eval",
2914 "xpath_eval_expression",
2915 "xpath_new_context",
2916 "xptr_eval",
2917 "xptr_new_context",
2918 "xslt_create",
2919 "xslt_errno",
2920 "xslt_error",
2921 "xslt_free",
2922 "xslt_output_process",
2923 "xslt_set_base",
2924 "xslt_set_encoding",
2925 "xslt_set_error_handler",
2926 "xslt_set_log",
2927 "xslt_set_sax_handler",
2928 "xslt_set_sax_handlers",
2929 "xslt_set_scheme_handler",
2930 "xslt_set_scheme_handlers",
2931 "yaz_addinfo",
2932 "yaz_ccl_conf",
2933 "yaz_ccl_parse",
2934 "yaz_close",
2935 "yaz_connect",
2936 "yaz_database",
2937 "yaz_element",
2938 "yaz_errno",
2939 "yaz_error",
2940 "yaz_get_option",
2941 "yaz_hits",
2942 "yaz_itemorder",
2943 "yaz_present",
2944 "yaz_range",
2945 "yaz_record",
2946 "yaz_scan",
2947 "yaz_scan_result",
2948 "yaz_schema",
2949 "yaz_search",
2950 "yaz_set_option",
2951 "yaz_sort",
2952 "yaz_syntax",
2953 "yaz_wait",
2954 "yp_all",
2955 "yp_cat",
2956 "yp_errno",
2957 "yp_err_string",
2958 "yp_first",
2959 "yp_get_default_domain",
2960 "yp_master",
2961 "yp_match",
2962 "yp_next",
2963 "yp_order",
2964 "zend_logo_guid",
2965 "zend_version",
2966 "zend_version",
2967 "zip_close",
2968 "zip_entry_close",
2969 "zip_entry_compressedsize",
2970 "zip_entry_compressionmethod",
2971 "zip_entry_filesize",
2972 "zip_entry_name",
2973 "zip_entry_open",
2974 "zip_entry_read",
2975 "zip_open",
2976 "zip_read",
2977 0
2978 };
2979
Php5Writer()2980 Php5Writer::Php5Writer()
2981 {
2982 }
2983
~Php5Writer()2984 Php5Writer::~Php5Writer()
2985 {
2986 }
2987
2988 /**
2989 * Call this method to generate Php code for a UMLClassifier.
2990 * @param c the class you want to generate code for.
2991 */
writeClass(UMLClassifier * c)2992 void Php5Writer::writeClass(UMLClassifier *c)
2993 {
2994 if (!c) {
2995 uDebug()<<"Cannot write class of NULL concept!";
2996 return;
2997 }
2998
2999 QString classname = cleanName(c->name());
3000 //find an appropriate name for our file
3001 QString fileName = findFileName(c, QLatin1String(".php"));
3002 if (fileName.isEmpty()) {
3003 emit codeGenerated(c, false);
3004 return;
3005 }
3006
3007 QFile filephp;
3008 if (!openFile(filephp, fileName)) {
3009 emit codeGenerated(c, false);
3010 return;
3011 }
3012 QTextStream php(&filephp);
3013
3014 //////////////////////////////
3015 //Start generating the code!!
3016 /////////////////////////////
3017
3018 //try to find a heading file (license, comments, etc)
3019 QString str;
3020 str = getHeadingFile(QLatin1String(".php"));
3021 if (!str.isEmpty()) {
3022 str.replace(QRegExp(QLatin1String("%filename%")), fileName);
3023 str.replace(QRegExp(QLatin1String("%filepath%")), filephp.fileName());
3024 php<<str<<m_endl;
3025 } else {
3026 php << "<?php" << m_endl;
3027 }
3028
3029 //write includes
3030 UMLPackageList includes;
3031 findObjectsRelated(c, includes);
3032 foreach(UMLPackage* conc, includes) {
3033 QString headerName = findFileName(conc, QLatin1String(".php"));
3034 if (!headerName.isEmpty()) {
3035 php << "require_once '" << headerName << "';" << m_endl;
3036 }
3037 }
3038 php << m_endl;
3039
3040 //Write class Documentation if there is something or if force option
3041 if (forceDoc() || !c->doc().isEmpty()) {
3042 php << m_endl << "/**" << m_endl;
3043 php << " * class " << classname << m_endl;
3044 php << formatDoc(c->doc(), QLatin1String(" * "));
3045 php << " */" << m_endl ;
3046 }
3047
3048 UMLClassifierList superclasses = c->getSuperClasses(false);
3049 UMLAssociationList aggregations = c->getAggregations();
3050 UMLAssociationList compositions = c->getCompositions();
3051 UMLAssociationList realizations = c->getRealizations();
3052
3053 bool isInterface = c->isInterface();
3054
3055 //check if it is an interface or regular class
3056 if (isInterface) {
3057 php << "interface " << classname;
3058 } else {
3059 //check if class is abstract and / or has abstract methods
3060 if (c->isAbstract())
3061 php << "abstract ";
3062 php << "class " << classname << (superclasses.count() > 0 ? QLatin1String(" extends ") : QString());
3063 if (superclasses.count() > 0) {
3064 //php5 does not support multiple inheritance so only use the first one and print a warning if more are used
3065 UMLClassifier *obj = superclasses.first();
3066 php << cleanName(obj->name());
3067 if (superclasses.count() > 1)
3068 php << m_indentation << "//WARNING: PHP5 does not support multiple inheritance but there is more than 1 superclass defined in your UML model!";
3069 }
3070 //check for realizations
3071 if (!realizations.isEmpty()) {
3072 int rc = realizations.count();
3073 int ri = rc;
3074 foreach (UMLAssociation* a, realizations) {
3075 UMLObject *o = a->getObject(Uml::RoleType::B);
3076 QString typeName = cleanName(o->name());
3077 if (ri == rc)
3078 php << m_endl << m_indentation << m_indentation << m_indentation << "implements ";
3079 php << typeName << (--rc == 0 ? QString() : QLatin1String(", "));
3080 }
3081 }
3082 }
3083 php << m_endl << '{' << m_endl;
3084
3085 //associations
3086 if (forceSections() || !aggregations.isEmpty()) {
3087 php<< m_endl << m_indentation << "/** Aggregations: */" << m_endl;
3088 foreach (UMLAssociation* a, aggregations) {
3089 php<< m_endl;
3090 //maybe we should parse the string here and take multiplicity into account to decide
3091 //which container to use.
3092 UMLObject *o = a->getObject(Uml::RoleType::A);
3093 if (o == 0) {
3094 uError() << "aggregation role A object is NULL" << endl;
3095 continue;
3096 }
3097 //:UNUSED: QString typeName = cleanName(o->name());
3098 if (a->getMultiplicity(Uml::RoleType::A).isEmpty()) {
3099 php << m_indentation << "var $m_" << ';' << m_endl;
3100 } else {
3101 php << m_indentation << "var $m_" << "Vector = array();" << m_endl;
3102 }
3103 }//end for
3104 }
3105
3106 if (forceSections() || !compositions.isEmpty()) {
3107 php<< m_endl << m_indentation << "/** Compositions: */" << m_endl;
3108 foreach (UMLAssociation* a, compositions) {
3109 // see comment on Aggregation about multiplicity...
3110 UMLObject *o = a->getObject(Uml::RoleType::A);
3111 if (o == 0) {
3112 uError() << "composition role A object is NULL";
3113 continue;
3114 }
3115 //:UNUSED: QString typeName = cleanName(o->name());
3116 if (a->getMultiplicity(Uml::RoleType::A).isEmpty()) {
3117 php << m_indentation << "var $m_" << ';' << m_endl;
3118 } else {
3119 php << m_indentation << "var $m_" << "Vector = array();" << m_endl;
3120 }
3121 }
3122 }
3123
3124 //attributes
3125 if (!isInterface)
3126 writeAttributes(c, php);
3127
3128 //operations
3129 writeOperations(c, php);
3130
3131 php << m_endl;
3132
3133 //finish file
3134 php << m_endl << "} // end of " << classname << m_endl;
3135 php << "?>" << m_endl;
3136
3137 //close files and notfiy we are done
3138 filephp.close();
3139 emit codeGenerated(c, true);
3140 emit showGeneratedFile(filephp.fileName());
3141 }
3142
3143 ////////////////////////////////////////////////////////////////////////////////////
3144 // Helper Methods
3145
3146 /**
3147 * Write all operations for a given class.
3148 * @param c the concept we are generating code for
3149 * @param php output stream for the PHP file
3150 */
writeOperations(UMLClassifier * c,QTextStream & php)3151 void Php5Writer::writeOperations(UMLClassifier *c, QTextStream &php)
3152 {
3153 //Lists to store operations sorted by scope
3154 UMLOperationList oppub, opprot, oppriv;
3155
3156 bool isInterface = c->isInterface();
3157 bool generateErrorStub = false;
3158
3159 //sort operations by scope first and see if there are abstract methods
3160 UMLOperationList opl(c->getOpList());
3161 foreach (UMLOperation *op, opl) {
3162 switch(op->visibility()) {
3163 case Uml::Visibility::Public:
3164 oppub.append(op);
3165 break;
3166 case Uml::Visibility::Protected:
3167 opprot.append(op);
3168 break;
3169 case Uml::Visibility::Private:
3170 oppriv.append(op);
3171 break;
3172 default:
3173 break;
3174 }
3175 }
3176
3177 QString classname(cleanName(c->name()));
3178
3179 //write operations to file
3180 if (forceSections() || !oppub.isEmpty()) {
3181 php << m_endl;
3182 writeOperations(classname, oppub, php, isInterface, generateErrorStub);
3183 }
3184
3185 if (forceSections() || !opprot.isEmpty()) {
3186 php << m_endl;
3187 writeOperations(classname, opprot, php, isInterface, generateErrorStub);
3188 }
3189
3190 if (forceSections() || !oppriv.isEmpty()) {
3191 php << m_endl;
3192 writeOperations(classname, oppriv, php, isInterface, generateErrorStub);
3193 }
3194
3195 // build an oplist for all of the realized operations
3196 UMLOperationList opreal;
3197
3198 // go through each of the realizations, taking each op
3199 UMLAssociationList realizations = c->getRealizations();
3200
3201 if (!realizations.isEmpty()) {
3202 foreach (UMLAssociation* a, realizations) {
3203
3204 // we know its a classifier if its in the list
3205 UMLClassifier *real = (UMLClassifier*)a->getObject(Uml::RoleType::B);
3206
3207 // exclude realizations to self
3208 if (real == c)
3209 continue;
3210
3211 UMLOperationList opl(real->getOpList());
3212 foreach(UMLOperation *op, opl) {
3213 opreal.append(op);
3214 }
3215 }
3216 }
3217
3218 // write out all the realizations operations
3219 writeOperations(classname, opreal, php, false, true);
3220 }
3221
3222 /**
3223 * Write a list of class operations.
3224 * @param classname the name of the class
3225 * @param opList the list of operations
3226 * @param php output stream for the PHP file
3227 * @param interface indicates if the operation is an interface member
3228 */
writeOperations(const QString & classname,UMLOperationList & opList,QTextStream & php,bool isInterface,bool generateErrorStub)3229 void Php5Writer::writeOperations(const QString & classname, UMLOperationList &opList,
3230 QTextStream &php, bool isInterface /* = false */,
3231 bool generateErrorStub /* = false */)
3232 {
3233 Q_UNUSED(classname);
3234 foreach (UMLOperation *op, opList) {
3235 UMLAttributeList atl = op->getParmList();
3236
3237 //write method doc if we have doc || if at least one of the params has doc
3238 bool writeDoc = forceDoc() || !op->doc().isEmpty();
3239 foreach (UMLAttribute* at, atl)
3240 writeDoc |= !at->doc().isEmpty();
3241
3242 if (writeDoc) //write method documentation
3243 {
3244 php << m_indentation << "/**" << m_endl <<formatDoc(op->doc(), m_indentation + QLatin1String(" * "));
3245 php << m_indentation << " *" << m_endl;
3246
3247 foreach (UMLAttribute* at, atl) //write parameter documentation
3248 {
3249 if (forceDoc() || !at->doc().isEmpty()) {
3250 php << m_indentation << " * @param " << at->getTypeName() << ' ' << cleanName(at->name());
3251 php << ' ' << formatDoc(at->doc(), QString()) << m_endl;
3252 }
3253 }//end for : write parameter documentation
3254 QString str = op->getTypeName();
3255 if (str.isEmpty()) {
3256 str = QLatin1String("void");
3257 }
3258 php << m_indentation << " * @return " << str << m_endl;
3259 if (op->isAbstract()) php << m_indentation << " * @abstract" << m_endl;
3260 if (op->isStatic()) php << m_indentation << " * @static" << m_endl;
3261 switch(op->visibility()) {
3262 case Uml::Visibility::Public:
3263 php << m_indentation << " * @access public" << m_endl;
3264 break;
3265 case Uml::Visibility::Protected:
3266 php << m_indentation << " * @access protected" << m_endl;
3267 break;
3268 case Uml::Visibility::Private:
3269 php << m_indentation << " * @access private" << m_endl;
3270 break;
3271 default:
3272 break;
3273 }
3274 php << m_indentation << " */" << m_endl;
3275 }//end if : write method documentation
3276
3277 php << m_indentation;
3278 if (op->isAbstract())
3279 php << "abstract ";
3280 switch(op->visibility()) {
3281 case Uml::Visibility::Public:
3282 php << "public ";
3283 break;
3284 case Uml::Visibility::Protected:
3285 php << "protected ";
3286 break;
3287 case Uml::Visibility::Private:
3288 php << "private ";
3289 break;
3290 default:
3291 break;
3292 }
3293 if (op->isStatic())
3294 php << "static ";
3295 php << "function " << cleanName(op->name()) << "(";
3296
3297 int i= atl.count();
3298 int j=0;
3299 foreach (UMLAttribute* at, atl) {
3300 php << " $" << cleanName(at->name())
3301 << (!(at->getInitialValue().isEmpty()) ?
3302 (QLatin1String(" = ") + at->getInitialValue()) : QString())
3303 << ((j < i-1) ? QLatin1String(", ") : QString());
3304 j++;
3305 }
3306 php << ")";
3307 if (!isInterface && !op->isAbstract()) {
3308 php << " {" << m_endl;
3309
3310 QString sourceCode = op->getSourceCode();
3311 if (sourceCode.isEmpty()) {
3312 if (generateErrorStub) {
3313 php << m_indentation << m_indentation << "trigger_error(\"Implement \" . __FUNCTION__);" << m_endl;
3314 }
3315 }
3316 else {
3317 php << formatSourceCode(sourceCode, m_indentation + m_indentation);
3318 }
3319 php << m_indentation << "} // end of member function " << cleanName(op->name()) << m_endl;
3320 }
3321 else {
3322 php << ';' << m_endl;
3323 }
3324 php << m_endl;
3325 }//end for
3326 }
3327
3328 /**
3329 * Write all the attributes of a class.
3330 * @param c the class we are generating code for
3331 * @param php output stream for the PHP file
3332 */
writeAttributes(UMLClassifier * c,QTextStream & php)3333 void Php5Writer::writeAttributes(UMLClassifier *c, QTextStream &php)
3334 {
3335 UMLAttributeList atpub, atprot, atpriv, atdefval;
3336
3337 //sort attributes by scope and see if they have a default value
3338 UMLAttributeList atl = c->getAttributeList();
3339
3340 foreach(UMLAttribute* at, atl) {
3341 if (!at->getInitialValue().isEmpty())
3342 atdefval.append(at);
3343 switch(at->visibility()) {
3344 case Uml::Visibility::Public:
3345 atpub.append(at);
3346 break;
3347 case Uml::Visibility::Protected:
3348 atprot.append(at);
3349 break;
3350 case Uml::Visibility::Private:
3351 atpriv.append(at);
3352 break;
3353 default:
3354 break;
3355 }
3356 }
3357
3358 if (forceSections() || atl.count())
3359 php<< m_endl << m_indentation << " /*** Attributes: ***/" << m_endl <<m_endl;
3360
3361 if (forceSections() || atpub.count()) {
3362 writeAttributes(atpub, php);
3363 }
3364
3365 if (forceSections() || atprot.count()) {
3366 writeAttributes(atprot, php);
3367 }
3368
3369 if (forceSections() || atpriv.count()) {
3370 writeAttributes(atpriv, php);
3371 }
3372 }
3373
3374 /**
3375 * Write a list of class attributes.
3376 * @param atList the list of attributes
3377 * @param php output stream for the PHP file
3378 */
writeAttributes(UMLAttributeList & atList,QTextStream & php)3379 void Php5Writer::writeAttributes(UMLAttributeList &atList, QTextStream &php)
3380 {
3381 foreach (UMLAttribute *at, atList) {
3382 bool isStatic = at->isStatic();
3383 if (forceDoc() || !at->doc().isEmpty()) {
3384 php << m_indentation << "/**" << m_endl << formatDoc(at->doc(), m_indentation + QLatin1String(" * "));
3385 if (isStatic) php << m_indentation << " * @static" << m_endl;
3386 switch(at->visibility()) {
3387 case Uml::Visibility::Public:
3388 php << m_indentation << " * @access public" << m_endl;
3389 break;
3390 case Uml::Visibility::Protected:
3391 php << m_indentation << " * @access protected" << m_endl;
3392 break;
3393 case Uml::Visibility::Private:
3394 php << m_indentation << " * @access private" << m_endl;
3395 break;
3396 default:
3397 break;
3398 }
3399 php << m_indentation << " */" << m_endl;
3400 }
3401 php << m_indentation;
3402 switch(at->visibility()) {
3403 case Uml::Visibility::Public:
3404 php << "public ";
3405 break;
3406 case Uml::Visibility::Protected:
3407 php << "protected ";
3408 break;
3409 case Uml::Visibility::Private:
3410 php << "private ";
3411 break;
3412 default:
3413 break;
3414 }
3415 if (isStatic) php << "static ";
3416 php << "$" << cleanName(at->name());
3417 if (!at->getInitialValue().isEmpty())
3418 php << " = " << at->getInitialValue();
3419 php << ";" << m_endl << m_endl;
3420 } // end for
3421 return;
3422 }
3423
3424 /**
3425 * Returns "PHP".
3426 * @return the programming language identifier
3427 */
language() const3428 Uml::ProgrammingLanguage::Enum Php5Writer::language() const
3429 {
3430 return Uml::ProgrammingLanguage::PHP5;
3431 }
3432
3433 /**
3434 * Get list of reserved keywords.
3435 * @return the list of reserved keywords
3436 */
reservedKeywords() const3437 QStringList Php5Writer::reservedKeywords() const
3438 {
3439 static QStringList keywords;
3440
3441 if (keywords.isEmpty()) {
3442 for (int i = 0; reserved_words[i]; ++i) {
3443 keywords.append(QLatin1String(reserved_words[i]));
3444 }
3445 }
3446
3447 return keywords;
3448 }
3449
3450
3451
3452