Location: PHPKode > scripts > POG - PHP Code Generator > pog-php-code-generator/setup_factory/upgrade.php5.php
<?php
/**
* @author  Joel Wan & Mark Slemko.  Designs by Jonathan Easton
* @link  http://www.phpobjectgenerator.com
* @copyright  Offered under the  BSD license
*
* This upgrade file does the following:
* 1. Checks if there is a new version of POG
* 2. If there is, it reads generates newer versions of all objects in the object directory,
* zip then and present them to the user to 'download'
*/
include "../../configuration.php";
include "class.zipfile.php";

	/**
	 * Connects to POG SOAP server defined in configuration.php and
	 * generates new versions of all objects detected in /objects/ dir.
	 * All upgraded objects are then zipped and presented to user.
	 *
	 * @param string $path
	 */
	function UpdateAllObjects($path)
	{
		$dir = opendir($path);
		$objects = array();
		while(($file = readdir($dir)) !== false)
		{
			if(strlen($file) > 4 && substr(strtolower($file), strlen($file) - 4) === '.php' && !is_dir($file) && $file != "class.database.php" && $file != "configuration.php" && $file != "setup.php")
			{
				$objects[] = $file;
			}
		}
		closedir($dir);
		$i = 0;
		foreach($objects as $object)
		{
			$content = file_get_contents($path."/".$object);
			$contentParts = split("<b>",$content);
			if (isset($contentParts[1]))
			{
				$contentParts2 = split("</b>",$contentParts[1]);
			}
			if (isset($contentParts2[0]))
			{
				$className = trim($contentParts2[0]);
			}
			if (isset($className))
			{
				$objectNameList[] = $className;

				$linkParts1 = split("\*\/", $contentParts[1]);
				$linkParts2 = split("\@link", $linkParts1[0]);
				$link = $linkParts2[1];
				$client = new SoapClient($GLOBALS['configuration']['soap']) ;
				if ($i == 0)
				{
					$package = unserialize($client->GeneratePackageFromLink($link));
				}
				else
				{
					$objectString = $client->GenerateObjectFromLink($link);
					$package["objects"]["class.".strtolower($className).".php"] = $objectString;
				}
			}
			$i++;
		}
		$zipfile = new createZip();
		$zipfile -> addPOGPackage($package);
		$zipfile -> forceDownload("pog.".time().".zip");
	}

	/**
	 * Checks if POG generator has been updated
	 *
	 * @return unknown
	 */
	function UpdateAvailable()
	{
		$client = new SoapClient($GLOBALS['configuration']['soap']);
		$generatorVersion = base64_decode($client -> GetGeneratorVersion());
		if ($generatorVersion != $GLOBALS['configuration']['versionNumber'].$GLOBALS['configuration']['revisionNumber'])
		{
			return true;
		}
		else
		{
			return  false;
		}
	}

	if (UpdateAvailable())
	{
		UpdateAllObjects("../../objects/");
	}
	else
	{
		echo "<script>
			alert('All POG objects are already up to date');
			window.close();
		</script>";
	}
?>
Return current item: POG - PHP Code Generator