From: Sam Ruby Date: Mon, 28 Feb 2000 17:02:28 +0000 (+0000) Subject: Improved handing of instances of private classes. Added servlet examples. X-Git-Tag: PHP-4.0-RC1~357 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6189e219ff6f04f9f00b674b4d90b4c51b14bc78;p=php Improved handing of instances of private classes. Added servlet examples. --- diff --git a/ext/java/jver.php b/ext/java/jver.php index 7df8c07ac4..7015944101 100644 --- a/ext/java/jver.php +++ b/ext/java/jver.php @@ -1,3 +1,4 @@ + format(new Java("java.util.Date"))."\n"; ?> + diff --git a/ext/java/reflect.java b/ext/java/reflect.java index 3dafcf719a..b7693e907c 100644 --- a/ext/java/reflect.java +++ b/ext/java/reflect.java @@ -102,22 +102,30 @@ class reflect { // public static void CreateObject(String name, Object args[], long result) { try { + Vector matches = new Vector(); + Constructor cons[] = Class.forName(name).getConstructors(); for (int i=0; i 0) { + throw new InstantiationException("No matching constructor found"); + } else { + // for classes which have no visible constructor, return the class + // useful for classes like java.lang.System and java.util.Calendar. + setResult(result, Class.forName(name)); + return; + } } - throw new InstantiationException("No matching constructor found"); + Object coercedArgs[] = coerce(selected.getParameterTypes(), args); + setResult(result, selected.newInstance(coercedArgs)); } catch (Exception e) { setException(result, e); @@ -127,16 +135,20 @@ class reflect { // // Select the best match from a list of methods // - private static Method select(Vector methods, Object args[]) { - if (methods.size() == 1) return (Method) methods.firstElement(); + private static Object select(Vector methods, Object args[]) { + if (methods.size() == 1) return methods.firstElement(); - Method selected = null; + Object selected = null; int best = Integer.MAX_VALUE; for (Enumeration e = methods.elements(); e.hasMoreElements(); ) { - Method method = (Method)e.nextElement(); + Object element = e.nextElement(); int weight=0; - Class parms[] = method.getParameterTypes(); + + Class parms[] = (element instanceof Method) ? + ((Method)element).getParameterTypes() : + ((Constructor)element).getParameterTypes(); + for (int i=0; i0;) { + if (Modifier.isPublic(interfaces[i].getModifiers())) { + jclass=interfaces[i]; + } + } + } BeanInfo beanInfo = Introspector.getBeanInfo(jclass); PropertyDescriptor props[] = beanInfo.getPropertyDescriptors(); for (int i=0; i format(new Java("java.util.Date"))."\n"; ?> + diff --git a/ext/rpc/java/reflect.java b/ext/rpc/java/reflect.java index 3dafcf719a..b7693e907c 100644 --- a/ext/rpc/java/reflect.java +++ b/ext/rpc/java/reflect.java @@ -102,22 +102,30 @@ class reflect { // public static void CreateObject(String name, Object args[], long result) { try { + Vector matches = new Vector(); + Constructor cons[] = Class.forName(name).getConstructors(); for (int i=0; i 0) { + throw new InstantiationException("No matching constructor found"); + } else { + // for classes which have no visible constructor, return the class + // useful for classes like java.lang.System and java.util.Calendar. + setResult(result, Class.forName(name)); + return; + } } - throw new InstantiationException("No matching constructor found"); + Object coercedArgs[] = coerce(selected.getParameterTypes(), args); + setResult(result, selected.newInstance(coercedArgs)); } catch (Exception e) { setException(result, e); @@ -127,16 +135,20 @@ class reflect { // // Select the best match from a list of methods // - private static Method select(Vector methods, Object args[]) { - if (methods.size() == 1) return (Method) methods.firstElement(); + private static Object select(Vector methods, Object args[]) { + if (methods.size() == 1) return methods.firstElement(); - Method selected = null; + Object selected = null; int best = Integer.MAX_VALUE; for (Enumeration e = methods.elements(); e.hasMoreElements(); ) { - Method method = (Method)e.nextElement(); + Object element = e.nextElement(); int weight=0; - Class parms[] = method.getParameterTypes(); + + Class parms[] = (element instanceof Method) ? + ((Method)element).getParameterTypes() : + ((Constructor)element).getParameterTypes(); + for (int i=0; i0;) { + if (Modifier.isPublic(interfaces[i].getModifiers())) { + jclass=interfaces[i]; + } + } + } BeanInfo beanInfo = Introspector.getBeanInfo(jclass); PropertyDescriptor props[] = beanInfo.getPropertyDescriptors(); for (int i=0; i + + +Cookies Example + + + +view code + +return +

Cookies Example

+ +cookies; + + // print out cookies + + if (!current($cookies)) { + echo "Your browser isn't sending any cookies\n"; + } else { + echo "Your browser is sending the following cookies:
\n"; + + for ($cookie=current($cookies); $cookie; $cookie=next($cookies)) { + echo "Cookie Name: $cookie->name
Cookie value: $cookie->value
\n"; + } + } + + // set a cookie + + $name = $request->getParameter("cookieName"); + if ($name) { + $value = $request->getParameter("cookieValue"); + $response->addCookie(new Java("javax.servlet.http.Cookie", $name, $value)); + echo "

You just sent the following cookie to your browser:
\n"; + echo "Name: $name
Value: $value

\n"; + } + +?> +

+Create a cookie to send to your browser
+

+Name:
+Value:
+
+ + + diff --git a/sapi/servlet/date.php b/sapi/servlet/date.php new file mode 100644 index 0000000000..1146d31fab --- /dev/null +++ b/sapi/servlet/date.php @@ -0,0 +1,28 @@ + + + + + + + +
    +
  • Day of month: is dayOfMonth ?> +
  • Year: is year ?> +
  • Month: is month ?> +
  • Time: is time ?> +
  • Date: is date ?> +
  • Day: is day ?> +
  • Day Of Year: is dayOfYear ?> +
  • Week Of Year: is weekOfYear ?> +
  • era: is era ?> +
  • DST Offset: is dSTOffset ?> +
  • Zone Offset: is zoneOffset ?> +
+
+ + + + diff --git a/sapi/servlet/jinfo.php b/sapi/servlet/jinfo.php new file mode 100644 index 0000000000..f20bbfb27d --- /dev/null +++ b/sapi/servlet/jinfo.php @@ -0,0 +1,5 @@ + diff --git a/sapi/servlet/jver.php b/sapi/servlet/jver.php new file mode 100644 index 0000000000..e5e029c6e4 --- /dev/null +++ b/sapi/servlet/jver.php @@ -0,0 +1,17 @@ + +getProperty("java.version")."
\n"; + print "Java vendor=".$system->getProperty("java.vendor")."

\n\n"; + print "OS=".$system->getProperty("os.name")." ". + $system->getProperty("os.version")." on ". + $system->getProperty("os.arch")."
\n"; + + $formatter = new Java("java.text.SimpleDateFormat", + "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz"); + + print $formatter->format(new Java("java.util.Date"))."\n"; + +?> + diff --git a/sapi/servlet/reqheaders.php b/sapi/servlet/reqheaders.php new file mode 100644 index 0000000000..97011a2166 --- /dev/null +++ b/sapi/servlet/reqheaders.php @@ -0,0 +1,28 @@ + + + +Request Header Example + + + +view code + +return +

Request Header Example

+ + +headerNames; + while ($e->hasMoreElements()) { + $name = $e->nextElement(); + $value = $request->getHeader($name); + print "\n"; + } + +?> + +
$name\n"; + print "$value
+ + diff --git a/sapi/servlet/reqinfo.php b/sapi/servlet/reqinfo.php new file mode 100644 index 0000000000..2b96ae621c --- /dev/null +++ b/sapi/servlet/reqinfo.php @@ -0,0 +1,33 @@ + + + +Request Information Example + + + +view code + +return +

Request Information Example

+
+Method: + +method ?> +
+Request URI: + +requestURI ?> +
+Protocol: + +protocol ?> +
+Path Info: + +pathInfo ?> +
+Remote Address: + +remoteAddr ?> +
+ diff --git a/sapi/servlet/reqparams.php b/sapi/servlet/reqparams.php new file mode 100644 index 0000000000..d2fcf78051 --- /dev/null +++ b/sapi/servlet/reqparams.php @@ -0,0 +1,39 @@ + + + +Request Parameters Example + + + +view code + +return +

Request Parameters Example

+Parameters in this request:
+parameterNames; + + if (!$e->hasMoreElements()) { + echo "No Parameters, Please enter some"; + } + + while ($e->hasMoreElements()) { + $name = $e->nextElement(); + $value = $request->getParameter($name); + echo "$name = $value
\n"; + } + +?> +

+

+First Name: + +
+Last Name: + +
+ +
+ + + diff --git a/sapi/servlet/sessions.php b/sapi/servlet/sessions.php new file mode 100644 index 0000000000..81f46045b2 --- /dev/null +++ b/sapi/servlet/sessions.php @@ -0,0 +1,58 @@ + + + +Sessions Example + + + +view code + +return +

Sessions Example

+session; + $created = new Java("java.util.Date", $session->creationTime); + $accessed = new Java("java.util.Date", $session->lastAccessedTime); + + print "Session ID: $session->id
\n"; + print "Created: " . $created->toString() . "
\n"; + print "Last Accessed: " . $accessed->toString() . "
\n"; + + // set session info if needed + + $dataName = $request->getParameter("dataName"); + if ($dataName) { + $dataValue = $request->getParameter("dataValue"); + $dataValue = $request->getParameter("dataValue"); + $session->setAttribute($dataName, $dataValue); + } + + // print session contents + + print "

\n"; + print "The following data is in your session:
\n"; + $e = $session->attributeNames; + while ($e->hasMoreElements()) { + $name = $e->nextElement(); + $value = $session->getAttribute($name); + print "$name = $value
\n"; + } + +?> +

+

+Name of Session Attribute: + +
+Value of Session Attribute: + +
+ +
+ + + +