First version of the newly restructured repository
This commit is contained in:
140
backend/php/src/setup/setup_library/upgrade.php
Normal file
140
backend/php/src/setup/setup_library/upgrade.php
Normal file
@@ -0,0 +1,140 @@
|
||||
<?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'
|
||||
*/
|
||||
ini_set("max_execution_time", 0);
|
||||
include_once "../../configuration.php";
|
||||
include_once "class.zipfile.php";
|
||||
include_once "setup_misc.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" && $file != "class.pog_base.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))
|
||||
{
|
||||
eval ('include_once("../../objects/class.'.strtolower($className).'.php");');
|
||||
$instance = new $className();
|
||||
if (!TestIsMapping($instance))
|
||||
{
|
||||
$objectNameList[] = $className;
|
||||
|
||||
$linkParts1 = split("\*\/", $contentParts[1]);
|
||||
$linkParts2 = split("\@link", $linkParts1[0]);
|
||||
$link = $linkParts2[1];
|
||||
$options = false;
|
||||
if ($GLOBALS['configuration']['proxy_host'] != false &&
|
||||
$GLOBALS['configuration']['proxy_port'] != false &&
|
||||
$GLOBALS['configuration']['proxy_username'] != false &&
|
||||
$GLOBALS['configuration']['proxy_password'] != false)
|
||||
{
|
||||
$options = array(
|
||||
'proxy_host' => $GLOBALS['configuration']['proxy_host'],
|
||||
'proxy_port' => $GLOBALS['configuration']['proxy_port'],
|
||||
'proxy_login' => $GLOBALS['configuration']['proxy_username'],
|
||||
'proxy_password' => $GLOBALS['configuration']['proxy_password']
|
||||
);
|
||||
}
|
||||
$client = new SoapClient(
|
||||
$GLOBALS['configuration']['soap'],
|
||||
$options) ;
|
||||
if ($i == 0)
|
||||
{
|
||||
$package = unserialize($client->GeneratePackageFromLink($link));
|
||||
}
|
||||
else
|
||||
{
|
||||
$objectString = $client->GenerateObjectFromLink($link);
|
||||
$package["objects"]["class.".strtolower($className).".php"] = $objectString;
|
||||
}
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
//upgrade mapping classes if any
|
||||
foreach ($objectNameList as $objectName)
|
||||
{
|
||||
$instance = new $objectName();
|
||||
foreach ($instance->pog_attribute_type as $key => $attribute_type)
|
||||
{
|
||||
if ($attribute_type['db_attributes'][1] == "JOIN")
|
||||
{
|
||||
$mappingString = $client->GenerateMapping($objectName, $key, (isset($GLOBALS['configuration']['pdoDriver']) ? 'php5.1' :'php5'), (isset($GLOBALS['configuration']['pdoDriver']) ? 'pdo' :'pog'), (isset($GLOBALS['configuration']['pdoDriver']) ? 'mysql' :''));
|
||||
$package["objects"]['class.'.strtolower(MappingName($objectName, $key)).'.php'] = $mappingString;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$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>";
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user