[zi-cvs] packages/com.zzoss.package.archive.lib Archive.php,1.1,1.2

Sandro Zic <[email protected]> Thu, 06 May 2004 12:25:32 +0000
Newsgroups gmane.comp.php.zzoss.installer.cvs
Message-ID <[email protected]>
Update of /cvsroot/zzossinstaller/packages/com.zzoss.package.archive.lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13107/com.zzoss.package.archive.lib

Modified Files:
	Archive.php 
Log Message:
optimize memory usage

Index: Archive.php
===================================================================
RCS file: /cvsroot/zzossinstaller/packages/com.zzoss.package.archive.lib/Archive.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Archive.php	24 Apr 2004 15:33:36 -0000	1.1
--- Archive.php	6 May 2004 12:25:29 -0000	1.2
***************
*** 1,3 ****
! <?php  
      /*
      Copyright (C) 2001-2004 ZZOSS GbR, http://www.zzoss.com
--- 1,3 ----
! <?php
      /*
      Copyright (C) 2001-2004 ZZOSS GbR, http://www.zzoss.com
***************
*** 17,21 ****
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
      */
!     
      /**
      @version $Id$
--- 17,21 ----
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
      */
! 
      /**
      @version $Id$
***************
*** 32,52 ****
  require_once 'ZZOSS_Dir/Dir.php';
  
! /**   
!  * This class parses the XML config file and provides the objects of the  
!  * XML document.   
!  *   
!  * Extends PEAR XML_Parser class.   
!  *   
!  * @version  1   
!  * @author   Sandro Zic <[email protected]>; |    
!  */   
!    
  class ZZOSS_PackageArchive extends PEAR {
!     
!     
      function create($pkg_src_dir, $pkg_dest_dir = null)
      {
          static $pkg_tmpdir = '';
!         
          // take care of *nix and Win directory separators
          if(DIRECTORY_SEPARATOR == '/'){
--- 32,52 ----
  require_once 'ZZOSS_Dir/Dir.php';
  
! /**
!  * This class parses the XML config file and provides the objects of the
!  * XML document.
!  *
!  * Extends PEAR XML_Parser class.
!  *
!  * @version  1
!  * @author   Sandro Zic <[email protected]>; |
!  */
! 
  class ZZOSS_PackageArchive extends PEAR {
! 
! 
      function create($pkg_src_dir, $pkg_dest_dir = null)
      {
          static $pkg_tmpdir = '';
! 
          // take care of *nix and Win directory separators
          if(DIRECTORY_SEPARATOR == '/'){
***************
*** 55,77 ****
              $wrong_dir_separator = '/';
          }
!         
          if(is_null($pkg_dest_dir)){
              $pkg_dest_dir = $pkg_src_dir;
          }
!         
          $package_xml = $pkg_src_dir.DIRECTORY_SEPARATOR.'package.xml';
!         
          // Get package.xml and parse it to fill placeholder with content.
!         
          $replace_values['{zi_release_date}'] = date('Y-m-d');
          $replace_values['{zi_copyright_year}'] = date('Y');
!         
          include_once 'ZZOSS_File/Replace.php';
          $replace = new ZZOSS_FileReplace;
          $replace->file($package_xml);
          $replace->replace($replace_values);
!         
          // Create a temporary package.xml
!         
          // Create the temporary directory where we place it.
          // But only if the directory does not already exist.
--- 55,77 ----
              $wrong_dir_separator = '/';
          }
! 
          if(is_null($pkg_dest_dir)){
              $pkg_dest_dir = $pkg_src_dir;
          }
! 
          $package_xml = $pkg_src_dir.DIRECTORY_SEPARATOR.'package.xml';
! 
          // Get package.xml and parse it to fill placeholder with content.
! 
          $replace_values['{zi_release_date}'] = date('Y-m-d');
          $replace_values['{zi_copyright_year}'] = date('Y');
! 
          include_once 'ZZOSS_File/Replace.php';
          $replace = new ZZOSS_FileReplace;
          $replace->file($package_xml);
          $replace->replace($replace_values);
! 
          // Create a temporary package.xml
! 
          // Create the temporary directory where we place it.
          // But only if the directory does not already exist.
***************
*** 81,88 ****
              }
          }
!         
          $package_xml_new = $pkg_tmpdir.DIRECTORY_SEPARATOR.'package.xml';
          $replace->writeout($package_xml_new);
!         
          // Get package.xml parameters.
          include_once 'ZZOSS_Config/Config.php';
--- 81,90 ----
              }
          }
! 
          $package_xml_new = $pkg_tmpdir.DIRECTORY_SEPARATOR.'package.xml';
          $replace->writeout($package_xml_new);
!         // free memory
!         unset($replace);
! 
          // Get package.xml parameters.
          include_once 'ZZOSS_Config/Config.php';
***************
*** 90,98 ****
          $config->setFile($package_xml_new);
          $xml = $config->query('/package');
!         
          $pkg_unique = $xml['name'].'-'.$xml['release']['version'];
          $pkg_tgz    = $pkg_dest_dir.DIRECTORY_SEPARATOR.$pkg_unique.'.tgz';
          $tar_list   = array();
!         
          // "Flatten" the filelist taking into accoutn <dir> elements
          include_once 'ZZOSS_Package/Descriptor.php';
--- 92,102 ----
          $config->setFile($package_xml_new);
          $xml = $config->query('/package');
!         // free memory
!         unset($config);
! 
          $pkg_unique = $xml['name'].'-'.$xml['release']['version'];
          $pkg_tgz    = $pkg_dest_dir.DIRECTORY_SEPARATOR.$pkg_unique.'.tgz';
          $tar_list   = array();
! 
          // "Flatten" the filelist taking into accoutn <dir> elements
          include_once 'ZZOSS_Package/Descriptor.php';
***************
*** 124,128 ****
              $plugin_files = $xml['release']['plugin']['file'];
          }
!         
          if(count($plugin_files)){
              include_once 'ZZOSS_File/File.php';
--- 128,132 ----
              $plugin_files = $xml['release']['plugin']['file'];
          }
! 
          if(count($plugin_files)){
              include_once 'ZZOSS_File/File.php';
***************
*** 137,141 ****
              }
          }
!         
          $cwd = getcwd();
          chdir($pkg_src_dir);
--- 141,145 ----
              }
          }
! 
          $cwd = getcwd();
          chdir($pkg_src_dir);
***************
*** 145,153 ****
          //$tar->create('package.xml');
          $tar->addModify($tar_list, $pkg_unique);
          chdir($cwd);
!         
          // delete the temporary package.xml
          unlink($package_xml_new);
!         
          return $pkg_tgz;
      }
--- 149,159 ----
          //$tar->create('package.xml');
          $tar->addModify($tar_list, $pkg_unique);
+         // free memory
+         unset($tar);
          chdir($cwd);
! 
          // delete the temporary package.xml
          unlink($package_xml_new);
! 
          return $pkg_tgz;
      }



-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver
higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3