Set WeberTrivia.com to be my default homepage.   Suggest a Question                                               

Suggest A Question : :  Frequently Asked Questions : :  Search : :  Relevant Manuals : : 
PHP Questions : :  Linux Questions : :  MySQL Questions : : 
home  [ Login ] 

Class Summary PEAR_PackageFileManager

Class Summary PEAR_PackageFileManager -- PEAR :: PackageFileManager updates the <filelist></filelist> section of a PEAR package.xml file to reflect the current files in preparation for a release.

PEAR :: PackageFileManager updates the <filelist></filelist> section of a PEAR package.xml file to reflect the current files in preparation for a release.

The PEAR_PackageFileManager class uses a plugin system to generate the list of files in a package. This allows both standard recursive directory parsing (plugin type file) and more intelligent options such as the CVS browser PEAR_PackageFileManager_Cvs, which grabs all files in a local CVS checkout to create the list, ignoring any other local files.

Other options include specifying roles for file extensions (all .php files are role="php", for example), roles for directories (all directories named "tests" are given role="tests" by default), and exceptions. Exceptions are specific pathnames with * and ? wildcards that match a default role, but should have another. For example, perhaps a debug.tpl template would normally be data, but should be included in the docs role. Along these lines, to exclude files entirely, use the ignore option.

Required options for a release include version, baseinstalldir, state, and packagedirectory (the full path to the local location of the package to create a package.xml file for)

Example usage:

1      <?php 2      require_once('PEAR/PackageFileManager.php'); 3      $packagexml = new PEAR_PackageFileManager; 4      $e = $packagexml->setOptions( 5      array('baseinstalldir' => 'PhpDocumentor', 6       'version' => '1.2.1', 7       'packagedirectory' => 'C:/Web Pages/chiara/phpdoc2/', 8       'state' => 'stable', 9       'filelistgenerator' => 'cvs', // generate from cvs, use file for directory 10      'notes' => 'We\'ve implemented many new and exciting features', 11      'ignore' => array('TODO', 'tests/'), // ignore TODO, all files in tests/ 12      'installexceptions' => array('phpdoc' => '/*'), // baseinstalldir ="/" for phpdoc 13      'dir_roles' => array('tutorials' => 'doc'), 14      'exceptions' => array('README' => 'doc', // README would be data, now is doc 15                            'PHPLICENSE.txt' => 'doc'))); // same for the license 16     if (PEAR::isError($e)) { 17         echo $e->getMessage(); 18         die(); 19     } 20     $e = $test->addPlatformException('pear-phpdoc.bat', 'windows'); 21     if (PEAR::isError($e)) { 22         echo $e->getMessage(); 23         exit; 24     } 25     $packagexml->addRole('pkg', 'doc'); // add a new role mapping 26     if (PEAR::isError($e)) { 27         echo $e->getMessage(); 28         exit; 29     } 30     // replace @PHP-BIN@ in this file with the path to php executable!  pretty neat 31     $e = $test->addReplacement('pear-phpdoc', 'pear-config', '@PHP-BIN@', 'php_bin'); 32     if (PEAR::isError($e)) { 33         echo $e->getMessage(); 34         exit; 35     } 36     $e = $test->addReplacement('pear-phpdoc.bat', 'pear-config', '@PHP-BIN@', 'php_bin'); 37     if (PEAR::isError($e)) { 38         echo $e->getMessage(); 39         exit; 40     } 41     // note use of debugPackageFile() - this is VERY important 42     if (isset($_GET['make']) || $_SERVER['argv'][2] == 'make') { 43         $e = $packagexml->writePackageFile(); 44     } else { 45         $e = $packagexml->debugPackageFile(); 46     } 47     if (PEAR::isError($e)) { 48         echo $e->getMessage(); 49         die(); 50     } 51     ?>

In addition, a package.xml file can now be generated from scratch, with the usage of new options package, summary, description, and the use of the addMaintainer() method

Class Trees for PEAR_PackageFileManager

  • PEAR_PackageFileManager

Who's Online
Guest Users: 10
Google
Web
WeberTrivia
WeberDev
WeberForums
 Free Sample Chapters  Free Sample Chapters
  Deliver First Class Web Sites: 101 Essential Checklists
Want to learn how to make your web sites usable and accessible? Want to ensure that your sites meet current best practice, without spending hours trawling through incomprehensible specifications and recommendations from dozens of different books, research papers, and web sites? Want to make sure that the sites you build are "right the first time," requiring no costly redevelopments?

More Sample Chapters

PHP General