Script: defined class browser

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
Ward
Forum Commoner
Posts: 74
Joined: Thu Jul 13, 2006 10:01 am

Script: defined class browser

Post by Ward »

While playing around with dyamic objects, I wrote this little script. It will show all defined classes, as well as their methods and properties. However, I couldn't find any way to display each method's arguments. Even still, I didnt realize PHP came with so many predefined classes. Here is the source code:

Code: Select all

<?php
$classes = get_declared_classes();
$methods = array();
$vars = array();
foreach ($classes as $class)
{
	$class_methods = get_class_methods($class);
	$methods[$class] = array();
	foreach($class_methods as $method)
	{
		array_push($methods[$class],$method."()");
	}
	
	$class_vars = get_class_vars($class);
	$vars[$class] = array();
	foreach($class_vars as $var)
	if ($var)
	{
		{
			array_push($vars[$class],$var);
		}
	}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
	<title>PHP Class Browser</title>
	<style type="text/css">
	
	</style>
	<script type="text/javascript">
		function showClassDetails(className)
		{
			var classMethods = ">";
			var classVars = "";
			switch(className)
			{
				<?php
				foreach($classes as $class)
				{	
					$class_methods = implode("<br>",$methods[$class]);
					$class_vars = implode("<br>",$vars[$class]);
					?>
					case "<?=$class?>":
						classMethods = "<?=addslashes($class_methods)?>";
						classVars = "<?=addslashes($class_vars)?>";
						break;
					<?php
				}
				?>
				
			}
			document.getElementById("methods").innerHTML = classMethods;
			document.getElementById("vars").innerHTML = classVars;
		}
	</script>
</head>
<body>
	<h1>PHP Class Browser</h1>
	<p>
		Here you can browse all predefined classes, and see their methods and properties. If you have included any custom classes, 
		you will also see them here.
	</p>
	<select name="class" onchange="showClassDetails(this.value);">
		<?php
		foreach($classes as $class)
		{
			?>
			<option value="<?=$class?>"><?=$class?></option>
			<?php
		}
		?>
	</select>
	<h4>Methods</h4>
	<div id="methods"></div>
	<h4>Properties</h4>
	<div id="vars"></div>
</body>
</html>
User avatar
dull1554
Forum Regular
Posts: 680
Joined: Sat Nov 22, 2003 11:26 am
Location: 42:21:35.359N, 76:02:20.688W

Post by dull1554 »

thats pretty nifty.
Post Reply