Class: PEAR_PackageFileManager
Source Location: /PEAR_PackageFileManager-1.7.0/PackageFileManager.php
PEAR :: PackageFileManager updates the <filelist></filelist> section of a PEAR package.xml file to reflect the current files in preparation for a release.
Author(s):
Version:
Copyright:
|
|
Inherited Variables
|
Inherited Methods
|
Class Details
[line 213]
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: <?php
require_once('PEAR/PackageFileManager.php');
array('baseinstalldir' => 'PhpDocumentor',
'version' => '1.2.1',
'packagedirectory' => 'C:/Web Pages/chiara/phpdoc2/',
'state' => 'stable',
'filelistgenerator' => 'cvs', // generate from cvs, use file for directory
'notes' => 'We\'ve implemented many new and exciting features',
'ignore' => array('TODO', 'tests/'), // ignore TODO, all files in tests/
'installexceptions' => array('phpdoc' => '/*'), // baseinstalldir ="/" for phpdoc
'dir_roles' => array('tutorials' => 'doc'),
'exceptions' => array('README' => 'doc', // README would be data, now is doc
'PHPLICENSE.txt' => 'doc'))); // same for the license
if (PEAR::isError($e)) {
echo $e->getMessage();
die();
}
if (PEAR::isError($e)) {
echo $e->getMessage();
exit;
}
$packagexml->addRole('pkg', 'doc'); // add a new role mapping
if (PEAR::isError($e)) {
echo $e->getMessage();
exit;
}
// replace @PHP-BIN@ in this file with the path to php executable! pretty neat
$e = $test->addReplacement('pear-phpdoc', 'pear-config', '@PHP-BIN@', 'php_bin');
if (PEAR::isError($e)) {
echo $e->getMessage();
exit;
}
$e = $test->addReplacement('pear-phpdoc.bat', 'pear-config', '@PHP-BIN@', 'php_bin');
if (PEAR::isError($e)) {
echo $e->getMessage();
exit;
}
// note use of <a href="../PEAR_PackageFileManager/PEAR_PackageFileManager.html#methoddebugPackageFile">debugPackageFile()</a> - this is VERY important
if (isset($_GET['make']) || (isset($_SERVER['argv'][2]) &&
$_SERVER['argv'][2] == 'make')) {
} else {
}
if (PEAR::isError($e)) {
echo $e->getMessage();
die();
}
?>
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
Method Detail
PEAR_PackageFileManager (Constructor) [line 324]
PEAR_PackageFileManager PEAR_PackageFileManager(
)
|
|
Does nothing, use setOptions The constructor is not used in order to be able to return a PEAR_Error from setOptions
addConfigureOption [line 858]
void|PEAR_Error addConfigureOption(
string
$name, string
$prompt, [string
$default = null])
|
|
Add an install-time configuration option for building of source This option is only useful to PECL projects that are built upon installation
Parameters:
addDependency [line 951]
void|PEAR_Error addDependency(
string
$name, [string
$version = false], [string
$operator = 'ge'], [string
$type = 'pkg'], [boolean
$optional = false])
|
|
Add a dependency on another package, or an extension/php This will overwrite an existing dependency if it is found. In other words, if a dependency on PHP 4.1.0 exists, and addDependency('php', '4.3.0', 'ge', 'php') is called, the existing dependency on PHP 4.1.0 will be overwritten with the new one on PHP 4.3.0
Parameters:
addGlobalReplacement [line 730]
void|PEAR_Error addGlobalReplacement(
string
$type, string
$from, string
$to)
|
|
Add a replacement option for all files, or files matching the glob pattern This sets an install-time complex search-and-replace function allowing the setting of platform-specific variables in all installed files. if $type is php-const, then $to must be the name of a PHP Constant. If $type is pear-config, then $to must be the name of a PEAR config variable accessible through a PEAR_Config::get() method. If type is package-info, then $to must be the name of a section from the package.xml file used to install this file.
Parameters:
addMaintainer [line 811]
void|PEAR_Error addMaintainer(
string
$handle, string
$role, string
$name, string
$email)
|
|
Add a maintainer to the list of maintainers. Every maintainer must have a valid account at pear.php.net. The first parameter is the account name (for instance, cellog is the handle for Greg Beaver at pear.php.net). Every maintainer has one of four possible roles: - lead: the primary maintainer
- developer: an important developer on the project
- contributor: self-explanatory
- helper: ditto
Finally, specify the name and email of the maintainer
Parameters:
addPlatformException [line 700]
void addPlatformException(
string
$path, string
$platform)
|
|
Add an install-time platform conditional install for a file The format of the platform string must be OS-version-cpu-extra if any more specific information is needed, and the OS must be in lower case as in "windows." The match is performed using a regular expression, but uses * and ? wildcards instead of .* and .?. Note that hpux/aix/irix/linux are all exclusive. To select non-windows, use (*ix|*ux) This information is based on eyeing the source for OS/Guess.php, so if you are unsure of what to do, read that file.
Parameters:
addReplacement [line 775]
void|PEAR_Error addReplacement(
string
$path, string
$type, string
$from, string
$to)
|
|
Add a replacement option for a file This sets an install-time complex search-and-replace function allowing the setting of platform-specific variables in an installed file. if $type is php-const, then $to must be the name of a PHP Constant. If $type is pear-config, then $to must be the name of a PEAR config variable accessible through a PEAR_Config::get() method. If type is package-info, then $to must be the name of a section from the package.xml file used to install this file.
Parameters:
addRole [line 671]
void|PEAR_Error addRole(
string
$extension, string
$role)
|
|
Add an extension/role mapping to the role mapping option Roles influence both where a file is installed and how it is installed. Files with role="data" are in a completely different directory hierarchy from the program files of role="php" In PEAR 1.3b2, these roles are - php (most common)
- data
- doc
- test
- script (gives the file an executable attribute)
- src
Parameters:
debugPackageFile [line 1172]
true|PEAR_Error debugPackageFile(
)
|
|
ALWAYS use this to test output before overwriting your package.xml!! This method instructs writePackageFile() to simply print the package.xml to output, either command-line or web-friendly (this is automatic based on the value of php_sapi_name())
detectDependencies [line 893]
void|PEAR_Error detectDependencies(
)
|
|
Uses PEAR::PHP_CompatInfo package to detect dependencies (extensions, php version)
getOptions [line 643]
getWarnings [line 1201]
Retrieve the list of warnings
importOptions [line 608]
true|PEAR_Error importOptions(
string
$packagefile, [array
$options = array()])
|
|
Import options from an existing package.xml
Parameters:
isIncludeable [line 915]
boolean isIncludeable(
string
$file)
|
|
Returns whether or not a file is in the include path.
Parameters:
pushWarning [line 1188]
void pushWarning(
integer
$code, array
$info)
|
|
Store a warning on the warning stack
Parameters:
raiseError [line 1241]
PEAR_Error raiseError(
integer
$code, [string
$i1 = ''], [string
$i2 = ''])
|
|
Utility function to shorten error generation code
{
return PEAR::raiseError('PEAR_PackageFileManager Error: ' .
sprintf($GLOBALS['_PEAR_PACKAGEFILEMANAGER_ERRORS'][$this->_options ['lang']][$code],
$i1, $i2), $code);
}
Parameters:
setOptions [line 489]
void|PEAR_Error setOptions(
[array
$options = array()], [boolean
$internal = false])
|
|
Set package.xml generation options The options array is indexed as follows: $options = array('option_name' => <optionvalue>);
The documentation below simplifies this description through the use of option_name without quotes Configuration options: - lang: lang controls the language in which error messages are
displayed. There are currently only English error messages,
but any contributed will be added over time.
Possible values: en (default) - packagefile: the name of the packagefile, defaults to package.xml
- pathtopackagefile: the path to an existing package file to read in,
if different from the packagedirectory
- packagedirectory: the path to the base directory of the package. For
package PEAR_PackageFileManager, this path is
/path/to/pearcvs/pear/PEAR_PackageFileManager where
/path/to/pearcvs is a local path on your hard drive
- outputdirectory: the path in which to place the generated package.xml
by default, this is ignored, and the package.xml is
created in the packagedirectory
- filelistgenerator: the <filelist> section plugin which will be used.
In this release, there are two generator plugins,
file and cvs. For details, see the docs for these
plugins
- usergeneratordir: For advanced users. If you write your own filelist
generator plugin, use this option to tell
PEAR_PackageFileManager where to find the file that
contains it. If the plugin is named foo, the class
must be named PEAR_PackageFileManager_Foo
no matter where it is located. By default, the Foo
plugin is located in PEAR/PackageFileManager/Foo.php.
If you pass /path/to/foo in this option, setOptions
will look for PEAR_PackageFileManager_Foo in
/path/to/foo/Foo.php
- doctype: Specifies the DTD of the package.xml file. Default is
http://pear.php.net/dtd/package-1.0
- pearcommonclass: Specifies the name of the class to instantiate, default
is PEAR_PackageFileManager_ComplexGenerator or PEAR_Common, but users can
override this with a custom class that implements
PEAR_Common's method interface
- changelogoldtonew: True if the ChangeLog should list from oldest entry to
newest. Set to false if you would like new entries first
- simpleoutput: True if the package.xml should not contain md5sum or <provides />
for readability
- addhiddenfiles: True if you wish to add hidden files/directories that begin with .
like .bashrc. This is only used by the File generator. The CVS
generator will use all files in CVS regardless of format
package.xml simple options: - baseinstalldir: The base directory to install this package in. For
package PEAR_PackageFileManager, this is "PEAR", for
package PEAR, this is "/"
- license: The license this release is released under. Default is
PHP License if left unspecified
- notes: Release notes, any text describing what makes this release unique
- changelognotes: notes for the changelog, this should be more detailed than
the release notes. By default, PEAR_PackageFileManager uses
the notes option for the changelog as well
- version: The version number for this release. Remember the convention for
numbering: initial alpha is between 0 and 1, add b<beta number> for
beta as in 1.0b1, the integer portion of the version should specify
backwards compatibility, as in 1.1 is backwards compatible with 1.0,
but 2.0 is not backwards compatible with 1.10. Also note that 1.10
is a greater release version than 1.1 (think of it as "one point ten"
and "one point one"). Bugfix releases should be a third decimal as in
1.0.1, 1.0.2
- package: [optional] Package name. Use this to create a new package.xml, or
overwrite an existing one from another package used as a template
- summary: [optional] Summary of package purpose
- description: [optional] Description of package purpose. Note that the above
three options are not optional when creating a new package.xml
from scratch
WARNING: all complex options that require a file path are case-sensitive package.xml complex options:
Parameters:
writePackageFile [line 1024]
true|PEAR_Error writePackageFile(
[boolean
$debuginterface = null])
|
|
Writes the package.xml file out with the newly created <release></release> tag ALWAYS use debugPackageFile to verify that output is correct before overwriting your package.xml
Parameters:
Documentation generated on Mon, 11 Mar 2019 15:31:02 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|
|