Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
  • prereq-parse
  • catalog-rewrite
3 results

Target

Select target project
  • rdee2/UNL_GraduateBulletin
  • dxg/UNL_GraduateBulletin
2 results
Select Git revision
  • catalog-rewrite
  • develop
  • master
  • catalog-rewrite
4 results
Show changes
Commits on Source (109)
Showing
with 263 additions and 5565 deletions
......@@ -2,3 +2,6 @@
/www/.htaccess
/www/archive.html
/www/wdn
/data/creq/*.sqlite
/data/creq/*.xml
/data/creq/subjects/*.xml
Setup:
copy config.sample.php to config.inc.php
set the correct user name and password to the database
copy www/sample.htaccess to www/.htaccess
correct paths as necessary
# Introduction:
This website serves as a grad/undergrad agnostic homepage to the UNL Bulletins,
and a source for the latest course information.
The Undergraduate Bulletin contains only a snapshot of the course information,
this site should have the latest course data, pulled from creq.unl.edu.
The Graduate Bulletin links to this course data.
## Authors:
Brett Bieber brett.bieber@gmail.com
## Web Address(es):
http://bulletin.unl.edu/
alias - http://catalog.unl.edu/
## Server Information:
Web Server:
Host - ucommsrv.unl.edu:/var/www/html/bulletin.unl.edu/graduate [IS virtual server]
Server Admin - Jim Liebgott [IS]
Location - Basement WSEC
## Database:
SQLite Database from the Course XML data retrieved from creq.unl.edu
## Source Code:
Git - http://git.unl.edu/iim/UNL_GraduateBulletin [IS]
## Software:
PHP
Apache Web Server
## Maintenance Tasks:
Update course snapshot:
`php scripts/update_course_data.php`
## Setup:
copy `config.sample.php` to `config.inc.php`
copy `www/sample.htaccess` to `www/.htaccess`
correct paths as necessary
......@@ -6,61 +6,21 @@
* @author bbieber
*/
set_include_path(dirname(__FILE__).'/src'.PATH_SEPARATOR.dirname(__FILE__).'/lib/php');
/**
* Require DB_DataObject before initializing the connection details.
*/
require_once 'DB/DataObject.php';
function autoload($class)
{
$file = str_replace('_', '/', $class).'.php';
$fp = @fopen($file, 'r', true);
if ($fp) {
fclose($fp);
require $file;
if (!class_exists($class, false) && !interface_exists($class, false)) {
die(new \Exception('Class ' . $class . ' was not present in ' .
$file . ' (include_path="' . get_include_path() . '")'));
}
return true;
}
return false;
$class = str_replace(array('_', '\\'), '/', $class);
include $class . '.php';
}
spl_autoload_register("autoload");
spl_autoload_register('autoload');
$db_pass = 'catalog';
$db_user = 'catalog';
$db = 'catalog';
$db_host = 'localhost';
set_include_path(__DIR__ . '/src' . PATH_SEPARATOR . __DIR__ . '/lib/php');
// Load database settings
$options = &PEAR::getStaticProperty('DB_DataObject','options');
$options = array(
'database' => "mysqli://$db_user:$db_pass@$db_host/$db",
'schema_location' => dirname(__FILE__).'/src/UNL/Catalog',
'class_location' => dirname(__FILE__).'/src/UNL/Catalog',
'require_prefix' => dirname(__FILE__).'/src/UNL/Catalog',
'class_prefix' => 'UNL_Catalog_',
'db_driver' => 'MDB2'
);
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__));
//DB_DataObject::debugLevel(1);
ini_set('display_errors', true);
error_reporting(E_ALL);
define('UNL_CATALOG_URI', 'http://localhost/workspace/UNL_GraduateBulletin/www/');
define('UNL_CATALOG_MW_URI', UNL_CATALOG_URI.'mediawiki/index.php/');
define('UNL_CATALOG_MW_WGSCRIPTPATH', '/workspace/UNL_GraduateBulletin/www/mediawiki');
define('UNL_CATALOG_MW_WGARTICLEPATH', "/graduate/$1");
define('UNL_TEMPLATES_DEPENDENTSPATH', $_SERVER['DOCUMENT_ROOT']);
define('UNL_UNDERGRADUATEBULLETIN_DIR', dirname(__DIR__) . '/UNL_UndergraduateBulletin');
set_include_path(get_include_path()
. PATH_SEPARATOR . UNL_UNDERGRADUATEBULLETIN_DIR . '/includes/php'
. PATH_SEPARATOR . UNL_UNDERGRADUATEBULLETIN_DIR . '/src'
);
UNL\Catalog\Controller::$url = '/workspace/UNL_GraduateBulletin/www/';
ini_set('display_errors', true);
error_reporting(E_ALL);
UNL_Services_CourseApproval::setCachingService(new UNL_Services_CourseApproval_CachingService_Null());
UNL_Services_CourseApproval::setXCRIService(new UNL\Catalog\CourseDataDriver());
ABUS,Agribusiness
ACCT,Accounting
ACTS,Actuarial Science
ADPR,Advertising & Public Relations
AECN,Agricultural Economics
AERO,Aerospace
AGEN,Agricultural Engineering
AGRI,Agricultural Sciences
AGRO,Agronomy
AHIS,Art History & Criticism
ALEC,'Agricultural Leadership, Education & Communication'
ANTH,Anthropology
ARAB,Arabic
ARCH,Architecture
AREN,Architectural Engineering (College of Engineering)
ARTP,Art Theory & Practice
ARTS,Art-Special Topics
ASCI,Animal Science
ASTR,Astronomy
ATHC,Athletic Coaching
ATHP,Athletic Practice Courses
ATHT,Athletic Training
BIME,Biomedical Engineering
BIOC,Biological Chemistry
BIOS,Biological Sciences
BLAW,Business Law
BRDC,Broadcasting
BSAD,Business Administration
BSEN,Biological Systems Engineering
CDEV,Community Development
CEEN,Computing & Electronics Engineering (UNO)
CEHS,Education & Human Sciences
CERM,Art-Ceramics
CHEM,Chemistry
CHIN,Chinese
CHME,Chemical & Biomolecular Engineering
CIVE,Civil Engineering
CLAS,Classics
CNST,Construction Management
COMB,Combatives (Rec)
COMM,Communication Studies
CONE,Construction Engineering (UNO/UNK)
CRIM,Criminology & Criminal Justice (UNO)
CRPL,Community & Regional Planning
CSCE,Computer Science & Computer Engineering
CYAF,'Child, Youth and Family Studies'
CZEC,Czech
DANC,Dance
DRAW,Art-Drawing
DSGN,Design
EAEP,Engler Agribusiness Entrepreneurship
ECON,Economics
EDAD,Educational Administration
EDPS,Educational Psychology
EDUC,Education
ELEC,Electrical Engineering
ENGL,English
ENGR,Engineering
ENSC,Energy Science
ENTO,Entomology
ENTR,Entrepreneurship
ENVE,Environmental Engineering
ENVR,Environmental Studies
ETHN,Ethnic Studies
FDST,Food Science & Technology
FINA,Finance
FITN,Fitness (Rec)
FORS,Forensic Science
FPT,Fire Protection
FREN,French
GEOG,Geography
GEOL,Geology
GEOS,Geosciences
GERM,German
GERO,Gerontology (UNO)
GLST,Global Studies
GPSP,Great Plains Studies Program
GRAS,Grassland Studies
GRBA,Graduate Business Administration
GRDC,Graduate Studies
GREK,Greek
GRPH,Art-Graphic Design & Illustration
HEBR,Hebrew
HIST,History
HMED,Humanities in Medicine
HORT,Horticulture
HRHA,Human Rights & Humanitarian Affairs
HRTM,'Hospitality, Restaurant & Tourism Management'
HUMS,Human Sciences
IBMS,Integrative Biomedical Science
IDES,Interior Design
IMSE,Industrial & Management Systems Engineering
INDV,Individual & Dual Activity (Rec)
JAPN,Japanese
JGEN,Journalism-General
JGRD,Journalism Graduate Courses
JOMC,Journalism-New Core
JOUR,Journalism-Core
JUDS,Judaic Studies Program
LAMS,Latin American Studies
LARC,Landscape Architecture (College of Architecture)
LATN,Latin
LAW,Law
LIBR,Library
LIFE,Life Sciences
MATH,Mathematics
MATL,Materials Engineering
MBIO,Microbiology
MECH,Mechanical Engineering
METR,Meteorology/Climatology
MLSC,Military Science
MNGT,Management
MODL,Modern Language
MRKT,Marketing
MRST,Medieval & Renaissance Studies
MSYM,Mechanized Systems Management
MUAP,Music-Applied
MUCO,Music Ensemble-Credit Only
MUCP,Music-Composition
MUDC,Music Ensemble-Degree Credit
MUED,Music Education
MUEN,Music Ensemble
MUNM,Music for Non-Majors
MUOP,Music-Opera
MUSC,Music
MUSR,Music-Student Recitals
NAVS,Naval Science
NEWS,News-Editorial
NREE,Natural Resources & Environmental Economics
NRES,Natural Resources
NSST,National Securities Studies
NURS,Nursing
NUTR,Nutrition & Health Sciences
ODED,Outdoor Education (Rec)
PANT,Art-Painting
PGAM,Professional Golf Management Program
PHIL,Philosophy
PHOT,Art-Photography
PHYS,Physics
PLPT,Plant Pathology
POLS,Political Science
PRNT,Art-Printmaking
PSYC,Psychology
RACS,Racquet Sports (Rec)
RAIK,Jeffrey S. Raikes School of Computer Science & Management
RELG,Religious Studies Program
RNGE,Rangeland Ecosystems
RUSS,Russian
SCLP,Art-Sculpture
SCMS,Supply Chain Management Systems
SLPA,Speech-Language Pathology & Audiology
SOCI,Sociology
SOCW,Social Work (UNO)
SOIL,Soil Science
SPAN,Spanish
SPED,Special Education
SRAM,Survey Research & Methodology
STAT,Statistics
TEAC,'Teaching, Learning & Teacher Education'
THEA,Theatre Arts
TLMT,Turfgrass & Landscape Management
TMFD,'Textiles, Merchandising & Fashion Design'
UHON,University Honors Program
VBMS,Veterinary & Biomedical Sciences
VMED,Veterinary Medicine
WATC,Art-Watercolor
WATS,Water Science
WMNS,Women & Gender Studies Program
a:168:{s:4:"ABUS";s:12:"Agribusiness";s:4:"ACCT";s:10:"Accounting";s:4:"ACTS";s:17:"Actuarial Science";s:4:"ADPR";s:30:"Advertising & Public Relations";s:4:"AECN";s:22:"Agricultural Economics";s:4:"AERO";s:9:"Aerospace";s:4:"AGEN";s:24:"Agricultural Engineering";s:4:"AGRI";s:21:"Agricultural Sciences";s:4:"AGRO";s:8:"Agronomy";s:4:"AHIS";s:23:"Art History & Criticism";s:4:"ALEC";s:50:"Agricultural Leadership, Education & Communication";s:4:"ANTH";s:12:"Anthropology";s:4:"ARAB";s:6:"Arabic";s:4:"ARCH";s:12:"Architecture";s:4:"AREN";s:50:"Architectural Engineering (College of Engineering)";s:4:"ARTP";s:21:"Art Theory & Practice";s:4:"ARTS";s:18:"Art-Special Topics";s:4:"ASCI";s:14:"Animal Science";s:4:"ASTR";s:9:"Astronomy";s:4:"ATHC";s:17:"Athletic Coaching";s:4:"ATHP";s:25:"Athletic Practice Courses";s:4:"ATHT";s:17:"Athletic Training";s:4:"BIME";s:22:"Biomedical Engineering";s:4:"BIOC";s:20:"Biological Chemistry";s:4:"BIOS";s:19:"Biological Sciences";s:4:"BLAW";s:12:"Business Law";s:4:"BRDC";s:12:"Broadcasting";s:4:"BSAD";s:23:"Business Administration";s:4:"BSEN";s:30:"Biological Systems Engineering";s:4:"CDEV";s:21:"Community Development";s:4:"CEEN";s:41:"Computing & Electronics Engineering (UNO)";s:4:"CEHS";s:26:"Education & Human Sciences";s:4:"CERM";s:12:"Art-Ceramics";s:4:"CHEM";s:9:"Chemistry";s:4:"CHIN";s:7:"Chinese";s:4:"CHME";s:35:"Chemical & Biomolecular Engineering";s:4:"CIVE";s:17:"Civil Engineering";s:4:"CLAS";s:8:"Classics";s:4:"CNST";s:23:"Construction Management";s:4:"COMB";s:16:"Combatives (Rec)";s:4:"COMM";s:21:"Communication Studies";s:4:"CONE";s:34:"Construction Engineering (UNO/UNK)";s:4:"CRIM";s:36:"Criminology & Criminal Justice (UNO)";s:4:"CRPL";s:29:"Community & Regional Planning";s:4:"CSCE";s:39:"Computer Science & Computer Engineering";s:4:"CYAF";s:31:"Child, Youth and Family Studies";s:4:"CZEC";s:5:"Czech";s:4:"DANC";s:5:"Dance";s:4:"DRAW";s:11:"Art-Drawing";s:4:"DSGN";s:6:"Design";s:4:"EAEP";s:36:"Engler Agribusiness Entrepreneurship";s:4:"ECON";s:9:"Economics";s:4:"EDAD";s:26:"Educational Administration";s:4:"EDPS";s:22:"Educational Psychology";s:4:"EDUC";s:9:"Education";s:4:"ELEC";s:22:"Electrical Engineering";s:4:"ENGL";s:7:"English";s:4:"ENGR";s:11:"Engineering";s:4:"ENSC";s:14:"Energy Science";s:4:"ENTO";s:10:"Entomology";s:4:"ENTR";s:16:"Entrepreneurship";s:4:"ENVE";s:25:"Environmental Engineering";s:4:"ENVR";s:21:"Environmental Studies";s:4:"ETHN";s:14:"Ethnic Studies";s:4:"FDST";s:25:"Food Science & Technology";s:4:"FINA";s:7:"Finance";s:4:"FITN";s:13:"Fitness (Rec)";s:4:"FORS";s:16:"Forensic Science";s:3:"FPT";s:15:"Fire Protection";s:4:"FREN";s:6:"French";s:4:"GEOG";s:9:"Geography";s:4:"GEOL";s:7:"Geology";s:4:"GEOS";s:11:"Geosciences";s:4:"GERM";s:6:"German";s:4:"GERO";s:17:"Gerontology (UNO)";s:4:"GLST";s:14:"Global Studies";s:4:"GPSP";s:28:"Great Plains Studies Program";s:4:"GRAS";s:17:"Grassland Studies";s:4:"GRBA";s:32:"Graduate Business Administration";s:4:"GRDC";s:16:"Graduate Studies";s:4:"GREK";s:5:"Greek";s:4:"GRPH";s:33:"Art-Graphic Design & Illustration";s:4:"HEBR";s:6:"Hebrew";s:4:"HIST";s:7:"History";s:4:"HMED";s:22:"Humanities in Medicine";s:4:"HORT";s:12:"Horticulture";s:4:"HRHA";s:35:"Human Rights & Humanitarian Affairs";s:4:"HRTM";s:44:"Hospitality, Restaurant & Tourism Management";s:4:"HUMS";s:14:"Human Sciences";s:4:"IBMS";s:30:"Integrative Biomedical Science";s:4:"IDES";s:15:"Interior Design";s:4:"IMSE";s:43:"Industrial & Management Systems Engineering";s:4:"INDV";s:32:"Individual & Dual Activity (Rec)";s:4:"JAPN";s:8:"Japanese";s:4:"JGEN";s:18:"Journalism-General";s:4:"JGRD";s:27:"Journalism Graduate Courses";s:4:"JOMC";s:19:"Journalism-New Core";s:4:"JOUR";s:15:"Journalism-Core";s:4:"JUDS";s:22:"Judaic Studies Program";s:4:"LAMS";s:22:"Latin American Studies";s:4:"LARC";s:48:"Landscape Architecture (College of Architecture)";s:4:"LATN";s:5:"Latin";s:3:"LAW";s:3:"Law";s:4:"LIBR";s:7:"Library";s:4:"LIFE";s:13:"Life Sciences";s:4:"MATH";s:11:"Mathematics";s:4:"MATL";s:21:"Materials Engineering";s:4:"MBIO";s:12:"Microbiology";s:4:"MECH";s:22:"Mechanical Engineering";s:4:"METR";s:23:"Meteorology/Climatology";s:4:"MLSC";s:16:"Military Science";s:4:"MNGT";s:10:"Management";s:4:"MODL";s:15:"Modern Language";s:4:"MRKT";s:9:"Marketing";s:4:"MRST";s:30:"Medieval & Renaissance Studies";s:4:"MSYM";s:29:"Mechanized Systems Management";s:4:"MUAP";s:13:"Music-Applied";s:4:"MUCO";s:26:"Music Ensemble-Credit Only";s:4:"MUCP";s:17:"Music-Composition";s:4:"MUDC";s:28:"Music Ensemble-Degree Credit";s:4:"MUED";s:15:"Music Education";s:4:"MUEN";s:14:"Music Ensemble";s:4:"MUNM";s:20:"Music for Non-Majors";s:4:"MUOP";s:11:"Music-Opera";s:4:"MUSC";s:5:"Music";s:4:"MUSR";s:22:"Music-Student Recitals";s:4:"NAVS";s:13:"Naval Science";s:4:"NEWS";s:14:"News-Editorial";s:4:"NREE";s:43:"Natural Resources & Environmental Economics";s:4:"NRES";s:17:"Natural Resources";s:4:"NSST";s:27:"National Securities Studies";s:4:"NURS";s:7:"Nursing";s:4:"NUTR";s:27:"Nutrition & Health Sciences";s:4:"ODED";s:23:"Outdoor Education (Rec)";s:4:"PANT";s:12:"Art-Painting";s:4:"PGAM";s:36:"Professional Golf Management Program";s:4:"PHIL";s:10:"Philosophy";s:4:"PHOT";s:15:"Art-Photography";s:4:"PHYS";s:7:"Physics";s:4:"PLPT";s:15:"Plant Pathology";s:4:"POLS";s:17:"Political Science";s:4:"PRNT";s:15:"Art-Printmaking";s:4:"PSYC";s:10:"Psychology";s:4:"RACS";s:20:"Racquet Sports (Rec)";s:4:"RAIK";s:57:"Jeffrey S. Raikes School of Computer Science & Management";s:4:"RELG";s:25:"Religious Studies Program";s:4:"RNGE";s:20:"Rangeland Ecosystems";s:4:"RUSS";s:7:"Russian";s:4:"SCLP";s:13:"Art-Sculpture";s:4:"SCMS";s:31:"Supply Chain Management Systems";s:4:"SLPA";s:37:"Speech-Language Pathology & Audiology";s:4:"SOCI";s:9:"Sociology";s:4:"SOCW";s:17:"Social Work (UNO)";s:4:"SOIL";s:12:"Soil Science";s:4:"SPAN";s:7:"Spanish";s:4:"SPED";s:17:"Special Education";s:4:"SRAM";s:29:"Survey Research & Methodology";s:4:"STAT";s:10:"Statistics";s:4:"TEAC";s:38:"Teaching, Learning & Teacher Education";s:4:"THEA";s:12:"Theatre Arts";s:4:"TLMT";s:32:"Turfgrass & Landscape Management";s:4:"TMFD";s:40:"Textiles, Merchandising & Fashion Design";s:4:"UHON";s:25:"University Honors Program";s:4:"VBMS";s:32:"Veterinary & Biomedical Sciences";s:4:"VMED";s:19:"Veterinary Medicine";s:4:"WATC";s:14:"Art-Watercolor";s:4:"WATS";s:13:"Water Science";s:4:"WMNS";s:30:"Women & Gender Studies Program";}
\ No newline at end of file
[DB_DataObject]
database = mysql://catalog:catalog@localhost/catalog
schema_location = /home/bbieber/workspace/bulletin/Catalog
class_location = /home/bbieber/workspace/bulletin/Catalog
require_prefix = /home/bbieber/workspace/bulletin/Catalog
class_prefix = UNL_Catalog_
generator_exclude_regex = /mw_.*/
<?php
/*
* Map of regular expressions which map to models the controller will construct
*/
$routes = array();
$routes['/^$/'] = 'UNL\Catalog\Homepage';
// Commonly used regular expressions
$base = 'courses';
$format = '(\.(?P<format>[\w]+))?'; // Used for determining an output format, e.g. .xml, .html
$subjectArea = '(?P<subjectArea>[A-Z]{3,4})'; // Course subject code, e.g. CSCE
$courseNumber = '(?P<courseNumber>[\d]?[\d]{2,3}[A-Za-z]?)'; // Course number, e.g. 155H
$routes['/^'.$base.'\/$/'] = 'UNL\Catalog\SubjectAreas';
$routes['/^'.$base.'\/'.$subjectArea.'\/$/'] = 'UNL\Catalog\SubjectArea';
$routes['/^'.$base.'\/'.$subjectArea.$format.'$/'] = 'UNL\Catalog\SubjectArea';
$routes['/^'.$base.'\/'.$subjectArea.'\/'.$courseNumber.$format.'$/'] = 'UNL\Catalog\Listing';
return $routes;
No preview for this file type
<?xml version="1.0" encoding="UTF-8"?>
<channel version="1.0" xmlns="http://pear.php.net/channel-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/channel-1.0 http://pear.php.net/dtd/channel-1.0.xsd">
<name>phpsavant.com</name>
<suggestedalias>savant</suggestedalias>
<summary>Savant</summary>
<servers>
<primary>
<rest>
<baseurl type="REST1.0">http://phpsavant.com/rest/</baseurl>
<baseurl type="REST1.1">http://phpsavant.com/rest/</baseurl>
<baseurl type="REST1.3">http://phpsavant.com/rest/</baseurl>
</rest>
</primary>
</servers>
</channel>
phpsavant.com
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.8.0RC1" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>Archive_Tar</name>
<channel>pear.php.net</channel>
<summary>Tar file management class</summary>
<description>This class provides handling of tar files in PHP.
It supports creating, listing, extracting and adding to tar files.
Gzip support is available if PHP has the zlib extension built-in or
loaded. Bz2 compression is also supported with the bz2 extension loaded.</description>
<lead>
<name>Gregory Beaver</name>
<user>cellog</user>
<email>cellog@php.net</email>
<active>yes</active>
</lead>
<lead>
<name>Vincent Blavet</name>
<user>vblavet</user>
<email>vincent@phpconcept.net</email>
<active>no</active>
</lead>
<helper>
<name>Stig Bakken</name>
<user>ssb</user>
<email>stig@php.net</email>
<active>no</active>
</helper>
<date>2010-05-04</date>
<time>08:41:39</time>
<version>
<release>1.3.3</release>
<api>1.3.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
Change the license to New BSD license
minor bugfix release
* fix Bug #9921 compression with bzip2 fails [cellog]
* fix Bug #11594 _readLongHeader leaves 0 bytes in filename [jamessas]
* fix Bug #11769 Incorrect symlink handing [fajar99]
</notes>
<contents>
<dir name="/">
<file baseinstalldir="/" md5sum="29b03715377b18b1fafcff98a99cc9a7" name="docs/Archive_Tar.txt" role="doc"/>
<file baseinstalldir="/" md5sum="d6c6633566e7484aff188f798529b061" name="Archive/Tar.php" role="php"/>
</dir>
</contents>
<compatible>
<name>PEAR</name>
<channel>pear.php.net</channel>
<min>1.4.0</min>
<max>1.5.0RC2</max>
</compatible>
<dependencies>
<required>
<php>
<min>4.3.0</min>
</php>
<pearinstaller>
<min>1.5.4</min>
</pearinstaller>
</required>
</dependencies>
<phprelease>
<changelog>
<release>
<version>
<release>1.3.2</release>
<api>1.3.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2007-01-03</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Correct Bug #4016
Remove duplicate remove error display with '@'
Correct Bug #3909 : Check existence of OS_WINDOWS constant
Correct Bug #5452 fix for &quot;lone zero block&quot; when untarring packages
Change filemode (from pear-core/Archive/Tar.php v.1.21)
Correct Bug #6486 Can not extract symlinks
Correct Bug #6933 Archive_Tar (Tar file management class) Directory traversal
Correct Bug #8114 Files added on-the-fly not storing date
Correct Bug #9352 Bug on _dirCheck function over nfs path
</notes>
</release>
<release>
<version>
<release>1.3.1</release>
<api>1.3.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-17</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Correct Bug #3855
</notes>
</release>
<release>
<version>
<release>1.3.0</release>
<api>1.3.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-06</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Bugs correction (2475, 2488, 2135, 2176)
</notes>
</release>
<release>
<version>
<release>1.2</release>
<api>1.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-05-08</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Add support for other separator than the space char and bug
correction
</notes>
</release>
<release>
<version>
<release>1.1</release>
<api>1.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-05-28</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
* Add support for BZ2 compression
* Add support for add and extract without using temporary files : methods addString() and extractInString()
</notes>
</release>
<release>
<version>
<release>1.0</release>
<api>1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-01-24</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Change status to stable
</notes>
</release>
<release>
<version>
<release>0.10-b1</release>
<api>0.10-b1</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2003-01-08</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Add support for long filenames (greater than 99 characters)
</notes>
</release>
<release>
<version>
<release>0.9</release>
<api>0.9</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2002-05-27</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Auto-detect gzip'ed files
</notes>
</release>
<release>
<version>
<release>0.4</release>
<api>0.4</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2002-05-20</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Windows bugfix: use forward slashes inside archives
</notes>
</release>
<release>
<version>
<release>0.2</release>
<api>0.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2002-02-18</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
From initial commit to stable
</notes>
</release>
<release>
<version>
<release>0.3</release>
<api>0.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2002-04-13</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>
Windows bugfix: used wrong directory separators
</notes>
</release>
</changelog>
</phprelease>
</package>
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.6.1" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>Console_Getopt</name>
<channel>pear.php.net</channel>
<summary>Command-line option parser</summary>
<description>This is a PHP implementation of &quot;getopt&quot; supporting both
short and long options.</description>
<lead>
<name>Andrei Zmievski</name>
<user>andrei</user>
<email>andrei@php.net</email>
<active>yes</active>
</lead>
<developer>
<name>Stig Bakken</name>
<user>ssb</user>
<email>stig@php.net</email>
<active>no</active>
</developer>
<helper>
<name>Greg Beaver</name>
<user>cellog</user>
<email>cellog@php.net</email>
<active>yes</active>
</helper>
<date>2010-05-04</date>
<time>08:41:39</time>
<version>
<release>1.2.3</release>
<api>1.2.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>* fix Bug #11068: No way to read plain &quot;-&quot; option [cardoe]</notes>
<contents>
<dir name="/">
<file md5sum="f2175a45c5e5bc7c97e174bdae55b671" name="Console/Getopt.php" role="php"/>
</dir>
</contents>
<compatible>
<name>PEAR</name>
<channel>pear.php.net</channel>
<min>1.4.0</min>
<max>1.6.0</max>
</compatible>
<dependencies>
<required>
<php>
<min>4.3.0</min>
</php>
<pearinstaller>
<min>1.4.3</min>
</pearinstaller>
</required>
</dependencies>
<phprelease>
<changelog>
<release>
<version>
<release>1.2.2</release>
<api>1.2.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2007-02-17</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>* fix Bug #4475: An ambiguous error occurred when specifying similar longoption name.
* fix Bug #10055: Not failing properly on short options missing required values</notes>
</release>
<release>
<version>
<release>1.2.1</release>
<api>1.2.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-12-08</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Fixed bugs #4448 (Long parameter values truncated with longoption parameter) and #7444 (Trailing spaces after php closing tag)</notes>
</release>
<release>
<version>
<release>1.2</release>
<api>1.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-12-11</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Fix to preserve BC with 1.0 and allow correct behaviour for new users</notes>
</release>
<release>
<version>
<release>1.0</release>
<api>1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2002-09-13</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Stable release</notes>
</release>
<release>
<version>
<release>0.11</release>
<api>0.11</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-05-26</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>POSIX getopt compatibility fix: treat first element of args
array as command name</notes>
</release>
<release>
<version>
<release>0.10</release>
<api>0.10</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-05-12</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Packaging fix</notes>
</release>
<release>
<version>
<release>0.9</release>
<api>0.9</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-05-12</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Initial release</notes>
</release>
</changelog>
</phprelease>
</package>
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.6.2" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>DB</name>
<channel>pear.php.net</channel>
<summary>Database Abstraction Layer</summary>
<description>DB is a database abstraction layer providing:
* an OO-style query API
* portability features that make programs written for one DBMS work with other DBMS's
* a DSN (data source name) format for specifying database servers
* prepare/execute (bind) emulation for databases that don't support it natively
* a result object for each query response
* portable error codes
* sequence emulation
* sequential and non-sequential row fetching as well as bulk fetching
* formats fetched rows as associative arrays, ordered arrays or objects
* row limit support
* transactions support
* table information interface
* DocBook and phpDocumentor API documentation
DB layers itself on top of PHP's existing
database extensions.
Drivers for the following extensions pass
the complete test suite and provide
interchangeability when all of DB's
portability options are enabled:
fbsql, ibase, informix, msql, mssql,
mysql, mysqli, oci8, odbc, pgsql,
sqlite and sybase.
There is also a driver for the dbase
extension, but it can't be used
interchangeably because dbase doesn't
support many standard DBMS features.
DB is compatible with both PHP 4 and PHP 5.</description>
<lead>
<name>Daniel Convissor</name>
<user>danielc</user>
<email>danielc@php.net</email>
<active>yes</active>
</lead>
<lead>
<name>Adam Harvey</name>
<user>aharvey</user>
<email>aharvey@php.net</email>
<active>yes</active>
</lead>
<developer>
<name>Stig Bakken</name>
<user>ssb</user>
<email>stig@php.net</email>
<active>yes</active>
</developer>
<developer>
<name>Tomas V.V.Cox</name>
<user>cox</user>
<email>cox@idecnet.com</email>
<active>yes</active>
</developer>
<date>2010-05-04</date>
<time>08:41:39</time>
<version>
<release>1.7.13</release>
<api>1.7.13</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>This release of DB fixes a number of minor issues reported since the release of DB 1.7.12.
All drivers:
* Replaced instances of '=&amp; new Foo' with '= new Foo' to make DB (slightly) more E_STRICT friendly. Request 11581.
mysql:
* Added an explicit call to select the database to fix calls to tableInfo() without a preceding query. Bug 11580.
mysqli:
* Added an explicit call to select the database to fix calls to tableInfo() without a preceding query. Bug 11580.
sqlite:
* Altered fetchInto() to remove extraneous quotes returned by SQLite. Bug 11716.</notes>
<contents>
<dir name="/">
<file md5sum="00fc796571e167a2bd17f6691a2ddffe" name="tests/transactions.inc" role="test"/>
<file md5sum="13b1c3a21e4d9f24fe1b33d306ad8fe0" name="tests/skipif.inc" role="test"/>
<file md5sum="312e6618fa82a872c9e65d998da9561e" name="tests/simplequery.inc" role="test"/>
<file md5sum="b30a53c29b829a3932c5e8479bd2deb4" name="tests/sequences.inc" role="test"/>
<file md5sum="aac444f47ed3ad1642013539d99f5757" name="tests/run.cvs" role="test"/>
<file md5sum="de177b83e1681d1d08e0c92aec168cd9" name="tests/prepexe.inc" role="test"/>
<file md5sum="9967a99a3c500d771b8c15faa86ad416" name="tests/numrows.inc" role="test"/>
<file md5sum="10c25427ebeca0daf1fb7ed33fdc2682" name="tests/numcols.inc" role="test"/>
<file md5sum="4cd93255482abcf60d9deaf7888760aa" name="tests/limit.inc" role="test"/>
<file md5sum="2a932aca6e775e98689b689ae54d2b50" name="tests/include.inc" role="test">
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
</file>
<file md5sum="7cb25802942e04e59001e85663a7ab0e" name="tests/fetchmode_object.inc" role="test"/>
<file md5sum="2cb4b6b013652415d29a2b71417cef18" name="tests/fetchmodes.inc" role="test"/>
<file md5sum="086b838cc170101e636af2e3b73b46b8" name="tests/errors.inc" role="test"/>
<file md5sum="3016dba4918a322d440dbb688bce024a" name="tests/driver/skipif.inc" role="test"/>
<file md5sum="18a9d3f6895859bb74e9d380c600d4cd" name="tests/driver/setup.inc.cvs" role="test">
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
</file>
<file md5sum="7023d979e8bcb94a93d48597d864feb3" name="tests/driver/run.cvs" role="test"/>
<file md5sum="8dc5f2d2be9b916e9940825f4511b533" name="tests/driver/multiconnect.php" role="test"/>
<file md5sum="b1d4a722f5c583a77bba51d4e9749ab2" name="tests/driver/mktable.inc" role="test"/>
<file md5sum="c3933292049fa189b319daa0c1f008c9" name="tests/driver/droptable.inc" role="test"/>
<file md5sum="68c43e8c27b78bc7c731a89958882301" name="tests/driver/connect.inc" role="test"/>
<file md5sum="281055f0d5ab507718a2c7501edb3a18" name="tests/driver/21freeResult.phpt" role="test"/>
<file md5sum="4655d272211dc5d60904796d6d7e1f99" name="tests/driver/20locale.phpt" role="test"/>
<file md5sum="de354d5fe32f0b9fbbcaed1bada7e7a2" name="tests/driver/19getlistof.phpt" role="test"/>
<file md5sum="096f764b8519e18c0ad2eeaef6229ee1" name="tests/driver/18get.phpt" role="test"/>
<file md5sum="816de230b3ff9b0fdf57bf8a1a7700cf" name="tests/driver/17query.phpt" role="test"/>
<file md5sum="50b6ad0cbea649854ea4e09e524d2641" name="tests/driver/16tableinfo.phpt" role="test"/>
<file md5sum="2cf853766a1c1dc21f0b38988cd5a406" name="tests/driver/15quote.phpt" role="test"/>
<file md5sum="3ca3ee12cfe59a146caa21e65c4b32e1" name="tests/driver/14fetchmode_object.phpt" role="test"/>
<file md5sum="b440536baa35dcd7f40f41f26a0ba184" name="tests/driver/13limit.phpt" role="test"/>
<file md5sum="1ad007b069ba4ee8af4e0faa2d1d38e9" name="tests/driver/11transactions.phpt" role="test"/>
<file md5sum="b2e481fc6f310db41e249a1e53f353c2" name="tests/driver/10errormap.phpt" role="test"/>
<file md5sum="7efee695096e0cf6e243e5590915b6fc" name="tests/driver/09numrows.phpt" role="test"/>
<file md5sum="b2e5ebe28916e63d8502845d58f74d49" name="tests/driver/08affectedrows.phpt" role="test"/>
<file md5sum="8d651d2da580619ed5abeaaa9e1f71ad" name="tests/driver/06prepexec.phpt" role="test"/>
<file md5sum="1b52edb34978a8929f4315b7ec2f5445" name="tests/driver/05sequences.phpt" role="test"/>
<file md5sum="a5ecf473f648022af5dc9fbb2f33e371" name="tests/driver/04numcols.phpt" role="test"/>
<file md5sum="b671efeac9fd34b83309de8413531317" name="tests/driver/03simplequery.phpt" role="test"/>
<file md5sum="06b9bb0bec3cbfbd2e463d2782d5f05a" name="tests/driver/02fetch.phpt" role="test"/>
<file md5sum="81f3cb01442148ff75a752f68b946df0" name="tests/driver/01connect.phpt" role="test"/>
<file md5sum="a470ea13cb74d88619f08b1308054975" name="tests/db_parsedsn.phpt" role="test"/>
<file md5sum="da74e7939fe22d9c526939e978ace61c" name="tests/db_ismanip.phpt" role="test"/>
<file md5sum="79e88e6db0c25ca1ee5e2aac35a24d6c" name="tests/db_factory.phpt" role="test"/>
<file md5sum="5f5068a8a1a3742ff0810be61b57288d" name="tests/db_error2.phpt" role="test"/>
<file md5sum="2e7f987503b8b5e2a7fc4c3c30e79c13" name="tests/db_error.phpt" role="test"/>
<file md5sum="31f276d6ff710a1f048c50cd533ffe5c" name="doc/TESTERS" role="doc"/>
<file md5sum="30bc4ceeccd51413ab81fa98c1fb9aa8" name="doc/STATUS" role="doc"/>
<file md5sum="8c5779871e07720a032615177403b691" name="doc/MAINTAINERS" role="doc"/>
<file md5sum="651a644b6f3495fc39279d75b8099372" name="doc/IDEAS" role="doc"/>
<file md5sum="4fc3ffb31c807f7b92d7b3c00535e883" name="DB/sybase.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="bb7f96b3f78bbd481b31127bab61537a" name="DB/storage.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="4ec65c56336e956b953b22f48c48b796" name="DB/sqlite.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="347ce374b54195a000ec4b268dc656a9" name="DB/pgsql.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="fcee078e70107d665ba624b1ce7a7ef4" name="DB/odbc.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="39189815c39dc0167a451654ead3c99b" name="DB/oci8.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="177df43a04dbb4cc3840fb02e4ccf0bb" name="DB/mysqli.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="57bc68e9050730676272e33dbec065e7" name="DB/mysql.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="f30b7dfbf00343edb6de00624595b102" name="DB/mssql.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="7a1ad0f98c396944f449649dad6662d5" name="DB/msql.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="c87ed59a6cd174706980d42a6f359ade" name="DB/ifx.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="a06866d7621a2077a091741c3d3d026e" name="DB/ibase.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="3683c44821ef40a97b82dbe0ead9d9e5" name="DB/fbsql.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="9f1e6803eb8d056d0d9c5dbd62a535c9" name="DB/dbase.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="79bf960987c22987845f8b4fa3aa8716" name="DB/common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="38ae3509ec733b5a7a6a41a585f991d1" name="DB.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>4.2.0</min>
</php>
<pearinstaller>
<min>1.4.0b1</min>
</pearinstaller>
<package>
<name>PEAR</name>
<channel>pear.php.net</channel>
<min>1.0b1</min>
</package>
</required>
</dependencies>
<phprelease/>
</package>
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.7.2" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>DB_DataObject</name>
<channel>pear.php.net</channel>
<summary>An SQL Builder, Object Interface to Database Tables</summary>
<description>DataObject performs 2 tasks:
1. Builds SQL statements based on the objects vars and the builder methods.
2. acts as a datastore for a table row.
The core class is designed to be extended for each of your tables so that you put the
data logic inside the data classes.
included is a Generator to make your configuration files and your base classes.</description>
<lead>
<name>Alan Knowles</name>
<user>alan_k</user>
<email>alan@akbkhome.com</email>
<active>yes</active>
</lead>
<date>2010-05-04</date>
<time>08:41:38</time>
<version>
<release>1.9.3</release>
<api>1.9.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license/3_01.txt">PHP License 3.01</license>
<notes>Fix broken release (1.9.1 and 1.9.2)
fetchAll() / whereAddIn() Release version.
This version adds two new utility methods, that can speed up usage,
fetchAll() - does the $do-&gt;find() / while($do-&gt;fetch()) $ar[] = clone($do) loop, and more.
whereAddIn() - allows you to quickly build IN queries, with correct escaping.</notes>
<contents>
<dir name="/">
<file baseinstalldir="DB" md5sum="cdcc4ead8ef5e06df4381ca0976dcdad" name="scripts/DB_DataObject_createTables.bat" role="script"/>
<file baseinstalldir="DB" md5sum="9d98e006265435a3e6e8a3e08a659c3b" name="docs/example.ini" role="doc"/>
<file baseinstalldir="DB" md5sum="b88cad42760b2d12489ebea8e9da47dc" name="DataObject/Generator.php" role="php"/>
<file baseinstalldir="DB" md5sum="06e890beb94da0cfd9782b220989f25f" name="DataObject/Error.php" role="php"/>
<file baseinstalldir="DB" md5sum="8f7382a61580d5be68e31a7544d454d7" name="DataObject/createTables.php" role="php"/>
<file baseinstalldir="DB" md5sum="b50c79d3a19d9e156c7bfd9a221fab55" name="DataObject/Cast.php" role="php"/>
<file baseinstalldir="DB" md5sum="cf030d2f3184d09d99f41fa54d1607b0" name="DataObject.php" role="php">
<tasks:replace from="@version@" to="version" type="package-info"/>
</file>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>4.3</min>
</php>
<pearinstaller>
<min>1.4.0b1</min>
</pearinstaller>
<package>
<name>DB</name>
<channel>pear.php.net</channel>
<min>1.7.0</min>
</package>
<package>
<name>Date</name>
<channel>pear.php.net</channel>
<min>1.4.3</min>
</package>
</required>
<optional>
<package>
<name>MDB2</name>
<channel>pear.php.net</channel>
<min>2.0.0RC1</min>
</package>
<package>
<name>Validate</name>
<channel>pear.php.net</channel>
<min>0.1.1</min>
</package>
</optional>
</dependencies>
<phprelease>
<changelog>
<release>
<date>2010-01-15</date>
<version>
<release>1.9.1</release>
<api>1.9.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license/3_01.txt">PHP License 3.01</license>
<notes>fetchAll() / whereAddIn() Release version.
This version adds two new utility methods, that can speed up usage,
fetchAll() - does the $do-&gt;find() / while($do-&gt;fetch()) $ar[] = clone($do) loop, and more.
whereAddIn() - allows you to quickly build IN queries, with correct escaping.</notes>
</release>
<release>
<date>2009-12-03</date>
<version>
<release>1.9.0</release>
<api>1.9.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license/3_01.txt">PHP License 3.01</license>
<notes>Modular Release version.
This version was designed to support multiple locations of DataObjects for use with
modular applications. - NOTE the change to ini_DATABASENAME may fixes the previous behaviour to
match the documented behaviour - however this may break existing installations.
New Features:
#------- class_location accepts multiple locations with PATH_SEPARATOR
#------- class_prefix accepts multiple prefixes with PATH_SEPARATOR
#------- ini_DATABASENAME merges all found ini files in paths (seperated by PATH_SEPARATOR)
previous behaviour was just to read the first. - this applies to matching links.ini files.
#12550 - disable_null_strings=full -- see the bug report for details - it is highly recommended not to use this feature,
as it may result in data being deleted from your database if not used carefully.
Notes:
#------- staticGet now marked depreciated.
#------- links_DATABASENAME does not support multiple paths
#------- staticAutoloadTable (depreciated) and staticGet (depreciated) do not support this feature</notes>
</release>
<release>
<date>2009-08-12</date>
<version>
<release>1.8.12</release>
<api>1.8.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license/3_01.txt">PHP License 3.01</license>
<notes>Licence upgrade Release
#----- - Changed Error and Cast Licence to 3.01 to keep Debian/Ubuntu happy.</notes>
</release>
<release>
<date>2009-07-16</date>
<version>
<release>1.8.11</release>
<api>1.8.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license/3_01.txt">PHP License 3.01</license>
<notes>Licence upgrade Release
#----- - Licence changed to 3.01 to keep Debian/Ubuntu happy.
#----- - Change order of preference for links in JoinAdd - prefer called table links over jointo table.
#----- - Retry support for connection failure on queries
#----- - Factory now uses '/' for database/table seperator (experimental)
#----- - Fix INSERT on Postresql with empty data.</notes>
</release>
<release>
<date>2009-03-19</date>
<version>
<release>1.8.10</release>
<api>1.8.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license/3_01.txt">PHP License 3.01</license>
<notes>Annual Release - Minor Bugfixs / Extra Features
#----- - Fix factory error with database name not found
#----- - Change factory multi-database call to use '/' rather than '.' so
that it can work with postgres (also syncs with what the original notes said)</notes>
</release>
<release>
<date>2009-03-12</date>
<version>
<release>1.8.9</release>
<api>1.8.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Annual Release - Minor Bugfixs / Extra Features
#15066 - limited support for POINT (at least generator creates something)
#14976 - add option generator_omit_database_var to prevent creation of
$database lines (Troy Anderson)
#13995 - incorrect test in sequence key for postgres
#14252 - doc comments on delete() corrected to say return value is no. of
rows affected on success
###### - ensure that tableinfo uses quote_identifiers_tableinfo
###### - add sqlite support to Cast blobs
###### - old skipEmpty check broke formating on setFrom
###### - remove previous checks on database dsn lookup - move it to factory.
###### - Fix count check for no keys. - By Jeffrey Pfau
###### - Add multidatabase factory() support - eg.
DB_DataObject::factory(&quot;mydatabase.mytable&quot;);
###### - Added checks to ensure that database names match requested ones.
#13773 - delete(true) honours join conditions
#13788 - test for error before re-writing definition table for MDB2 in Generator
#13789 - honour user specified MDB2 options in Generator
#13790 - support CLOB oracle
#12993 - add new option generator_secondary_key_match - set to false, to
disable key matching for secondary key types</notes>
</release>
<release>
<date>2008-01-30</date>
<version>
<release>1.8.8</release>
<api>1.8.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix / Feature Release
Pre-chinese new year release (with lots of 8's...)
Bug Fixes
#12556 - Generator - pregmatch appears broken for replacing class name on updating files
#10112 - additional config option quote_identifiers_tableinfo for use with tableinfo on generator
Fixes issues with Oracle and quoting identifiers.
#11773 - problems with object-&gt;array[prop] setting on PHP5.2.3
** this may also have been fixed twice by fix for #11775
#12858 - MDB2 and postgres missing db_driver variable
#9902 - default portability options for MDB2 to not fix case.
#9658 - postgres DECIMAL using DB backend incorrectly
flagged as unknown - changed warning to suggest using MDB2
#11091 - count attempted to read quote identifiers before config was loaded
#11804 - insert with postgres/msql return wrong error message
#9364 - fix postgres native sequences with MDB
#11775 - unsetting of $this-&gt;_query causes overload setters/getters to
handle later uses of _query and break due to lack of array accessor support
#11634 - Windows fails to rename files if they exist - affecting Generator
(try and fix it so unix is still atomic)</notes>
</release>
<release>
<date>2007-07-12</date>
<version>
<release>1.8.7</release>
<api>1.8.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix Release
Bug Fixes:
#11586 - missing default value in Generator for class_prefix caused warning
#11584 - typo in Generator caused permissions to be incorrectly set on ini file.</notes>
</release>
<release>
<date>2007-07-10</date>
<version>
<release>1.8.6</release>
<api>1.8.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix and Minor Feature addition release
Bug Fixes:
#11483 - show an error if pcre limits are not correctly set and generator tries to generate empty files
#11528 - sending like queries to escape does not escape % and _ - added additional parameter to
escape : [bool $likeEscape] is optional and can be used to force escaping of these characters
#10573 - fix permissions on generated files
#10573 - write Generated files to temp directory, then rename into place. - fixing locking issues
#10531 - correct fix for bug #9628 (support MDB2 for defaults())
#10454 - mssql uses wrong variable name for options.
#10175 - MDB2 does not return length value
#9573 - enable disable_null_strings to turn of &quot;null&quot;-&gt; NULL replacements
#9625 - MDB2 support for MSSQL sequencies
#9644 - incorrect constant in foriegn key generation.
#9628 - support MDB2 for defaults()
#9839 - Invalid column names can not be supported, so warning is generated
#9834 - SQL2003 standards on Joins - adds brackets around ON()
#4266 - minor fix to appendJoin code
#9755 - generator showed php error if connection failed
#9730 - quote identifiers on composite joins
* feature request
#4266 - joins with multiple keys
#2216 - JOIN ON conversion of Where condition into ON arguments - patch by David Sanders
#---- add in docbook hooks to generator - as requested/coded by Vyacheslav Iutin</notes>
</release>
<release>
<date>2006-12-15</date>
<version>
<release>1.8.5</release>
<api>1.8.5</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix and Minor Feature addition release
* #8876 - call free() after count - hopefully this will not break anything!
* #8736 - auto_increment check for MDB2 backend
* #8628 - tableInfo fix for MDB2
* #7792 - add integer[] and boolean[] support
* #7702 - memory leaks on getLinks() , free() is called
within getLinks(), - you still need to call free() after doing a
getLink() - as I suspect automagically doing that would cause
problems..
* #7409 - ibase support for filename based database names - not sure if this works, but
will ask reporter to test it..
* #7353 - postgres incorrect testing of t/f for booleans
* #7114 = generator of sequence keys and defaults using generator_no_ini
* #3773 - change last_value to currval - need to confirm this is the correct fix.
* #3152 - joinAdd requires join column to be in links.ini file
Feature Requests:
* Feature Request #4266 - Allow joins with multiple keys
Minor Changes:
* dont flush on debugging html output
* links.ini code generation based on schema (mysql[i] only) -
option:generate_links=true - thanks to Pacal Schoni
* add warning about unknown types in generator.
* only prefix database name, in joins when the two objects are of different databases
* nicer error message for !isreadable - thx to Euan Maxwell
* use class exists loader, so that relative test relative paths in
tests work, (also means that autoload may work...)
* remove pass by reference - why on earth that was there in the first place is totally beyond me...
* give derivedHookFunctions the ability to use the original input data
* add methods
getClassNameFromTableName(),
getFileNameFromTableName(),
getMethodNameFromColumnName(),
which allow you to set up your own mapping system by overriding them in
your extended generator.. it however needs some support in dataobjects so currently
flagged as EXPERIMENTAL</notes>
</release>
<release>
<version>
<release>1.8.4</release>
<api>1.8.4</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-03-06</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix and Minor Feature addition release
Bugs
----
#7006 - fix links due to removal of databaseStructure call in 1.8.3, added call
to connect();
#7012 - joinAdd fixed due to checking of wrong variable when buidling query on
mysql.
Features
--------
- Add support for defaults() generation in createTables/Generator,
when using the flag generator_add_defaults = yes or generator_no_ini = yes
a method defaults() is created in the table class, which contains
the default values for the table generated from the database.
Note: EXPERIMENTAL and only works with Mysql[i] at present.</notes>
</release>
<release>
<version>
<release>1.8.3</release>
<api>1.8.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-03-03</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix and Minor Feature addition release
Bugs
----
- Remove Warning if class_prefix is not set, and allow it not to be set.
- joinAdd() support for DB_DataObject::cast() objects (Daniel Braga)
- MDB2 fixes for undefined constants (bate)
-
#6772 - Support for FLOAT4 type in postgres
#6953 - Changed memory allocation of stored column values for SQL return when
Fetching last item of an object. Fixing problem of missing columns on
Last fetch from Join being broken when used with toArray().
#6928 - Defaulting to prefixing database name in joins for Mysql and Mysqli
backends, so multiple joins across multiple databases work.
Features
--------
- Add support for option 'generator_no_ini =&gt; true', which generates class
files with schema defined inside the table(), keys() and sequenceKeys()
(based on work and suggestions by Didler Galland and Justin Patrin)
- SQL output for debugging now has line breaks to make it easier to read.
- SelectAs uses quote itendifiers for target format.</notes>
</release>
<release>
<version>
<release>1.8.2</release>
<api>1.8.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-01-21</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix release
Bugs
----
#6543 - Generator broke due to MDB changes.</notes>
</release>
<release>
<version>
<release>1.8.1</release>
<api>1.8.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-01-20</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Bugs
----
#6153 - dont call autoload on PHP5 - kludgy wrapper around class_exists()
#6458 - clear staticGet cache when calling free()
#6442 - validation not working correctly on DB_DataObject_Cast Objects
Changes/New Features
--------------------
* fix warning if setFrom called with object..
* make createTables honour debug level in ini file.
* Added support in generator, for MDB2 backend to generate the class files (bate)</notes>
</release>
<release>
<version>
<release>1.8.0</release>
<api>1.8.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-12-28</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Major Bug Fix &amp; Feature release.
Bugs:
#4871 - remove warning when value is not found in table
#4834 - case sensitive checks for db_dataobject_cast fail
#4894 - Validate methods can return PEAR Errors, or even
messages now.. - only true indicates success
#4938 - support MONEY type for MSSQL
#4968 - count() will not be affected by changing default
db fetchmode
#5036 - make sure DB is loaded before using it
#5264 - add optional dep on MDB
#5416 - use tablea AS tableb only for postgress/mysql -
oracle doesnt need the AS bit - and I guess a few others too..
available and first fetch fails
conditions
#5614 - joinAdd check to see if object being joined is
really a dataobject
#5065 - count returns number cast to an integer (even
though database may return a string)
#5800 - generator will continue creating other tables if we find one
that fails...
#5881 - wrap conditions with extra brackets
remaining checks in validate
#5393 - flag up unique only keys as &quot;U&quot;, rather than &quot;K&quot;
(or &quot;N&quot; for native) to allow anything calling keys() to find more
detailed information - should have no effect on the dataobject
class, as only sequence keys looks for &quot;K&quot;
Feature Requests:
#5146 - option: generator_var_keyword,
to specify if you want to use var or public
Other Changes
default behaviour.. so it shouldnt really have affected anyone..
amazed no one picked this up before..
* make WHERE stripping better = well spotted Justin
* catch errors returned from nextID - like permission denied etc.,
add warnings in debug mode if we are using objects or arrays for
some reason, fix error messages
* correct the dependancy on packages
* the dont die here causes a recursive error and segfaults
everything if it doesnt return..
* use is_a, rather than PEAR, as one day we may remove that dep...
* fix PHP4.4* issues with returning by reference..
* make debugging schema loading errors a bit easier
* test for bug #5931 added to test 91
* update($dataobject), change check for changes to strict checking,
so that 0001 -&gt; 00001 works, along with many other situations..,
remove extra ; from code
* fix null detection on postgres, - patch by Alistair MacDonald
* free result columns as well as results after fetching all rows.</notes>
</release>
<release>
<version>
<release>1.7.15</release>
<api>1.7.15</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-07-07</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix release
* fix bug #4760 - DB_DataObject_Cast blobs broke in last release</notes>
</release>
<release>
<version>
<release>1.7.14</release>
<api>1.7.14</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-06-25</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Bugfix release (Mostly)
Special thanks to Dan Rossi for the MDB Backend work on this release.
Key changes:
- SQLlite support for files.
- MDB Backend support (experimental) use:
db_driver = MDB
as a config option.
NOTE: the generator will probably not work.
- toArray() has an extra argument (bool)hideEmpty,
which prevents it returning key/value pair when the value is empty
- DB_DataObject_Cast object was redesigned to enable better quoting of
blobs
- PostgresSQL schema for tablenames can be removed with the
generator_strip_schema = 1
- Fetch return value and object-&gt;N are now &quot;true&quot;, rather than 1
when numRows is not supported, (also document it on find())
Bugs Fixed.
* fix bug #4672 - query(COMMIT) relays return value from DB-&gt;commit()
* fix bug #4535 - fix update/select etc. for postgres with boolean values.
* fix bug #4601 - wrong method used to test if file for sqlite
* fix bug #4193 - sqlite names causing invalid .ini files
* fix bug #4518 - escape and transactions fixed for MDB backend
* fix bug #4431 - add hideEmpty to toArray() - not sure if I really
like this.. - adding args to methods, the root of all evil ;)
* fix bug #4383 - generator getListOf() call now expects pear errors
* fix bug #4235
#4203 - schema mess with postgres.
generator_strip_schema=1
will strip the schema part from the name of the table.
* fix bug #4168 - if connection test is sucessfull, dont try and
connect.. (performance improvement)
* fix bug #4040 - prevent toArray from calling getLink and getLinks
* fix bug #4019 - createTables uses sets up options for DB
compatibility mode
* fix bug #4000 - better checking for php 4.3.10
* fix bug #3944 - support for informix autoincrements
* fix bug #4182 - better string and blob support on mysql in cast
* fix bug #4135 - boolean values borked in condition building..</notes>
</release>
<release>
<version>
<release>1.7.13</release>
<api>1.7.13</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-24</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix release
#3943 - postgres booleans broke again due to last fix for mysqli.</notes>
</release>
<release>
<version>
<release>1.7.12</release>
<api>1.7.12</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-03-23</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Daily Bugfix release. ;)
#3898 - mysqli quote bug fixed. (Greg Beaver)
#------ provisional support for mysql blobs in Cast object (Antony Jankelowitz)</notes>
</release>
<release>
<version>
<release>1.7.11</release>
<api>1.7.11</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-22</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix release.
#3898 - fix count , which got broken by previous distinct argument changes
#------ support $x IS NOT NULL using $obj-&gt;value = DB_DataObject_Cast::sql(&quot;NOT NULL&quot;);</notes>
</release>
<release>
<version>
<release>1.7.10</release>
<api>1.7.10</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-16</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix release.
#3829 - joinAdd fix for database prefixing (yet again)</notes>
</release>
<release>
<version>
<release>1.7.9</release>
<api>1.7.9</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-12</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix release.
#3764 - toValue(), and hence toArray() cast booleans to true|false. (previous fix was buggy)</notes>
</release>
<release>
<version>
<release>1.7.8</release>
<api>1.7.8</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-12</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix release.
#3764 - toValue(), and hence toArray() cast booleans to true|false.
#3763 - createTables.php defines NO_OVERLOAD to prevent warnings on PHP4.3.10.
#3768 - Hopefully last fix to joinAdd() / database prefixing and quoteIdentifiers
#3761 - Fixed DB_DataObject::datetime() bad code.
#3783 - count('distinct') builds the query distinct [primary_key], should help in some situations
using joinAdd + group By etc.</notes>
</release>
<release>
<version>
<release>1.7.7</release>
<api>1.7.7</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-07</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor bug fix release - join add with table fixes broke for mysql with last release
Bug Fixes:
#---- - Joins incorrectly prefect database name for mysql/mysqli
(Thanks to Mark Mitchenall for spotting this)
#---- used wrong variable for checking prefixes.
(Stephane Gully)</notes>
</release>
<release>
<version>
<release>1.7.6</release>
<api>1.7.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-05</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Nothing like a big release to create bugs..
Note: the last release also included method creation for setters and getters,
which got missed out from the changelog.
Bug Fixes:
#3708 - Generator did not clear last files contents when generating new files.
#3706 - Joins broke on everything except mysql (database prefix now only added to mysql)</notes>
</release>
<release>
<version>
<release>1.7.5</release>
<api>1.7.5</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-03-02</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>A few releases where skipped, this should be the amalgamated upgrade!
Note: php4.3.10 will exit with an error if you dont define NO_OVERLOAD, rather
than segfaulting..
Generator is buggy with 5.0.3 - upgrade DB or PHP..
Bug Fixes:
#3584 - Cast now supports time and datetime, (theiron)
#3645 - PHP4 clone FC hack now calls $obj-&gt;__clone() in a similar way to PHP5
#2928 - lastError contains the last error when query bugs out now.
#2674 - column names null / true /false etc. now halt createtables
#2778 - more informative warning shown when postgres bug is found.
#---- - experimental multidatabase join support
#2739 - sleep is relayed into __call - bug in PHP5
#2565 - oci8 NUMBER type recoginzed
#---- - new option generate_add_validate_stubs = 1, creates validate stubs.
#---- - more comprehensive limit support (Lutz Thomas)
#---- - allow access to columns starting with _ eg. set_xxx() &amp; get_xxx()
(Sandro)
#---- - Generator write E_STRICT code for PHP5 now
#2441 - Debugging code removed.
#---- - multiple HAVING calls now supported.
#2468 - remove warning hider.
#2318 - update($do) when no changes detected returns true.
#2319 - joinAdd does not use AS when table and target have same name.
#---- - Dia diagram generation tools available in CVS (build diagrams from dataobjects)
#2267 - additional debugging information available at connect time</notes>
</release>
<release>
<version>
<release>1.7.2</release>
<api>1.7.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-08-28</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor bug fix / Minor feature addition release
Bug Fixes:
#1835 - more fixes to ensure that joinAdd works correctly.
#2106 - Update with old object having no changes does not raise an error
#---- - fixed problem of call() code producing parse error on PHP5.0.1
#2205 - fixed case sensitivity of PHP5 call()
#---- - fixed undefined index in delete after a fetch()
Features Added:
#2086 - Support for buliding dataobjects for Views (use option build_view=1)
#2240 - factory() called on a dataobject returns a new instance of that object.</notes>
</release>
<release>
<version>
<release>1.7.1</release>
<api>1.7.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-08-09</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor bug fix release
Bug Fixes:
#2088 - class_prefix may be left out.
#------ php4.2 compatibility should work as advertised in last realease
#------ Generator didnt have DB loaded due to lazy load changes.</notes>
</release>
<release>
<version>
<release>1.7.0</release>
<api>1.7.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-06-03</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Major bug fix release, Minor features added.
Bug Fixes:
#1559 - __FUNCTION__ remove, so dependancy on php 4.2 may still be valid.
#1595 - regex include/exclude working correctly (Thanks to Stephane Gully)
#1664 - configuration line links_{databasename} now available
#1726 - enable orderby and limit can be used with delete()
#1697 - prevent generator from adding an extra line created after definition.
#1704 - update only adds null when the column is not marked 'not null'
#1778 - toArray() returns a merge of defined table and actual results
#1828 - Generator will die, if tableinfo is not supported.
#1833 - links() now returns an empty array (no links) or null (no links.ini)
so it can be used generically with : $ar = (array) $do-&gt;links();
#1835 - getLinks, getLink etc. now use -&gt;links(), so you can define your
own links() to return table links, rather than use links.ini files.
#1923 - removed all @ silencers, and replace with empty/isset.
#1935 - selectAs() - removed double quoteIdentifiers
#2068 - workaround for DB bug, postgres nextval() being rawurlencoded
#1980 - logic error when using quoteIdentifiers
Changes:
* DebugLevel(1) now displays native errors from database when queries fail.
* Result Field names now stored seperately from Result Object
* free() method added, to clean up memory instantly, if you are doing alot of queries.
= Cleans Result Fields, Result Object, NumRows returned in Connection object.
* include path is used to do file hunting if factory fails to find file.
* DB is lazy loaded on connection.b</notes>
</release>
<release>
<version>
<release>1.6.1</release>
<api>1.6.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-06-03</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bug Fix
* fixed count() breaks when countWhat used.</notes>
</release>
<release>
<version>
<release>1.6.0</release>
<api>1.6.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-04-24</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Feature Release and many bug fixes..
* DB_DataObject_Error added to enable testing for dataobject errors
* Date fixes - needs latest date package.
* Generator fails with clear message if backend doesnt support tableInfo
* added cidr, inet, macaddr for postgres
* new options to filter generation of classes
generator_include_regex = /foo_.*/i
generator_exclude_regex = /tmp_.*/i
* result column list is now stored for all queries (in the result object)
so toArray() allways relates to the query.
* php version correted in package file.
* getLinks called before other database call fixed.
* Updating without changing things, no longer raises a pear error,
it just returns 0 (eg. no rows affected)
* now Depends on 1.4 DB - escapeSimple is now used
* extra option to disable assumtions to use pear db's nextID
dont_use_pear_sequences = true
* DebugLevel($val) if $val is not an integer - it is assumed to be a callback.
* fixed clearing of data results after last fetch (reduces memory consumption
when doing many queries)
* strtolower any class name tests.
* count accepts 1 or 2 arguments
$countWhat or $whereAddonly, or $countWhat and $whereAddonly
eg. $countWhat = &quot;distinct id&quot;
eg. $countWhat = true (means $whereAdd = true)
* selectAdd() returns existing value, so you can modify it.
* most debugging &amp; raiseError calls are dynamic, so you can overload them.
* numbers allowed in tablenames.
* ini filename uses database_{projectname} =&gt; {projectname}.ini so
database names are portable, and multiple projects are theoretically feasible.
* __clone is replaced with clone() for PHP5 compaitiblity.
* use PEAR::getStaticProperty(&quot;DB&quot;,&quot;options&quot;) for oracle portablity settings.
* null checked against not null spec.
And probably a few more - as it's been quite a while since the last release..</notes>
</release>
<release>
<version>
<release>1.5.3</release>
<api>1.5.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-01-29</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Bug fix release.
Changes:
- fixed toValue()
** previously did not work correclty..
** getXXX($format) correctly relays into toValue - see strftime / Data::format or sprintf
for formats, depending on column type.
Fixes
* fix bug #630 - correct handling of YEAR (it's an int)
* fix bug #630 - mysql timestamps are ingored for updated and insert (use query() if you want to change
them manually.
* fix bug #620 - limit accepts floats and doubles, as long as they are really integers..</notes>
</release>
<release>
<version>
<release>1.5.2</release>
<api>1.5.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-01-24</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Bug fix release.
Changes:
- removed automatic strtotime() in setters and setFrom
** this is closer to the previous behaviour (it caused too many problems with strange dates
** if you set a date/time column with a number, it assumes it is a unixtimestamp
-- enables you to write setters like
function setSome_Date($value) { $this-&gt;fromValue('some_date',strtotime($value)); }
Fixes
* $DB_DataObject-&gt;getDatabaseConnection() will return a pear error if dont_die is set,
so it can be used to test connections.
* note changed on databaseStructure, it can be called statically and dynamically.
* fix bug #612 databaseStructure('databasename') will output the ini file structure array , with __keys
* fix bug #611 corrected comment about NO_OVERLOAD
* fix bug #603 to prevent clearing of queries after fetch, use the option keep_query_after_fetch = 1
* fix bug #359 (again) - _link_loaded array should only contain links that where sucessfully loaded</notes>
</release>
<release>
<version>
<release>1.5.1</release>
<api>1.5.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-01-22</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Bug fix release.
Fixes
* fixed fromValue had problems with null and DataOBject_Cast objects
* NOT NULL checking enabled in fromValue (eg. setters)
* fix bug #605 - ability to specify sequence names
option sequence_{tablename} = {column} // default {tablename}_seq
option sequence_{tablename} = {column}:{sequence_name}
* Dependancy on Date added. (it is used by the setter/getters)</notes>
</release>
<release>
<version>
<release>1.5</release>
<api>1.5</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-01-20</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>New Features / Fixes
* proxy and auto schema building
- you can use dataobjects wihout running create tables.
- schema is created on the fly if no schema file exists
- using config option proxy=full, a class is generated on the fly to
represent the tables.
* toValue and fromValue added as getter and setter providers
- they include date formating tools - eg.
$do-&gt;getBirthDay('%d/%m/%Y') will work with overload and PEAR::Date
to provide formated dates. (works with date/time and datetime)
- set*() will also call strtotime and PEAR::Date to try and read dates.\
setFrom will relay into fromValue() - hence auto fixing date entries
* make native key recognision a little better - changes ini file
format (key=N|K) - native or key. - BC protected... - ignores it
when it finds a number.. (Fixes bug #532)
* allow multiple updates on the same object - without adding lots
of id=.... on the end..
* transactions support works transparently by sending
$do-&gt;query('BEGIN'), $do-&gt;query('COMMIT'),$do-&gt;query('ROLLBACK')
will automatically relay into the DB methods.
* re-add support for sequence_{tablename} - prefered method is still
overriding sequenceKey, and returning correct values.
Bug Fixes
* fix bug #595 - replace non letters in class names with underscore..
* fix bug #532 - better recoginsion of sequence keys
* fix bug #528/#476 - typo fix (E_NOTICE error on $valu)
* fix bug #473 - query can return a DB_Error
* fix bug #501 - autoload/factory now uses full path (not require path)
* fix bug #507 - sequences broken</notes>
</release>
<release>
<version>
<release>1.4</release>
<api>1.4</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-12-20</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes/>
</release>
<release>
<version>
<release>1.3</release>
<api>1.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-11-14</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>New Features
- Inserts and updates do not use keys in the data creation part of the query
(Markus Wolff)
- MsSQL native get_last_insert ID using SELECT @@IDENTITY
** you may want to consider using this with transactions eg.
$dataobject-&gt;query('BEGIN') and $dataobject-&gt;query('COMMIT')
to ensure thread safety. (Markus Wolff)
- DB_DataObject_Cast - a experimental generic casting feature for assigning variables
* Common usages:
// blobs
$dataObject-&gt;someblobfield = DB_DataObject_Cast::blob(file_get_contents('xxx.jpg'));
$dataObject-&gt;someblobfield = DB_DataObject_Cast::string('xxxxx');
// dates?
$dataObject-&gt;at_date = DB_DataObject_Cast::date('12/12/2000'); //Human
$dataObject-&gt;at_date = DB_DataObject_Cast::date('2000-12-12'); //ISO
$dataObject-&gt;at_date = DB_DataObject_Cast::date(2000,12,12); //YYYY,dd,mm
$d2 = DB_DataObject_Cast::date(); // today!
// some addition
$dataObject-&gt;expires = DB_DataObject_Cast::date($d1-&gt;year, $d1-&gt;month+30, $d1-&gt;day+30);
// raw sql????
$dataObject-&gt;maxids = DB_DataObject_Cast::sql('max(id) &gt; 12');
$dataObject-&gt;emptyfield = DB_DataObject_Cast::sql('NULL');
You can extend this object to provide your own datatypes..
- PHP5 Compatibility
Return values should work with PHP5beta2
Overload (__call) should work with PHP5beta2
- table() and keys() Allow setting of data with a value
(so you can use dataobjects without extended instances.)
- factory/ getLinks and autoloading
Will use the full path location in config to check if the file exists,
after that it is included without warnings turned off..
(autoloading check to see if class exists first - should be faster)
Fixes:
- Validate is an optional dependency (Arnaud Limbourg)
- Bug #228, BOOL type on postgresql correctly quoted.
- Bug #133, No error is raised when calling fetch with no data returned,
just produces a debug warning now
- Bug #172,Turning of Overload
If you define DB_DATAOBJECT_NO_OVERLOAD to any value, then dataobjects will not be overloaded,
This is usefull when working with ZendOptimizer, that may segfault with certain optimization levels</notes>
</release>
<release>
<version>
<release>1.2</release>
<api>1.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-08-07</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>New Features:
- A Number of the private methods have been made Public,
changes:
- _get_table() = table()
- _get_keys() = keys()
additions
- tableName() = returns or assign the table name
- database() = returns or assign the database name
changes by Markus Wolff
POSSIBLE BC IMPLICATIONS: If you define _get_table or _get_keys manually (rather than using the ini file)
you should rename your methods table() and keys()
Fixes:
- Generator is now more tollerant of editors that alter the spaces before
the autocode markers ### (Andreas Ljunggren)</notes>
</release>
<release>
<version>
<release>1.1</release>
<api>1.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-08-07</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Bug Fixes
- limit argument testing now accepts &quot;10&quot; (a string with an integer
in it, as a valid argument) (Demian Turner)
New Features
- JoinAdd has additional Argument $joinCol, so you can specify
multiple targets links of the same table, eg. user-&gt;friend,
user-&gt;parent both connect to the user table.. (Andy Crain)</notes>
</release>
<release>
<version>
<release>1.0.2</release>
<api>1.0.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-07-31</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix Release
- Fix static Get call, case sensitivity properly.</notes>
</release>
<release>
<version>
<release>1.0.1</release>
<api>1.0.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-07-18</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Minor Bugfix Release
- Fix Select defaults back to * after an fetch
- Fix Update with NULL values</notes>
</release>
<release>
<version>
<release>1.0</release>
<api>1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-07-16</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Gold 1.0 Release.. - final stable release in this series. Future versions
(eg. 1.1.*(dev)-&gt;1.2.*(release)) series will be generally API compatible,
however is likely to use MDB rather than DB.
- fix bug #23983 - argument checking on whereAdd, orderBy, limit and a few others
(Mike Carter)
- fix bug with cache clearing not working with staticGet and update/insert
- null comparison for $object-&gt;var = 'null' will generate IS NULL query
- null insert/update works when using 'null' as a value.
- getLinks returns true on success
- getLinks now has a formatter eg. '_%s' is default to allow user to define the
format of variables to assign child objects to.
- generator uses UNIQUE only if no primary/autoincrement type field is found.
- added support for $object-&gt;having('sum(value) &gt; 10');
- fetch will remove some query lines (so if you want to see how the query was built
you will have to print_r() the object after find(), and before fetch(), or just use
debugLevel(1)
- overload calls from setFrom and toArray do method checks, as overload is still proving to
be a little unstable especially with Zend Encoder. (Note: if DataObjects causes crashes
, remove the overload code at the bottom of DataObjects.php)</notes>
</release>
<release>
<version>
<release>0.19</release>
<api>0.19</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-05-22</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- fix bug #23712 - deleting (and probably updating as well) an object while
being fetched. (Michael McCarthy for spotting this)
- fix generator overwriting code when file was edited in a Windows editor
(Robert Janeczek)
- validation will not produce errors on empty numeric data by default.
- overload extension enabled to relay setFrom and toArray calls to get*, set*
methods, which are predefined as
getXXX = returns $object-&gt;XXX
setXXX($V) = returns true (or an error string if you create your own)
(only affects php-4.3.2RC2 or later..)
- selectAs($dataobject,'prefix_%s') to help control the way join queries return
their data * doing selectAs() - clears the select and sets it to table.id as id ... etc.
- joinAdd has 2 extra optional arguments
$dataObject-&gt;joinAdd($otherDataObject, $joinType, $joinAs)
existing behaviour (INNER Joins) is default (eg. no value)
$joinType can be:
INNER,LEFT,RIGHT = eg. INNER JOIN ... etc.
'' = just added with a , and the link conditions are added with a WHERE statement.
$joinAs can be used to name the table differently in the join eg.
SELECT .. FROM person INNER JOIN address as homeaddress ......
- setFrom has an extra optional parameter for formating: eg.
$object-&gt;setFrom($_POST,'prefix_%s') would map prefix_name to $object-&gt;name
the default is '%s' which is the same as the previous behaviour
- added option dont_die (default no) to ini file
default (no) means that DataObjects will emit a PEAR_ERROR_DIE on configuration and
programming errors
true or 1 means that you can write a PEAR::error handler to catch the errors and
display a nice it's not working message</notes>
</release>
<release>
<version>
<release>0.18</release>
<api>0.18</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-05-17</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- add table prefix to autobuilt queries (assist in ambigous querys for joins)
(Daniel Von Fange)
- change update and delete to return the number of rows affected or false on failure
- various code tidy ups - standards etc. (Arnaud Limbourg)
- fix generator for postgres and mdb - use unique keys and look for 'nextval' as keys.
- fix no key insert bug (G Moxley Kempster)
- fix empty table bug in generator (Robert Janeczek)
- staticAutoloadTable(), now handles parse errors in included files alot cleaner
- added dependancies on PHP4.3, DB 1.3 and Validate (although Validate is optional)
- added table prefix to count query (Richard Wallace)</notes>
</release>
<release>
<version>
<release>0.17</release>
<api>0.17</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-03-12</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Usual post feature bug fix release
- fix loading of links.ini for joinAdd, getLinks etc. (Geoff Hopson)</notes>
</release>
<release>
<version>
<release>0.16</release>
<api>0.16</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-03-06</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- replaced config storage - should improve performance
- removed production option (not required due to improved config storage)
- bugfix : added checks for is_array on ignore_sequence_keys (Hermen Heinen)
- add toArray($format) which supports sprintf to enable easy integration with
Quickforms etc. (Demian Turner)
- add optional dataobject as variable to update(), so you can update will
only create an update based on what has changed. (Geoff Hopson)
- add join condition to count() (Daniel Von Fange)
- modify limit() to work with postgresql and make it emit a fatal error if you
try this on databases that do not directly support limit queries. (Geoff Hopson)
* I'm open on better ideas for this - probably wrapping the find() select call</notes>
</release>
<release>
<version>
<release>0.15</release>
<api>0.15</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-02-13</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- modified find(true), so that it calls fetch rather than fetchrow
so that overriding fetch will affect get() calls.
(probably depreciates fetchrow now .. shout if anyone is using it)
- added escape method as a quasi quote wrapper into pear::DB - useful for
building your own queries - eg. like requests.. (does not add quotes)
- fixed bug with delete not using primary key if it was set. (Ian Eure)</notes>
</release>
<release>
<version>
<release>0.14</release>
<api>0.14</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-02-06</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- added get affected rows to update/insert/delete
they will return false if no data is affected and set
the Objects lastError value.
Note: databases that do not support affectedRows(), will always
return false.</notes>
</release>
<release>
<version>
<release>0.13</release>
<api>0.13</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-01-23</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- bug fix release - debug_ignore_updates worked in reverse.. (Alexander Mazurov)</notes>
</release>
<release>
<version>
<release>0.12</release>
<api>0.12</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-01-22</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Usual post release bug fix.
- fixes *.links.ini incorrectly using *.links (Damian Turner)
- Adds the ability to get PEAR Connection and result objects
getDatabaseConnection() and getDatabaseResult() (jason rust)</notes>
</release>
<release>
<version>
<release>0.11</release>
<api>0.11</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-01-21</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- changed connecition and result caching to use global private variable, rather
than getStaticProperty
- results objects are not stored on insert/update/delete (speed increase
on large inserts can be as much as 10x faster)
- bug fix - Checks that primary keys are integers (Anthony Juou)
- typo on No data returned warning
- unit tests in CVS
- new configuration option for whether to use insert id's and sequences.
- Generator no creates boolean bit (mitchell perilstein)</notes>
</release>
<release>
<version>
<release>0.10</release>
<api>0.10</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2002-12-09</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- bug fix - Generator incorrectly set _database, causing generation of database.ini files to fail
- change addslashes to PEAR::DB::quote()
- generator now only replaces DB_DataObjects with extends variable if set,
you can use generator_rewrite_class to set what is a valid replacement.</notes>
</release>
<release>
<version>
<release>0.9</release>
<api>0.9</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2002-12-06</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- bug fix release - dsn was not set correctly</notes>
</release>
<release>
<version>
<release>0.8</release>
<api>0.8</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2002-09-21</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- changed to stable status as it appears to be pretty stable now.
- update and insert now return FALSE on error conditions (Peter Gebauer)
which can be checked using === FALSE, and the error obtained using $object-&gt;_lastError
- delete will only use primary keys if they are set, otherwise it will use all object
variables to build the condition. (Daniel Ferreira)
- Added derivedHookFunctions(), and derivedHookVar() to enable extensions to generator to
make user defined methods. (Michael Lund Rasmussen)
- support for INT4, BPCHAR, TIMESTAMPTZ and postres Primary keys (Xavier)
- better PEAR CS complience (tabs and TRUE -&gt; true), removed short open tags in generator (Thomas Volkmar Worm)
- experimental addJoin method (Stijn de Reede)
- Allow active options array (eg. dynamic changing of database config) (Sergey Lipnevich)</notes>
</release>
<release>
<version>
<release>0.6</release>
<api>0.6</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-09-10</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- bug fix release on insert (broke due to compatibility fixes)</notes>
</release>
<release>
<version>
<release>0.5</release>
<api>0.5</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-09-07</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- fixed database.links.ini file loading in wrong location (Jens Fischer)
- fixed type on extends (Jens Fischer)
- added __clone() support to pre- php5 classes
- added multiple linked table support</notes>
</release>
<release>
<version>
<release>0.4</release>
<api>0.4</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-08-21</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Bug fix release - createTables used wrong argv</notes>
</release>
<release>
<version>
<release>0.3</release>
<api>0.3</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-08-16</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Fixed Globals requirement in createTables,</notes>
</release>
<release>
<version>
<release>0.2</release>
<api>0.2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-07-12</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Removed list method, First upload as pear package. - Documentation now in PEAR Manual</notes>
</release>
<release>
<version>
<release>0.1</release>
<api>0.1</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2002-06-25</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>PEARified</notes>
</release>
</changelog>
</phprelease>
</package>
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.5.0a1" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>Date</name>
<channel>pear.php.net</channel>
<summary>Generic date/time handling class for PEAR</summary>
<description>Generic classes for representation and manipulation of
dates, times and time zones without the need of timestamps,
which is a huge limitation for php programs. Includes time zone data,
time zone conversions and many date/time conversions.
It does not rely on 32-bit system date stamps, so
you can display calendars and compare dates that date
pre 1970 and post 2038. This package also provides a class
to convert date strings between Gregorian and Human calendar formats.</description>
<lead>
<name>Baba Buehler</name>
<user>baba</user>
<email>baba@babaz.com</email>
<active>no</active>
</lead>
<lead>
<name>Pierre-Alain Joye</name>
<user>pajoye</user>
<email>pajoye@php.net</email>
<active>no</active>
</lead>
<lead>
<name>Monte Ohrt</name>
<user>mohrt</user>
<email>mohrt@php.net</email>
<active>no</active>
</lead>
<lead>
<name>Firman Wandayandi</name>
<user>firman</user>
<email>firman@php.net</email>
<active>yes</active>
</lead>
<developer>
<name>Alan Knowles</name>
<user>alan_k</user>
<email>alan@akbkhome.com</email>
<active>yes</active>
</developer>
<helper>
<name>Leonardo Dutra</name>
<user>scar</user>
<email>scar@php.net</email>
<active>yes</active>
</helper>
<date>2010-05-04</date>
<time>08:41:39</time>
<version>
<release>1.4.7</release>
<api>1.4</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>* Fix bug #8912: putenv() causes crashes in DateTimeZone::inDaylightTime() under windows
* Fix bug #9409: Date_Calc, fatal error using a non-array variable as an array
* Fix bug #9414: Date::addSeconds() fails to work properly with negative numbers
* Many cosmetics update
* Moved bug test files to tests/bugs/
* Removed unused files</notes>
<contents>
<dir name="/">
<file baseinstalldir="/" md5sum="a135be6cd4aeb32476423fa9dc95161a" name="tests/test_date_methods_span.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="3b1c6a3a35becde95e4a927fb38763ab" name="tests/test_calc.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="38622d9cb41342d3a177c354cca38599" name="tests/testunit_date_span.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="36b8cac1feadd070a07f9f9f9575b5d8" name="tests/testunit_date.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="42ace22a7887e03ff8b123a312108236" name="tests/testunit.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="5eabf24b94fd57853db681488367aead" name="tests/calc.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="15dff9b119740d565e01523a275d1849" name="tests/bugs/bug-9414.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="22f4db22add37ceea0154b2117a11f45" name="tests/bugs/bug-9213.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="6e5dcc10156aec6362d3153acc0dc7a4" name="tests/bugs/bug-8912.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="143559162ff847244ed67c6cb18f82d6" name="tests/bugs/bug-967.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="7cfadcdc81dc8ecbc39e77cb0606dae6" name="tests/bugs/bug-727-4.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="9a3303542fdf2ae5257e1e3fd0953660" name="tests/bugs/bug-727-3.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="cbb62477c108692400aafe6410015be1" name="tests/bugs/bug-727-2.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="e86d8aa9ce00382fa2b0e05c45d1e9ea" name="tests/bugs/bug-727-1.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="d9dc6385c9bc6a55b48f870f5cfea3e4" name="tests/bugs/bug-674.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="e6424a28cb7c83ddee0dea62c6b9a9aa" name="docs/TODO" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="792b333b7e7b6a591da410c2f7ca4897" name="docs/LICENSE" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="2514e3fa6ec6a6513791f4553a734eb2" name="Date/TimeZone.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="9130fcdb3b4e5a69a1bafdbdc96176ca" name="Date/Span.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="d51dd0ba154020045e37a26ff58b489b" name="Date/Human.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="9a89cb40a6498eaa592fe9b0e3c2c9c3" name="Date/Calc.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="383b9c4665b91a8d351fec78fb4ac0bc" name="Date.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>4.3</min>
</php>
<pearinstaller>
<min>1.4.0</min>
</pearinstaller>
</required>
</dependencies>
<phprelease>
<changelog>
<release>
<version>
<release>1.4.7</release>
<api>1.4</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-11-22</date>
<license uri="http://www.opensource.org/licenses/bsd-license.php">BSD License</license>
<notes>* Fix bug #8912: putenv() causes crashes in DateTimeZone::inDaylightTime() under windows
* Fix bug #9409: Date_Calc, fatal error using a non-array variable as an array
* Fix bug #9414: Date::addSeconds() fails to work properly with negative numbers
* Many cosmetics update
* Moved bug test files to tests/bugs/
* Removed unused files</notes>
</release>
<release>
<date>2005-11-15</date>
<version>
<release>1.4.6</release>
<api>1.4.6</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<notes>- Change license from PHP License to new BSD License
- Bug #5715 fypo, missing s in $GLOBALS</notes>
</release>
<release>
<version>
<release>1.4.5</release>
<api>1.4.5</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-10-12</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>Same code base as 1.4.4-beta
See 1.4.4 changelog for details</notes>
</release>
<release>
<version>
<release>1.4.4</release>
<api>1.4.4</api>
</version>
<stability>
<release>beta</release>
<api>stable</api>
</stability>
<date>2004-05-16</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Establish the DATE_CALC_FORMAT constant
and use it as the default value for each
of the Date_Calc class' method's $format
parameter.
- Add beginOfMonthBySpan() and
endOfMonthBySpan() methods to Date_Calc.
- Use integers for the parameters in
Date_Calc instead of strings.
- Tweak Date_Calc::NWeekdayOfMonth() so it
can calculate the 'last' given weekday of
a month.
- Fix Bug 1640. Make sure all longname's are also
keys in $GLOBALS['_DATE_TIMEZONE_DATA']. Makes
Date_TimeZone work under more operating systems.
- #5420, missing CEST
- #3846, getYear, getMonth returns integer
- #2652, add %h and %i support (rob at wildlime dot com
- #5494, force dot as decimal separator
- #3022, allow to specify the weekday abbrevation length used in ::format()
- #4878, %s padding fix when &lt; 10 ( aashley at optimiser dot com)
- #3059, use GLOBALS in date_span</notes>
</release>
<release>
<version>
<release>1.4.3</release>
<api>1.4.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-05-16</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Fix #1250, wrong name for Bangladesh TZ
- Fix #1390, add XML Schema datetime support
(aashley at optimiser dot com)
See http://www.w3.org/TR/2004/PER-xmlschema-2-20040318/#dateTime</notes>
</release>
<release>
<version>
<release>1.4.3</release>
<api>1.4.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-05-16</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Fix #1250, wrong name for Bangladesh TZ
- Fix #1390, add XML Schema datetime support
(aashley at optimiser dot com)
See http://www.w3.org/TR/2004/PER-xmlschema-2-20040318/#dateTime</notes>
</release>
<release>
<version>
<release>1.4.2</release>
<api>1.4.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2004-03-14</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Fix #976 TimeZone default bad global usage
only _DATE_TIMEZONE_DEFAULT is used now
- Fix #683, add optional length argumet to getDayName()
- Fix PHP5 problems with get_class functions</notes>
</release>
<release>
<version>
<release>1.4.1</release>
<api>1.4.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2005-10-02</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- Fix #674 endOfWeek() beginOfWeek()
- Fix #727, weeksInMonth (wrong result with some dates)
- Fix #674 (and old system #22549), check arguments in Date_Span</notes>
</release>
<release>
<version>
<release>1.4</release>
<api>1.4</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2003-12-21</date>
<license uri="http://www.php.net/license">PHP License</license>
<notes>- improvements in input date parsing
- add Date methods addSpan() and subtractSpan()
- added two more ISO8601 date/time output formats DATE_FORMAT_ISO_BASIC and DATE_FORMAT_ISO_EXTENDED
- improve Date_Calc isLeapYear() and daysInMonth() for year 1582
- add gregorianToISO() method to Date_Calc
- add dateSeason() method to Date_Calc
- add Date_Span class
- bugfix in Date_Calc when century ends in 00, only define DATE_CALC_BEGIN_WEEKDAY if not already defined
- bugfix in beginOfNextWeek(), beginOfPreviousWeek() (thx to andreas dot kossmeier at bergfex dot at)
- bugfix in nextDayOfWeek and prevDayOfWeek (thx to koan at gmx dot at)
- bugfix for bug 62: getDate(DATE_FORMAT_UNIXTIME) off because of DST
- bugfix for bug 65: format(e) returns zero-padded day
- bugfix for bug 195: Suppress a notice in setDate()
- bugfix for bug 271: Date_Calc weeksInMonth() returns wrong number
- fix abstraction bug, Date constructor accepts now object that extends Date
- add tests to release package
- Fix notices and mins calc in to toUTCbyOffset()</notes>
</release>
</changelog>
</phprelease>
</package>
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.7.2" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>MDB2</name>
<channel>pear.php.net</channel>
<extends>MDB</extends>
<summary>database abstraction layer</summary>
<description>PEAR MDB2 is a merge of the PEAR DB and Metabase php database abstraction layers.
It provides a common API for all supported RDBMS. The main difference to most
other DB abstraction packages is that MDB2 goes much further to ensure
portability. MDB2 provides most of its many features optionally that
can be used to construct portable SQL statements:
* Object-Oriented API
* A DSN (data source name) or array format for specifying database servers
* Datatype abstraction and on demand datatype conversion
* Various optional fetch modes to fix portability issues
* Portable error codes
* Sequential and non sequential row fetching as well as bulk fetching
* Ability to make buffered and unbuffered queries
* Ordered array and associative array for the fetched rows
* Prepare/execute (bind) named and unnamed placeholder emulation
* Sequence/autoincrement emulation
* Replace emulation
* Limited sub select emulation
* Row limit emulation
* Transactions/savepoint support
* Large Object support
* Index/Unique Key/Primary Key support
* Pattern matching abstraction
* Module framework to load advanced functionality on demand
* Ability to read the information schema
* RDBMS management methods (creating, dropping, altering)
* Reverse engineering schemas from an existing database
* SQL function call abstraction
* Full integration into the PEAR Framework
* PHPDoc API documentation</description>
<lead>
<name>Lukas Kahwe Smith</name>
<user>lsmith</user>
<email>smith@pooteeweet.org</email>
<active>no</active>
</lead>
<lead>
<name>Lorenzo Alberton</name>
<user>quipo</user>
<email>l.alberton@quipo.it</email>
<active>yes</active>
</lead>
<contributor>
<name>Paul Cooper</name>
<user>pgc</user>
<email>pgc@ucecom.com</email>
<active>no</active>
</contributor>
<helper>
<name>Daniel Convissor</name>
<user>danielc</user>
<email>danielc@php.net</email>
<active>yes</active>
</helper>
<helper>
<name>David Coallier</name>
<user>davidc</user>
<email>david@jaws.com.mx</email>
<active>yes</active>
</helper>
<helper>
<name>Ali Fazelzadeh</name>
<user>afz</user>
<email>afz@dev-code.com</email>
<active>yes</active>
</helper>
<date>2010-05-04</date>
<time>08:57:35</time>
<version>
<release>2.5.0b2</release>
<api>2.5.0b2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<license>BSD License</license>
<notes>- fixed bug #12117: disconnect() does not work as documented
- fixed bug #12912: replace() documentation
- fixed bug #13811: _skipDelimitedStrings() fails on empty strings
- fixed bug #13898: more tolerant check for 'new_link' DSN option
- request #13929: added 'default_fk_action_ondelete' and 'default_fk_action_onupdate'
options for default FOREIGN KEY constraints actions
- fixed bug #14124: _skipDelimitedStrings() and prepare() fail with sql comments
inside quoted strings
- fixed bug #14179: declaration of MDB2_Driver_Common::raiseError() must be
compatible with that of PEAR::raiseError()
- fixed doc bug #14290: connect should mention the type of object returned
- fixed bug #14831: $ignores in _skipDelimitedStrings() [patch by Aleksander Machniak]
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)</notes>
<contents>
<dir name="/">
<file baseinstalldir="/" md5sum="c30bfb476b678d53c7f5e158bde7d9a9" name="tests/test_setup.php.dist" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="841447ae8672a6779166791d0bf6ec03" name="tests/testUtils.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="3c4d2c9d89398c5692d36299d98f9c6e" name="tests/tests.css" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="dc05c6cc4540981d350ccac2005c2578" name="tests/testchoose.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="a2c50ccea24f7bdd5439b366608d59d5" name="tests/test.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="ca453d042076964cbd3350902ad25fa6" name="tests/README" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="b51595b4713c262bb9edc9e96da599b6" name="tests/MDB2_usage_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="2925fd7431313d5df54e068544f8982f" name="tests/MDB2_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="5830541f8688756ad7ec430957fed9ad" name="tests/MDB2_reverse_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="54882586bf87e9f3b5d5ab9a20e3e5f7" name="tests/MDB2_nonstandard_sqlite.php" role="test"/>
<file baseinstalldir="/" md5sum="3e790ed8bf0b3b91ec518cdab9eba271" name="tests/MDB2_nonstandard_pgsql.php" role="test"/>
<file baseinstalldir="/" md5sum="d8c9287b3614da53d818ef86bfc9ef86" name="tests/MDB2_nonstandard_oci8.php" role="test"/>
<file baseinstalldir="/" md5sum="14f12bd33f7212d51b400e0a3ea9dff9" name="tests/MDB2_nonstandard_mysqli.php" role="test"/>
<file baseinstalldir="/" md5sum="1766c43f50ce08418b524a6047462e4d" name="tests/MDB2_nonstandard_mysql.php" role="test"/>
<file baseinstalldir="/" md5sum="dee3b6f3069fe286c304ca32b77dbe99" name="tests/MDB2_nonstandard_mssql.php" role="test"/>
<file baseinstalldir="/" md5sum="32504b5dd5ff479da628abd6f96753c3" name="tests/MDB2_nonstandard_ibase.php" role="test"/>
<file baseinstalldir="/" md5sum="92fcbe9e6c2efc8290437d3c87507583" name="tests/MDB2_nonstandard.php" role="test"/>
<file baseinstalldir="/" md5sum="22be0efc5b2b81bd6cd6ebe31747445e" name="tests/MDB2_native_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="11d77a1de12eab42ebf776669ed0293b" name="tests/MDB2_manager_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="a6e35fa7d253e5d9426fdefc0e9f2cb6" name="tests/MDB2_internals_testcase.php" role="test"/>
<file baseinstalldir="/" md5sum="31a90d80a1a2da0dcdb57cd412e005e1" name="tests/MDB2_function_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="52612ab88c430f08e108d146b46a57d2" name="tests/MDB2_extended_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="6180571aff0f56a569f42c100aa8ffde" name="tests/MDB2_datatype_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="f8534befe37efc7f35beb0897b75f951" name="tests/MDB2_Connect_Test.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="9ddc66748dd375105b4ffda677f57e41" name="tests/MDB2_bugs_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="3eb7f35634d7df3de5eb120da63651c7" name="tests/MDB2_api_testcase.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="ff346ecb984d644ec23584ddb02527b5" name="tests/import.schema.php" role="test"/>
<file baseinstalldir="/" md5sum="d46a8f267dbd54f0c7ff55e479d33e7e" name="tests/HTML_TestListener.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="e1c8488c950b5c55440cb06344b989f1" name="tests/driver_test.schema.xml" role="test"/>
<file baseinstalldir="/" md5sum="2a2c534ab4afb0c05ca9d7ca47815bf5" name="tests/Console_TestListener.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="c90cdd55233d9ef470150c06a946d213" name="tests/config.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="d67ccf96fabd2e95fa57a7ea76549349" name="tests/clitest.php" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="01d41e566bdb62c7bcb432c8039dda9a" name="tests/basic.phpt" role="test">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="bd83458d9b7a044cb44956244a584849" name="MDB2/LOB.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="023c4bda6db2d8f277d8d3c76dc8f850" name="MDB2/Iterator.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="609260a4c185d579e05755814d092059" name="MDB2/Extended.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="78a2568b3a7d3aa19ee924802a2decc7" name="MDB2/Driver/Reverse/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="b39a72d463db838a5635954e4d6517c2" name="MDB2/Driver/Native/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="6ec44c256b313bffb6848c46cb448a1b" name="MDB2/Driver/Manager/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="20f28774a2ce11a63ed63e9259089f00" name="MDB2/Driver/Function/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="df546ebe47bac7f9bffc0507bd4b9fb8" name="MDB2/Driver/Datatype/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="af81dd360b2d2d09f8c978214b06a553" name="MDB2/Date.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="bb931c6bfff1e98f6dc045c6b82310cb" name="MDB2.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="a5019765abfd14334f25231c61c568ef" name="LICENSE" role="data"/>
<file baseinstalldir="/" md5sum="ec0c4383ddfd3af69d577344d0d5b4dd" name="docs/TODO" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="f9858c9327499e60db66621a817c66a4" name="docs/STATUS" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="c7b68ea23aa2ae6d91913703a2246f15" name="docs/README" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="a70b17bcd8e56911f74a4dff61a3ff8d" name="docs/MAINTAINERS" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="74b2bb45de61eccbffed7d75d5268af9" name="docs/examples/metapear_test_db.schema" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="dd25c9a1d24d945ef0c3cb2fc889a070" name="docs/examples/example_php5.php" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="b5cd8d01a36258caa0c4eb7e3478c219" name="docs/examples/example.php" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="cc1befe78146094be02f89bbb201b4ab" name="docs/datatypes.html" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="a253b37e185622112acfef6c94b79aef" name="docs/CONTRIBUTORS" role="doc">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>4.3.2</min>
</php>
<pearinstaller>
<min>1.4.0b1</min>
</pearinstaller>
<package>
<name>PEAR</name>
<channel>pear.php.net</channel>
<min>1.3.6</min>
</package>
</required>
<group hint="Frontbase SQL driver for MDB2" name="fbsql">
<subpackage>
<name>MDB2_Driver_fbsql</name>
<channel>pear.php.net</channel>
<min>0.3.0</min>
</subpackage>
</group>
<group hint="Interbase/Firebird driver for MDB2" name="ibase">
<subpackage>
<name>MDB2_Driver_ibase</name>
<channel>pear.php.net</channel>
<min>1.5.0b2</min>
</subpackage>
</group>
<group hint="MS SQL Server driver for MDB2" name="mssql">
<subpackage>
<name>MDB2_Driver_mssql</name>
<channel>pear.php.net</channel>
<min>1.3.0b2</min>
</subpackage>
</group>
<group hint="MySQL driver for MDB2" name="mysql">
<subpackage>
<name>MDB2_Driver_mysql</name>
<channel>pear.php.net</channel>
<min>1.5.0b2</min>
</subpackage>
</group>
<group hint="MySQLi driver for MDB2" name="mysqli">
<subpackage>
<name>MDB2_Driver_mysqli</name>
<channel>pear.php.net</channel>
<min>1.5.0b2</min>
</subpackage>
</group>
<group hint="Oracle driver for MDB2" name="oci8">
<subpackage>
<name>MDB2_Driver_oci8</name>
<channel>pear.php.net</channel>
<min>1.5.0b2</min>
</subpackage>
</group>
<group hint="PostgreSQL driver for MDB2" name="pgsql">
<subpackage>
<name>MDB2_Driver_pgsql</name>
<channel>pear.php.net</channel>
<min>1.5.0b2</min>
</subpackage>
</group>
<group hint="Querysim driver for MDB2" name="querysim">
<subpackage>
<name>MDB2_Driver_querysim</name>
<channel>pear.php.net</channel>
<min>0.6.0</min>
</subpackage>
</group>
<group hint="SQLite2 driver for MDB2" name="sqlite">
<subpackage>
<name>MDB2_Driver_sqlite</name>
<channel>pear.php.net</channel>
<min>1.5.0b2</min>
</subpackage>
</group>
</dependencies>
<phprelease>
<changelog>
<release>
<version>
<release>2.5.0b2</release>
<api>2.5.0b2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2009-01-14</date>
<license>BSD License</license>
<notes>- fixed bug #12117: disconnect() does not work as documented
- fixed bug #12912: replace() documentation
- fixed bug #13811: _skipDelimitedStrings() fails on empty strings
- fixed bug #13898: more tolerant check for 'new_link' DSN option
- request #13929: added 'default_fk_action_ondelete' and 'default_fk_action_onupdate'
options for default FOREIGN KEY constraints actions
- fixed bug #14124: _skipDelimitedStrings() and prepare() fail with sql comments
inside quoted strings
- fixed bug #14179: declaration of MDB2_Driver_Common::raiseError() must be
compatible with that of PEAR::raiseError()
- fixed doc bug #14290: connect should mention the type of object returned
- fixed bug #14831: $ignores in _skipDelimitedStrings() [patch by Aleksander Machniak]
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)</notes>
</release>
<release>
<version>
<release>2.5.0b1</release>
<api>2.5.0b1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2008-03-15</date>
<license>BSD License</license>
<notes>- request #12731: added truncateTable() in the Manager module
- request #12732: added vacuum() in the Manager module for OPTIMIZE/VACUUM TABLE abstraction
- request #12800: added alterDatabase() in the Manager module [afz]
- fixed bug #12924: correctly handle internal expected errors even with custom error handling
- fixed bug #12991: new error code in errorInfo() [afz]
- added databaseExists() method [afz]
- request #13106: added unixtimestamp() in the Function module
- added max_identifiers_length option
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)</notes>
</release>
<release>
<version>
<release>2.5.0a2</release>
<api>2.5.0a2</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2007-12-06</date>
<license>BSD License</license>
<notes>- fixed bug #12358: E_STRICT changes in latest alpha broke PHP4 compatibility
- fixed bug #12351: wrong case for function PEAR::isError() in the Reverse module
[was: IsError()]
- fixed bug #12530: MDB2_Extended::autoPrepare() gives error if $types is null
- request #12012: added charset/collation support in createDatabase() for the
drivers that support this feature
- added bindname_format option (this is the regexp used to recognize named
placeholders in prepared statements)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- handle LOBs in buffered result sets (Request #8793)</notes>
</release>
<release>
<version>
<release>2.5.0a1</release>
<api>2.5.0a1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2007-10-28</date>
<license>BSD License</license>
<notes>- fixed bug #10024: Security fix for LOBs. Added an option to turn lob_allow_url_include off by default
- fixed bug #11179: prepared statements with named placeholders fail if extra values are provided
- request #11297: added support for &quot;schema.table&quot; (or &quot;owner.table&quot;) notation in the Reverse module
- initial support for FOREIGN KEY and CHECK constraints in the Reverse and Manager modules
- fixed bug #11428: propagate quote() errors with invalid data types
- added new test cases in the test suite
- added LENGTH() function in the Function module
- fixed bug #11612: raiseError() must be compatible with PEAR::raiseError() [PHP6]
- fixed bug #11790: avoid array_diff() because it has a memory leak in PHP 5.1.x
- fixed bug #11906: quoteIdentifier fails for names with dots
- fixed bug #11975: Extended::autoExecute() does not work with Oracle when using LOBs
(patch by Pieter Meulen, van der)
- fixed some E_STRICT errors with PHP5
- fixed bug #12083: createTable() in the Manager module now returns MDB2_OK on success,
as documented
- fixed bug #12246: wrong check in MDB2::isStatement() (thanks to zaa@zaa.pp.ru)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), etc.)
- add support for database/table/row LOCKs
- add support for CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)</notes>
</release>
<release>
<version>
<release>2.4.1</release>
<api>2.4.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2007-05-03</date>
<license>BSD License</license>
<notes>- fixed bug #10407: propagate errors in MDB2_Statement_Common::execute()
- fixed bug #10452: error in getDeclaration() with custom datatype_map and no
datatype_map_callback function
- fixed bug #10521: quote($val,'decimal') and quote($val,'float') pass unsafe characters
- return length as &quot;precision,scale&quot; for NUMERIC and DECIMAL fields in mapNativeDatatype()
- fixed bug #10537: safer check for valid MDB2 connection in singleton() [fornax]
- fixed bug #10598: MDB2::singleton() not working in some rare conditions [fornax]
- in getTableIndexDefinition() and getTableConstraintDefinition() in the Reverse
module, also return the field position in the index/constraint
- exec() now returns a reference instead of a copy to prevent memory leaks
- request #10787: MDB2_Driver_Common::$phptype and $dbsyntax properties are now public
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)</notes>
</release>
<release>
<version>
<release>2.4.0</release>
<api>2.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2007-03-13</date>
<license>BSD License</license>
<notes>- propagate errors in getTableFieldDefinition() in the Reverse module
- internally use MDB2::classExists() wrapper instead of directly calling class_exists()
- fixed bug #9502: query result misbehaves when the number of returned columns
is greater than the number of passed types
- fixed bug #9748: Table name is not quoted in Extended.php buildManipSQL()
- fixed bug #9800: when the php extension for the driver fails to load, the
error is not propagated correctly and the script dies
- propagate errors in the Datatype module
- implemented guid() in the Function module [globally unique identifier]
(thanks to mario dot adam at schaeffler dot com)
- fixed bug #4854: Oracle Easy Connect syntax only works with array DSN
- fixed bug #10105: inTransaction() was returning an incorrect value after a call
to disconnect() or __destruct()
- implemented a fallback mechanism within getTableIndexDefinition() and
getTableConstraintDefinition() in the Reverse module to ignore the 'idxname_format'
option and use the index name as provided in case of failure before returning
an error
- added a 'nativetype_map_callback' option to map native data declarations back to
custom data types (thanks to Andrew Hill).
- fixed bug #10234 and bug #10233: MDB2_Driver_Datatype_Common::mapNativeDatatype()
must ensure that it returns the correct length value, or null
- added support for TEMPORARY tables (patch by Andrew Hill)
- phpdoc fixes
- fixed tests to be compatible with PHP4
- added new tests, including some MDB2 internals tests by Andrew Hill and Monique Szpak
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)</notes>
</release>
<release>
<version>
<release>2.3.0</release>
<api>2.3.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-11-03</date>
<license>BSD License</license>
<notes>- added charset and collation support to field declaration
- added SQL comments and quoted identifier handling inside prepared statement parser
- expanded length/scale support for numeric types (Request #7170)
- added statement_format option to make it possible to define the name used for
native statements if supported
- fixed bug when setting MDB2_PREPARE_RESULT in autoExecute()
- fixed notice in exec() call in autoExecute()
- reversed if logic in MDB2::fileExists checking to be more fool proof with
safe_mode restrictions (Bug #8296)
- moved CREATE TABLE query generation in a separate method for reuse in the drivers
- added testLOBRead to test multiple LOB reads
- fixed getColumnNames() optional parameter handling (Bug #8857)
- phpdoc fix for fetchCol/fetchAll
- added an extra if in the autoExecute method of the Extended driver (Bug #8878)
- expanded tableInfo() tests
- expanded prepare() tests
- fix the incorrect use of currID() for lastInsertID() emulation (Bug #9107)
- add test for lastInsertID()
- also output php version in test results
- added supported 'new_link'
- dropped use of track_errors because 5.2.0 causes php_errormsg to not get
populated if a custom error handler is set and it was causing issues for
safe_mode users anyways
- added some error handling into the bindValues()/bindParams() methods (Bug #9133)
- bindValue() does not need values by reference
- fix issue in execute() when parameter is a scalar integer of 0 (Bug #9158)
- implemented stream_stat() method (Bug #9092)
- better deal with non scalar arguments in test helper function as 5.2.0 explodes otherwise
- extracted _skipDelimitedStrings() method from prepare()
- added test for _skipDelimitedStrings() method
- migrated to package.xml version 2
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)
- add a getTableFieldsDefinitions() method to be used in tableInfo()
- drop ILIKE from matchPattern() and instead add a second parameter to
handle case sensitivity with arbitrary operators
- add charset and collation support to field declaration in all drivers
- handle LOBs in buffered result sets (Request #8793)</notes>
</release>
<release>
<version>
<release>2.2.2</release>
<api>2.2.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-09-03</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- flip positions property array in prepared statement objects to make it
possible to optionally use the same named placeholder in multiple places
inside a single prepared statement
- expanded prepare tests to cover more edge cases
- renamed valid_types property to valid_default_values in the Datatype module
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add a package2.xml and explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected
- handle implicit commits (like for DDL) in any affected driver (mysql, sqlite..)</notes>
</release>
<release>
<version>
<release>2.2.1</release>
<api>2.2.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-08-21</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- fixed missing code in tableInfo() (Bug #8289)
- fixed handling of indexes and constraints and types in tableInfo() (fixes BC break)
- do not set nested transaction error if error is expected
- explictly default to NULL when the column is NULLable and no default is set
(related to Bug #8359)
- added support for case insensitive matching via ILIKE in matchPattern()
- added getAsKeyword() for generating &quot;AS&quot; keyword as required by the RDBMS
- return an error if a named placeholder name is used twice inside a single statement
- add support for multi column PRIMARY KEYs in createTable()
- added lower() and upper() to the function module
- moved escaping tests to datatype tests
- added summary at the end of a test run for each RDBMS
- explicitly pass the php_type var in all internal loadModule() calls
- added support for 'primary' option in createTable()
- expanded NULL tests
- fixed handling return values when disable_query is set in _doQuery() and _execute()
- check if safe_mode is enabled in fileExists() to determine what algo to use (Bug #8296)
- added a test case for updating LOBs
- added rtrim test case for LOBs
- if result types are specified only rtrim() type 'text' fields (otherwise
it will mean that for some drivers LOB's would get rtrimmed)
- phpdoc fixes to the convertResult*() methods
- added execParam() method and code tweaks for get*() methods in the Extended module
- removed redundant assertions when testing if a given feature is unsupported
- removed tests of portability off (users should just set the given portability
setting they want to test in their test_setup.php)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support for database/table/row LOCKs
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- generate STATUS file from test suite results and allow users to submit test results
- add a package2.xml and explore use of install groups (pear install MDB2#mysql)
- add support for full text index creation and querying
- add tests to check if the RDBMS specific handling with portability options
disabled behaves as expected</notes>
</release>
<release>
<version>
<release>2.2.0</release>
<api>2.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-07-23</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- added MDB2_AUTOQUERY_SELECT (Request #7817)
- added nested transaction support (inspired by ADODB's smart transactions) but
expanded to optionally use SAVEPOINTs *EXPERIMENTAL*
beginNestedTransaction(), completeNestedTransaction(),
failNestedTransaction(), getNestedTransactionError()
- inTransaction() will now return an integer with the nested transaction depth
if a nested transaction has been started
- added setTransactionIsolation()
- added savepoint support to beginTransaction(), commit() and rollback()
- added Native base class for consistency
- added missing colnum parameter to queryOne() [used by getOne()]
- added new tests for get*() Extended module methods
- fixed missing db variable from getValidTypes()
- added testing of a prepared statement with no parameters
- added handling of empty result sets to result set verification in the test suite
- oci8 and ibase (and possibly other rdbms) do not like freeing the statement
before reading the result set (Bug #8068):
* moved statement freeing after reading the result set in get*() Extended methods
* bypass prepared statement API for queries without parameters in autoExecute()
(this means you cannot use parameters with SELECT statements in autoExecute()
on the above mentioned platforms)
- use data type callback in getValidTypes()
- fixed identifier quoting in buildManipSQL() for SELECT statements (thx Kailoran)
- phpdoc and cosmetic fixes in limitQuery()
- added matchPattern() and patternEscapeString(), escapePattern() *EXPERIMENTAL*
- added ability to escape wildcard characters in escape() and quote()
- added debug() call at the end of a query/prepare/execute calling (Request #7933)
- added context array parameter to debug() and make use of it whereever sensible
- added optional method name parameter to raiseError() and use whereever possible
- added a new option &quot;debug_expanded_output&quot; which needs to be set to true to
get additional context information and to get &quot;post&quot; callback calls
- added testPortabilityOptions()
- set length of 8 and fixed for user_password in the test suite
- reworked tableInfo() to use a common implementation based on getTableFieldDefinition()
when a table name is passed (Bug #8124)
- disconnect after changing database/DSN (otherwise transactions may be left open)
open todo items:
- handle autoincrement fields in alterTable()
- add length handling to LOB reverse engineering
- expand charset support in schema management and result set handling (Request #4666)
- add EXPLAIN abstraction
- add cursor support along the lines of PDO (Request #3660 etc.)
- expand length/scale support for numeric types (Request #7170)
- add PDO based drivers, especially a driver to support SQLite 3 (Request #6907)
- add support to export/import in CSV format
- add more functions to the Function module (MD5(), IFNULL(), LENGTH() etc.)
- add support to generating &quot;AS&quot; keyword if required
- add support for database/table/row LOCKs
- add ActiveRecord implementation (probably as a separate package)
- add support for FOREIGN KEYs and CHECK (ENUM as possible mysql fallback) constraints
- extended to support for case insensitive matching via ILIKE/collate in matchPattern()
- generate STATUS file from test suite results and allow users to submit test results</notes>
</release>
<release>
<version>
<release>2.1.0</release>
<api>2.1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-06-15</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- removed bogus code from execute()
- new test case for floats/decimals and locale
- reworked fix for float/decimal handling
- expanded scientific notation handling
- fixed several minor issues with the datatype tests
- removed use of &quot;*&quot; in all places in the test suite that are followed by a fetch
- tweaked handling of free() for prepared statements
- return error if a prepared statement is attempted to be free'ed or executed again
- added result_wrap_class param to limitQuery()
- added parameter to not quote return value of getBeforeId()
- added setCharset()
- enable transactions by default
- added decimal reverse engineering test
- fixed parameter order in assertions in reverse engineering fields tests
- generalized quoteIdentifier() with a property
- switched most array_key_exists() calls to !empty() to improve readability and performance
- fixed a few edge cases and potential warnings
- added ability to rewrite queries for query(), exec() and prepare() using a debug handler callback
- added 'datatype_map' option (Request #7797)
- added reverse parameter to getColumnNames()
- added 'datatype_map_callback' option
- added getValidTypes() method to handle additional types from the 'datatype_map' option
- set last_query in _execute() to prepared statement (Bug #7856)
- adding random function emulation to generate a float between 0 and 1
- explicitly fetch row id = 1 in LOB tests
- cosmetic fix to prepare() (Bug #7883)
- bumped PHP dependency to 4.3.2 because of LOB stream support
open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style &quot;smart transactions&quot;:
http://phplens.com/lens/adodb/docs-adodb.htm#ex11
- add length handling to LOB reverse engineering</notes>
</release>
<release>
<version>
<release>2.0.3</release>
<api>2.0.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-05-22</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- fix float/decimal handling (Request #3021)
- default to decimal for double (instead of float)
- serialize arrays when no type is explicitly given
- phpdoc fixes
- expanded FLOAT test
- added support for identifier quoting (Request #7671)
- added test class for the Extended module
- added support for DELETE in auto*() methods (Request #5345)
- added &quot;emulate_prepared&quot; option to force prepared statement emulation
open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style &quot;smart transactions&quot;:
http://phplens.com/lens/adodb/docs-adodb.htm#ex11
- add length handling to LOB reverse engineering</notes>
</release>
<release>
<version>
<release>2.0.2</release>
<api>2.0.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-05-14</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- phpdoc and folding mark fixes (thx Laurent and Stoyan)
- added getTriggerDefinition() in the Reverse module
- added listTableViews() in the Manager module
- explicitly set is_manip parameter to false for transaction debug calls
- various minor tweaks to error messages, phpdoc and adding stub methods to the
common driver
- added row seeking support to fetchOne()
- added ability to hint that a constraint is a primary key in dropConstraint()
- since we no longer complain about primary keys not being called primary we can
remove the necessary hacks in the test suite
- improved LOB tests in the test suite
- do not require Manager module for core API tests
- added support for fixed and variable types for 'text' in declarations,
as well as in reverse engineering (Request #1523)
- updated MAINTAINERS to current status
- readded STATUS document, still needs to be filled with content
- tweaked handling of error objects inside raiseError()
- made _doQuery() return a reference
- added userinfo's to all raiseError calls that previously had none
- added bindValueArray()
- use bindValueArray() instead of bindParamArray() in all internal calls
- removed the skeleton drivers, since its too much work to maintain them
and there are plenty of sample drivers to look at
- fixed example due to API change in MDB2_Schema (Bug #7575)
- added 'prepared_statements' supported meta data setting
- do not retrieve lob in the stream constructor and streams_eof()
- strip of file:// prefix in writeLOBToFile()
- typo fix ressource/resource in LOB array
- removed lob property from the LOB streams wrapper (references are always
shaky business in PHP so lets use them as little as possible)
- fixed _destroyLOB() API to match other private LOB methods
- fixed phpdoc comments of all private LOB methods
- typo fix in autoincrement test
- reworked index/constraint creation to not affected unnecessary reverse tests
Note: Due to changes in generation of declaration statements you may need to
update your test databases (for example by rerunning the MDB2_Schema
installation using the CVS version or a release greater than 0.5.0)
open todo items:
- handle autoincrement fields in alterTable()
- add support for ADODB style &quot;smart transactions&quot;:
http://phplens.com/lens/adodb/docs-adodb.htm#ex11</notes>
</release>
<release>
<version>
<release>2.0.1</release>
<api>2.0.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-04-16</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- added new comprehensive tests for the Reverse module
- fixed testcases to pass for mysql[i] (needs pk's to be called &quot;primary&quot;) ..
sqlite is probably severely broken for these tests
- added ability to specify port number when using unix sockets in
MDB2::parseDSN() (bug #5982)
- added test for multi_query option
- typo fix in get constraint test
- use ugly fopen() hack in fileExists()
http://marc.theaimsgroup.com/?l=pear-dev&amp;m=114148949106207&amp;w=2
- allow &quot;.&quot; and &quot;$&quot; in sequence name (bug #7081)
- aligned _modifyQuery() signature and phpdoc
- added inTransaction() to determine if a transaction is currently open
- added support for tabe options in createTable() (bug ##7079)
- make it possible to overwrite the error code-message map
- added sample sqlite in memory dsn to php5 example
- added 'result_introspection' supported metadata support
- added bindValue() method
- use MDB2_PREPARE_MANIP where we previously were using false
- fixed default values for date and timestamp
- if MDB2_PORTABILITY_EMPTY_TO_NULL is set change '' to ' ' in _getDeclaration()
- refactored class loading into MDB2::loadClass()
- properly quote CURRENT_* for temporal types (bug #6416)
- added connected_server_info to cache server info in getServerInfo()
- reset all connection related properties in disconnect()
- separated result_buffering and prefetching by adding the new result_prefetching option
- set error code in all raiseError() calls
- added support for length in reverse engineering of integer fields
- improve test suite documentation
open todo items:
- handle autoincremement fields in alterTable()</notes>
</release>
<release>
<version>
<release>2.0.0</release>
<api>2.0.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-02-09</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- handle null as resource when disable_query option is enabled in result object</notes>
</release>
<release>
<version>
<release>2.0.0RC5</release>
<api>2.0.0RC5</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2006-02-05</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- expanded testing of prepared queries (out of order binding, escape characters
inside the string, lobs without named parameters that match the field name)
- removed ugly hack for quote parameter in quote() since it was insufficient
(escaping also needs to be prevented)
- added support for out of order parameter binding in prepared queries
- expanded testing of prepared queries (out of order binding, escape characters
inside the string, lobs without named parameters that match the field name)
- reset row_limit and row_offset after calling prepare() just like we do for query() and exec()
- cosmetic fix (removed &quot;row_&quot; prefix from &quot;row_limit&quot; and &quot;row_offset&quot;)
- now using INT/TINYINT/SMALLINT by default instead of CHAR(1) for the boolean datatype
(BC BREAK!)
- added MDB2_datatype_testcase to test suite
- support an arbitrary number of arguments in concat()
- add property phpdoc comments to LOB.php</notes>
</release>
<release>
<version>
<release>2.0.0RC4</release>
<api>2.0.0RC4</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2006-01-13</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- explicitly pass if the module is phptype specific in all loadModule calls (bug #6226)
- some cleanups in loadModule()
- eliminate possible warnings in execute() and _assignBindColumns()
- do not silence includes when debug option is enabled
- fixed serious bug in autoincrement test
- added dbsyntax to getDSN() string output (feature request #6463)
- fixed signature of executeStoredProc()
- nextResult() returns false if there are no more result sets to read
- renamed _isIndexName() to _fixIndexName()
- _fixIndexName() now just attempts to remove possible formatting
- renamed _isSequenceName() to _fixSequenceName()
- _fixSequenceName() now just attempts to remove possible formatting, and only
returns a boolean if no formatting was applied when the new &quot;check&quot; parameter is set to true</notes>
</release>
<release>
<version>
<release>2.0.0RC3</release>
<api>2.0.0RC3</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2005-12-30</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- added error handling when result set introspection is not supported in _wrapResult()
- fixed example
- removed peardb wrapper (its broken, unmaintained and probably unused)
- added new example using php5 only features
- MDB2_OK is now a boolean true, instead of integer 1
- types can now always be keyed by name or by order
- renamed setResultTypes() in the datatype module to checkResultTypes()
and modified the signature accordingly
- removed no longer used MDB2::isManip()</notes>
</release>
<release>
<version>
<release>2.0.0RC2</release>
<api>2.0.0RC2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2005-12-28</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- fixed testNow() to use the datatype abstraction
- fixed testGetTableFieldDefinition() to use a blob column instead of a clob
since we default to blob when we cannot differntiate between blob and clob
- split up alterTable() testing into two separate test methods
- removed errorNative() was never implemented, use errorInfo() instead
- fixed major bug in _fixResultArrayValues() that would lead to performance or
incorrect application of portability features
- phpdoc fixes in LOB.php, Iterator.php, Date.php and Extended.php
- removed not required prev() and hasPrev() from the SeekableIterator implementation</notes>
</release>
<release>
<version>
<release>2.0.0RC1</release>
<api>2.0.0RC1</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2005-12-21</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- added numerous testcases in the manager and reverse module
- unified case fixing in the list*() methods
- case-insensitive comparison in _isSequenceName()
- added getConnection() to fetch a native connection resource
- split index and constraint handling
- quote identifiers where possible inside the manager methods depending on
the new 'quote_identifier' option (defaults to off)
- refactored get*Declaration() methods to use getTypeDeclaration()
- setting in_transaction to false on disconnect
- store if type has changed in compareDefinition()
- added new Function modules to handle difference in SQL functions
- added verious new test cases
- refactored test cases to use an MDB2_testcase base class
- allow empty field parameter in get*ID() methods (bug #5791)
- tweaked error messages for file loads
- split off manipulation queries into exec() method from the query() method *BC BREAK*
- only if result_types is set to false in prepare() method the query will be
handled as a DML statement *BC BREAK*
- use a proper default value if a field is set to not null in _getDeclaration*() (bug #5930)
- added getServerVersion()
- renamed defaultOutput() to getDefaultOutput() *BC BREAK*
- use tableInfo() to automatically determine the result types if type is set to true
- reworked file loading to work around issues in safe_mode with MDB2::fileExists() (bug #6226)
- no need to return by reference in getConnection() (it even seems to work for
mysqli that has objects and not resource connections)
- added &quot;idxname_format&quot; as option similar to &quot;seqname_format&quot;
- fixed bug in API calls inside autoExecute() (bug #6286)</notes>
</release>
<release>
<version>
<release>2.0.0beta6</release>
<api>2.0.0beta6</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2005-10-16</date>
<license uri="http://www.example.com">BSD License</license>
<notes>Warning: this release features numerous BC breaks!
There have been considerable improvements to the datatype, manager and reverse
modules. Furthermore preliminary support for auto increment and primary keys
has been added. Please note that making a field auto increment implies a single
column primary key on this field.
- increased php dependency to 4.3.0 due to the usage of the streams API since beta5
- moved logic from MDB2::connect() to MDB2::factory(), the only difference is
that MDB2::connect will immediatly try to connect to the database
- MDB2::singleton now uses MDB2::factory()
- added support for auto increment and primary key in schema. (mysql[i])
- alterTable now needs the full definition to work (use getTableFieldDefinition
from Reverse module if you do not have a definition at hand) this eliminates the need
of the declaration part in the alterTable array.
- nicer test chooser. Added some js magic to [un]select all the tests in a group
- fixed typo in _getTextDeclaration()
- fix PHP4.4 breakage
- ensure that types and result_types property in the statement class is an array (bug #4695)
- added support for fetchmode in the iterator class and for any other result wrapper class (bug #4685)
- moved getInsertID() into core as lastInsertID()
- moved getBeforeID() and getAfterID() from core into the extended module
- added base class for all modules (which provides getDBInstance())
- added free() method to remove an instance from the global instance array
- removed schema manager related error codes from MDB2::errorMessage()
- dont set the include path in test suite (people can do that in test_setup.php)
- added missing default numRows() method
- added hack into stream_eof() to handle the BC break in 5.0.x
- removed uncessary duplicate quoting in quote() in the peardb wrapper (bug #5195)
- warning fix in BC hack of connect() in the peardb wrapper
- tweaked error message in setResultTypes()
- removed PDO compatibility code in bindParam and bindCol, now using 0-index numeric keys again
- expect keys in type arrays the same way as they are passed for the values in execute() and bindParamArray()
- add s pattern modifier to preg_replace() call for parameter searches in prepare() (bug #5362)
- moved all private fetch mode fix methods into _fixResultArrayValues() for performance reasons
- added new portability fetch mode MDB2_PORTABILITY_FIX_ASSOC_FIELD_NAMES (to remove database/table qualifiers from assoc indexes)
- renamed MDB2_PORTABILITY_LOWERCASE to MDB2_PORTABILITY_FIX_CASE and use 'field_case' option to determine if to upper- or lowercase (CASE_LOWER/CASE_UPPER)
- ensure that fetchAll always returns an array() even if the result set was empty
- use array_key_exists() instead of isset() where possible
- changed structure of field add/remove/change in alterTable() to match MDB2_Schema
- added default values for supported property
- reworked supports() to return the given value and also return errors for non existant support feature
- reworked subSelect() to use the 'emulated' supports() return value
- removed implementation of createIndex() (now every driver needs to implement it themselves)
- sync fileExists with the LiveUser one, explode instead of split and is_readable instead of file_exists.
- tweaked compare method family to better deal with optional properties
open todo items:
- add test cases for the various module methods
- add getServerVersion()</notes>
</release>
<release>
<version>
<release>2.0.0beta5</release>
<api>2.0.0beta5</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2005-06-08</date>
<license uri="http://www.example.com">BSD License</license>
<notes>Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.
- refactored LOB support (BC breaks)
- moved all drivers into separate packages MDB2_Driver_* (BC break)
- bindParam() and bindColumn() are now 1-indexed (BC break)
- removed special handling for day light saving time (bug #4341) (BC break)
- ensure SQL injection protection in all _quote() methods
(was missing in some decimal, float, time, date and timestamp implementations)
- renamed getRowCount() to rowCount() for PDO compliance (BC break)
(doesnt take into account the offset anymore)
- added new quote() parameter to remove quotes (ugly hack will get cleaned up)
- renamed execute() to _execute() since common provides some common functionality via execute()
- fixed some issues regarding limit/offset in prepared statements
- fixed bug in _assignBindColumns() when using associative fetches
- support numeric and string keys in types array for prepared queries
- call trigger error if __call() is unable to find a method in any of the modules
- work around php5 bugs in the test suite</notes>
</release>
<release>
<version>
<release>2.0.0beta4</release>
<api>2.0.0beta4</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2005-04-29</date>
<license uri="http://www.example.com">BSD License</license>
<notes>Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.
- fixed bugs in MDB2_Extended::buildManipSQL() introduced in latest tweaks (bug #3725)
- mysqli has connection objects instead of resources
- fix mssql tableInfo() so flags are returned (bug #3691)
- fixed bug in handling of force_array when 2 or less columns are fetched in fetchAll()
- added map error message for sqlite multi-column unique constraints.
- added listUsers(), listViews(), listFunctions() to oracle manager
- added listFunctions() to pgsql manager
- updated listViews() in pgsql manager
- added __call() support for module handling
- mysql driver now uses mysqli implementations where feasible
- ensure that internal calls to query dont wrap the result
- for some reason mysqli didnt like SELECT LAST_INSERT_ID()
- fixed bug in table alteration when only an index was added
- updated pgsql API calls to 4.2.0 recommended names (bug #3904)
- moved logic to compareDefinitions from the Manager into the Datatype module
to increase flexibility
- extended MDB2::isError() to be able to handle an array or codes
- added error handling into autoPrepare() and autoExecute()
- migrade all MDB2::isError calls that dont check for specific errors codes to PEAR::isError
- don't pass new_link to mysql_pconnect() (bug #3993)
- use MDB2::raiseError() instead of MDB2_Driver_Common::raiseError()
- do not disable result wrapping when doing internal calls to query() (bug #3997)
- _wrapResult() now ensures that the result class is an instance of MDB2_Result_Common
- unbundled the MDB2_Tools_Manager into a separate package PEAR::MDB2_Schema
- improved getTableFieldDefinition() and moved native type mapping to the
datatype module mapNativeDatatype() method (mysql, sqlite, pgsql and ibase drivers)
- fixes for listTables() in sqlite and pgsql driver
- ensure that mysql drivers use the dummy_primary_key property
- severely reworked how data is fetched and buffered and freed in the iterator
- added mapNativeDatatype() to ibase driver
- getTypeDeclaration() =&gt; _getTypeDeclaration() in ibase driver
- cosmetic fixes and tweaks (replace(). fetchOne() ..)
- renamed 'seqname_col_name' option to 'seqcol_name'
- moved schema documentation, xml_reverse_engineering.php, MDB.dtd
and MDB.xls to MDB_Schema package
- Mysqli: implicit sequence is named as table by default
- Mysqli: text types now map to clob first
- ensure that types are numerically keyed in setResultTypes()
- added caching to getColumnNames()
- added bindColumn() support
- use MDB2_Schema::factory()
- phpdoc fixes in regards to flipped fetchmode
- remove renegate mysql code in sqlite driver</notes>
</release>
<release>
<version>
<release>2.0.0beta3</release>
<api>2.0.0beta3</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2005-03-06</date>
<license uri="http://www.example.com">BSD License</license>
<notes>Warning: this release features numerous BC breaks to make the MDB2 API be as
similar as possible as the ext/pdo API! The next release is likely to also break
BC for the same reason. Check php.net/pdo for information on the pdo API.
Oracle NULL in LOB fields is broken.
The fbsql and mssql drivers are likely to be broken as they are largely untested.
MDB2 static class:
- &quot;xxx&quot; out password on connect error in MDB2::connect()
- MDB2::isError now also optionally accepts and error code to check for
- added LOAD DATA (port from DB) and SET to MDB2::isManip()
All drivers:
- use __construct() (PHP4 BC hacks are provided)
- allow null values to be set for options
- ensure we are returning a reference in all relevant places
- allow errorInfo() to be called when no connection has been established yet
- use MDB2_ERROR_UNSUPPORTED instead of MDB2_ERROR_NOT_CAPABLE in common implementations
- readded MDB2_Error as the baseclass for all MDB2 error objects
- updated error mappings from DB
- added MDB2_Driver_Common::getDatabase();
- reworked dsn default handling
- added ability to &quot;xxx&quot; out password in getDSN()
- use _close() method in several places where they previously were not used
- removed redundant code in _close() that dealt with transaction closing already
done in disconnect()
- if the dbsyntax is set in the dsn it will be set in the dbsyntax property
- only disconnect persistant connections if disconnect() has been explicitly
called by the user
- instead of having a generic implemention of disconnect() we will rename
_close() to disconnect() to overwrite the generic implementation
- added support for 'new_link' dsn option for all supported drivers (mysql, oci8, pgsql)
- transaction API moved over to PDO: removed autoCommit(), added beginTransaction()
and refactored commit() (it doesn't start a new transaction automatically anymore)
- reworked handling of uncommited transaction for persistant connections when
a given connection is no longer in use
- added 'disable_query' option to be able to disable the execution of all queries
(this might be useful in conjuntion with a custom debug handler to be able to
dump all queries into a file instead of executing them)
- removed affectedRows() method in favor of returning affectedRows() on query if relevant
- added generic implementation of query() and moved driver specific code into _doQuery()
- added _modifyQuery() to any driver that did not yet have it yet
- standaloneQuery() now also supports SELECT querys
- remove redundant call to commit() since setting autoCommit() already commits in MDB2::replace()
- refactored standaloneQuery(), query(), _doQuery(), _wrapResult(); the most important change are:
result are only wrapped if it is explicitly requested
standaloneQuery() now works just as query() does but with its own connection
- allowing limits of 0 in setLimit()
- explicitly specify colum name in sequence emulation queries
- added getBeforeId() and getAfterId()
- added new supported feature 'auto_increment'
- added default implementation for quoteCLOB() and quoteBLOB()
- reworked quote handling: moved all implementation details into the extension,
made all quote methods private except for quote() itself, honor portability
MDB2_PORTABILITY_EMPTY_TO_NULL in quote(), removed MDB2_TYPE_* constants
- reworked get*Declaration handling: moved all implementation details into the extension,
made all quote methods private except for quote() itself
- placed convert methods after the portability conversions to ensure that the
proper type is maintained after the conversion methods
- dont convert fetched null values in the Datatype module
- removed executeParams() and moved executeMultiple() from extended module
- updated tableInfo() code from DB
- made LIMIT handling more robust by taking some code from DB
All drivers result:
- performance tweak in fetchCol()
- added MDB2_FETCHMODE_OBJECT
- added MDB2_Driver_Result_Common::getRowCounter()
- added rownum handling to fetchRow()
- removed fetch() and resultIsNull()
All drivers prepared statements
- moved prepare/execute API towards PDO
- setParamsArray() can now handle non ordered arrays
- removed requirement for LOB inserts to pass the parameters as an array
- placeholders are now numbered starting from 0 (BC break in setParam() !)
- queries inside the prepared_queries property now start counting at 1 (performance tweak)
- refactored handling of filename LOB values (prefix with 'file://')
- removed _executePrepared(), drivers need to overwrite execute() for now on
- add support for oracle style named parameters and modified test suite accordingly
MySQL driver:
- improved handling of MDB2_PORTABILITY_LOWERCASE in all the reverse
methods inside the mysql driver to work coherently
- fixed several issues in the listTablefields() method of manager drivers
MSSQL driver:
- added code in MDB2_Driver_mssql::connect() to better handle date values
independant of ini and locale settings inside the server
- use comma, rather than colon, to delimit port in MDB2_driver_mssql::connect().
Bug 2140. (danielc)
- unified mssql standalone query with sqlite, mysql and others (not tested on
mssql yet, but since mssql automatically reuses connections per dsn the old
way could gurantee anything different from happening)
PgSQL driver:
- use track_errors to capture error messages in MDB2_driver_pgsql::connect().
Bug 2011. (danielc)
- add port to connect string when protocol is unix in MDB2_driver_pgsql::connect().
Bug 1919. (danielc)
- accommodate changes made to PostgreSQL so &quot;no such field&quot; errors get properly
indicated rather than being mislabeled as &quot;no such table.&quot; (danielc)
- added &quot;permission denied&quot; to error regex in pgsql driver.
Bug 2417. (stewart_linux-org-au)
OCI8 driver:
- fixed typo in MDB2_Driver_Manager_oci8::listTables() (fix for bug #2434)
- added emulate_database option (default true) to the Oracle driver that handles
if the database_name should be used for connections of the username
- oci8 driver now uses native bind support for all types in prepare()/execute()
Interbase driver:
- completely revised ibase driver, now passing all tests under php5
Frontbase driver:
- fbsql: use correct error codes. Was using MySQL's codes by mistake.
MySQLi driver:
- added mysqli driver (passes all tests, but doesnt use native prepare yet)
DB wrapper
- fixed a large number of compatibility issues in the PEAR::DB wrapper
Iterator
- fixed several bugs and updated the interface to match the final php5 iterator API
- buffered result sets now implements seekable
- removed unnecessary returns
- throw pear error on rewind in unbuffered result set
- renamed size() to count() to match the upcoming Countable interface
Extended module:
- modified the signature of the auto*() methods to be compatible with DB (bug #3720)
- tweaked buildManipSQL() to not use loops (bug #3721)
MDB_Tools_Manager
- updated raiseError method in the Manager to be compatible with
XML_Parser 1.1.x and return useful error message (fix bug #2055)
- major refactoring of MDB2_Manager resulting in several new methods being available
- fixed error in MDB2_Manager::_escapeSpecialCharacter() that would lead to
incorrect handling of integer values (this needs to be explored in more detail)
- several typo fixes and minor logic errors (among others a fix for bug #2057)
- moved xml dumping in MDB2_Tools_Manager into separate Writer class
- fixed bugs in start value handling in create sequence (bug #3077)</notes>
</release>
<release>
<version>
<release>2.0.0beta2</release>
<api>2.0.0beta2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2004-04-25</date>
<license uri="http://www.example.com">BSD License</license>
<notes>The core of MDB2 is now fairly stable API-wise. The modules, especially the
manager and reverse module, might see some API refinement before the first
stable release.
- added listTables() and listTableFields() methods to MDB2_Driver_Manager_mssql
and MDB2_Driver_Manager_oci8
- reversed parameter order of getValue(), type parameter is now optional and
will then be autodetected (BC break!)
- renamed get*Value() to quote*() (BC break!)
- fixed LOB management in MDB2_Driver_ibase
- moved getOne, getRow, getCol, getAll back into the exteneded module (most
users should be able to move to the queryOne, queryRow, queryCol and queryAll
equivalent) (BC break!)
- added getAssoc to the extended module
- fixed bug in MDB2_Driver_Datatype_Common::implodeArray()
- added sequence_col_name option to make the column name inside sequence
emulation tables configurable
- fixed a bug in the MDB2_Driver_oci8 and MDB2_Driver_ibase buffering emulation
when using limit queries
- removed MDB2_PORTABILITY_NULL_TO_EMPTY in favor of MDB2_PORTABILITY_EMPTY_TO_NULL
this means that DB and MDB2 work exactly the opposite now, but it seems more
efficient to do things the way Oracle does since this is the RDBMS which
creates the original issue to begin with (BC break!)
- fixed a typos in getAll, getAssoc and getCol
- test suite: moved set_time_limit() call to the setup script to be easier to customize
- renamed hasMore() to valid() due to changes in the PHP5 iterator API (BC break!)
- renamed toString() to __toString() in order to take advantage of new PHP5
goodness and made it public
- MDB2_Driver_Datatype_Common::setResultTypes() can now handle missing elements
inside type arrays: array(2 =&gt; 'boolean', 4 =&gt; 'timestamp')
- fixed potential warning due to manipulation query detection in the query*()
and the get*() query+fetch methods
- added tests for fetchAll() and fetchCol()
- performance tweaks for fetchAll() and fetchCol()
- fixed MDB2_Driver_Manager_mysql::listTableIndexes()
- fixed MDB2_Driver_Common::debug()
- renamed MDB2::isResult() to MDB2::isResultCommon()
- added base result class MDB2_Result from which all result sets should be
inherited and added MDB2::isResult() which checks if a given object extends from it
- added 'result_wrap_class' option and optional parameter to query() to enable
wrapping of result classes into an arbitrary class
- added $result_class param to all drivers where it was missing from the
query() and _executePrepared() methods
- applied several fixes to the PEAR::DB wrapper
- fixed a typo in MDB2_Driver_Reverse_pgsql::tableInfo()</notes>
</release>
<release>
<version>
<release>2.0.0beta1</release>
<api>2.0.0beta1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2004-03-12</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- fixed bug in MDB2::singleton
- fixed minor bugs in prepare/execute
- added PEAR::DB wrapper (not working yet)
- fixed several bugs in the ibase driver
- fixed several PHP5 related issues
- fixed bug in sequence creation on MySQL
- fixed issues with nextid() ondemand handling in conjunction with currId()
- added native currId() implementation for the Oracle driver
- fixed sqlite driver (passes all but the REPLACE test due to a conformance issue in sqlite itself)
- removed decimal_factor property to allow changing of decimal_places option
- using native escape string methods in sqlite and mysql driver
- fixed minor conformance issues in tableInfo() in the oci8 and mysql driver
- removed optimize option and added portability option instead (ported from DB)
- added quoteIdentifier() method (ported from DB)
- added STATUS document to make the status of the drivers more transparent
- fixed a few bugs in querysim driver
- fixed issue in mysql reverse engineering: ensuring the correct case is used when
doing assoc fetches based on portability flag setting
- updated reverse engineering script to the new MDB2 API
- removed broken implementations of currId() in the mssql and fbsql driver
- fixed a few instances of MDB_Common to the new class name of MDB_Driver_Common</notes>
</release>
<release>
<version>
<release>2.0.0alpha1</release>
<api>2.0.0alpha1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2004-01-05</date>
<license uri="http://www.example.com">BSD License</license>
<notes>This is the first alpha release of MDB2 2.0.
MDB2 2.x breaks backwards compatibility in many ways in order to simplify
the API for both users and drivers developers.
Please note that currently only the MySQL, the PostGreSQL and the Oracle driver
have been tested to pass the test suite.
Here follows a short list of the most important changes:
- all code that is not necessary for basic operation is now separateed
into separate modules which can be loaded with the loadModule() method
- all datatype related methods have been moved to a dataype module with
the notable exception of getValue() and the newly introduced getDeclaration()
- added extended module for highlevel methods
- all manager method are no longer available in the core class and or
now only available in the manager module
- all reverse engineering methods have been taken from the manager class
and are now available through the reverse module
- a new module has been added to allow the addition of methods with
RDBMS specific functionality (like getting the last autoincrement ID)
- LOB handling has been greatly simplified
- several methods names have been shortend
- the fetch.+() methods do not free the result set anymore
- the Manager and the reverse_engineer_xml_schema have been moved into
a Tools directory
- all parameters are now lowercased with underscores as separators
- all drivers now support all of the dsn options that PEAR DB supports
- several methods have been removed because they offered redundant functionality
- changed prepare API type is now passed to prepare and not to setParam*()
- results are now wrapped inside objects and all methods which operate
on resultsets have been moved into respecitive classes
- there are two types of result object: buffered (default) and unbuffered
- totally rewrote buffering and limit emulation</notes>
</release>
</changelog>
</phprelease>
</package>
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.7.2" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>MDB2_Driver_mysqli</name>
<channel>pear.php.net</channel>
<summary>mysqli MDB2 driver</summary>
<description>This is the MySQLi MDB2 driver.</description>
<lead>
<name>Lukas Kahwe Smith</name>
<user>lsmith</user>
<email>smith@pooteeweet.org</email>
<active>no</active>
</lead>
<lead>
<name>Lorenzo Alberton</name>
<user>quipo</user>
<email>l.alberton@quipo.it</email>
<active>yes</active>
</lead>
<date>2010-05-04</date>
<time>08:57:53</time>
<version>
<release>1.5.0b2</release>
<api>1.5.0b2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<license>BSD License</license>
<notes>- fixed bug #12117: disconnect() does not work as documented
- fixed bug #13412: sometimes getTableConstraintDefinition() fails for FOREIGN KEYs
- fixed bug #13581: wrong query in beginTransaction() for certain MySQL versions
- fixed bug #13928: Invalid triggers created for 'ON UPDATE'
- fixed bug #15051: Cannot create constraints with field length
- add index on FK column(s) or a FK constraint cannot be created in some cases
open todo items:
- use a trigger to emulate setting default now()</notes>
<contents>
<dir name="/">
<file baseinstalldir="/" md5sum="14f12bd33f7212d51b400e0a3ea9dff9" name="tests/MDB2_nonstandard_mysqli.php" role="test"/>
<file baseinstalldir="/" md5sum="2230d22996ea3d741859ad0e4cd580e7" name="package_mysqli.xml" role="data"/>
<file baseinstalldir="/" md5sum="1a93d3c16c6c035089d174f1e274919e" name="MDB2/Driver/Reverse/mysqli.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="f85ab0986d5b8068de46cb274e8628cb" name="MDB2/Driver/Native/mysqli.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="e17e45a9705741f7940d32d794a3fc58" name="MDB2/Driver/mysqli.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="4a3db0eef4e91422e627db75134af300" name="MDB2/Driver/Manager/mysqli.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="90805fd47d1c2f6c913e0685e857350c" name="MDB2/Driver/Function/mysqli.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="e864f782acec62683204fbdb31560673" name="MDB2/Driver/Datatype/mysqli.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>5.0.0</min>
</php>
<pearinstaller>
<min>1.4.0b1</min>
</pearinstaller>
<package>
<name>MDB2</name>
<channel>pear.php.net</channel>
<min>2.5.0b2</min>
</package>
<extension>
<name>mysqli</name>
</extension>
</required>
</dependencies>
<phprelease>
<changelog>
<release>
<version>
<release>1.5.0b2</release>
<api>1.5.0b2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2009-01-14</date>
<license>BSD License</license>
<notes>- fixed bug #12117: disconnect() does not work as documented
- fixed bug #13412: sometimes getTableConstraintDefinition() fails for FOREIGN KEYs
- fixed bug #13581: wrong query in beginTransaction() for certain MySQL versions
- fixed bug #13928: Invalid triggers created for 'ON UPDATE'
- fixed bug #15051: Cannot create constraints with field length
- add index on FK column(s) or a FK constraint cannot be created in some cases
open todo items:
- use a trigger to emulate setting default now()</notes>
</release>
<release>
<version>
<release>1.5.0b1</release>
<api>1.5.0b1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2008-03-15</date>
<license>BSD License</license>
<notes>- fixed bug #11831: createTable() now supports tables with a multi-field PRIMARY KEY
where one field is defined as AUTO_INCREMENT
- request #11204: support AUTO_INCREMENT for FLOAT data type and UNSIGNED option
for FLOAT and DECIMAL data type [afz]
- fixed bug #11692: value of $db-&gt;supports('transactions') changes after query [afz]
- request #12731: added truncateTable() in the Manager module
- request #12732: added vacuum() in the Manager module for OPTIMIZE/VACUUM TABLE abstraction
- request #12800: added alterDatabase() in the Manager module [afz]
- fixed quoting in createDatabase() in the Manager module
- fixed bug #12924: correctly handle internal expected errors even with custom error handling
- added standaloneQuery() and databaseExists()
- request #13106: added unixtimestamp() in the Function module
- fixed regexp in listTableConstraints() in the Manager module to list FOREIGN KEY constraints
- fixed bug #13180: MySQL driver tells SAVEPOINT is supported for MyISAM tables
- fixed bug #13283: replace() doesn't respect quote_identifiers option
- request #13313: setCharSet() supports 'COLLATE' too
- fixed bug #13370: some capabilities depend on user options, so check them after
a setOption() call
- when triggers are supported, two triggers are created to emulate ON UPDATE / ON DELETE actions
for FOREIGN KEY constraints. Known limitation: since mysql doesn't support multiple triggers
with the same action time and event for one table, if there are multiple table referencing
the same table, only the first one will have the triggers created.
open todo items:
- use a trigger to emulate setting default now()</notes>
</release>
<release>
<version>
<release>1.5.0a2</release>
<api>1.5.0a2</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2007-12-06</date>
<license>BSD License</license>
<notes>- fixed bug #12516: error in FK constraint creation query
- request #12012: added charset/collation support in createDatabase()
open todo items:
- use a trigger to emulate setting default now()</notes>
</release>
<release>
<version>
<release>1.5.0a1</release>
<api>1.5.0a1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2007-10-28</date>
<license>BSD License</license>
<notes>- fixed bug #10024: Added new option 'lob_allow_url_include' (default false) to
[dis]allow inserting a LOB from an url (file, http, ...).
- fixed bug #10986: Using more random statement names (request #11625)
- fixed bug #11055: Using placeholders with := variable assignment fails [bekarau]
- initial support for FOREIGN KEY constraints in the Manager and Reverse modules
- request #11389: added many new MySQL 5.1 error codes in errorInfo()
- fixed bug #11428: propagate quote() errors with invalid data types
- fixed bug in _modifyQuery() when using SELECT FOR UPDATE or similar queries
- fixed bug #11590: _getServerCapabilities() has to be called once per connection
- fixed bug #11790: avoid array_diff() because it has a memory leak in PHP 5.1.x
- fixed some E_STRICT errors with PHP5
- fixed bug #12010: MDB2_PORTABILITY_RTRIM option was ignored
- fixed bug #12083: createTable() in the Manager module now returns MDB2_OK on success,
as documented
- request #12213: usage of mysqli_options 'MYSQLI_SET_CHARSET_NAME' and mysqli_set_charset()
when available (patch by Carsten Wiedmann)
- fixed bug #12242: missing charset info in the Reverse module (patch by Carsten Wiedmann)
- fixed bug #12269: tableInfo() in the Reverse module detect 'clob' data type
as first option
- fixed bug #12336: supply default value for NOT NULL timestamp fields
open todo items:
- use a trigger to emulate setting default now()</notes>
</release>
<release>
<version>
<release>1.4.1</release>
<api>1.4.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2007-05-03</date>
<license>BSD License</license>
<notes>- fixed bug #10378: incorrect query rewrite in setLimit() when using &quot;FOR UPDATE&quot;
or &quot;LOCK IN SHARE MODE&quot; (thanks to priyadi) or &quot;INTO OUTFILE&quot; or &quot;INTO DUMPFILE&quot;
- fixed bug #10384: in setCharset(), use mysqli_real_escape_string() instead of
mysql_real_escape_string()
- return length as &quot;precision,scale&quot; for NUMERIC and DECIMAL fields in mapNativeDatatype()
- in getTableIndexDefinition() and getTableConstraintDefinition() in the Reverse
module, also return the field position in the index/constraint
- fixed bug #10636: transactions broken in release 2.4.0 because of some properties
being reset (thanks to Conor Kerr)
- fixed bug #10748: failed connections don't return native error code [urkle]
- fixed bug #10895: setLimit() does not work properly when a subquery uses LIMIT
open todo items:
- use a trigger to emulate setting default now()</notes>
</release>
<release>
<version>
<release>1.4.0</release>
<api>1.4.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2007-03-13</date>
<license>BSD License</license>
<notes>- fixed bug #9283: missing support for BINARY/VARBINARY data types (thanks to Tom Hendrikx)
- propagate errors in getTableFieldDefinition() in the Reverse module
- implemented getTriggerDefinition() in the Reverse module (mysql &gt; 5.0.2) [experimental]
- implemented listTableTriggers() in the Manager module (mysql &gt; 5.0.2)
- implemented listFunctions() in the Manager module
- setCharset() now uses &quot;SET NAMES&quot; instead of &quot;SET character_set_client&quot;
- select the mysql database in listUsers() in the Manager module
- added error codes for MySQL 5 (patch by Adam Harvey)
- implemented guid() in the Function module [globally unique identifier]
- fixed bug #10033: beginTransaction() does not know server capabilities
- fixed bug #10057: createConstraint() returns an error when the definition is incomplete
- request #9451: you can set charset, collation, engine and comments in createSequence()
- implemented a fallback mechanism within getTableIndexDefinition() and
getTableConstraintDefinition() in the Reverse module to ignore the 'idxname_format'
option and use the index name as provided in case of failure before returning
an error
- fixed bug #10181: propagate error when an invalid type is passed to prepare()
- added a 'nativetype_map_callback' option to map native data declarations back to
custom data types (thanks to Andrew Hill).
- fixed bug #10239: execute() misinterprets MySQL's user defined variables
- phpdoc fixes
open todo items:
- use a trigger to emulate setting default now()</notes>
</release>
<release>
<version>
<release>1.3.0</release>
<api>2.3.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-11-03</date>
<license>BSD License</license>
<notes>- added charset and collation support to field declaration
- fixed bug #9024: typo in error checking
- fixed parameter order in charset setting fallback (Bug #8807)
- fix typos in error handling in a few places (bug #9024)
- typo fix in tableInfo (Bug #8925)
- do not skip id generation in nextId() when creating a sequence on demand
because this prevents lastInsertID() from working
- migrated to package.xml version 2</notes>
</release>
<release>
<version>
<release>1.2.2</release>
<api>1.2.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-09-03</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- fixed single quote handling inside non emulated prepared statements (Bug #8538)
- flip positions property array in prepared statement objects to make it
possible to optionally use the same named placeholder in multiple places
inside a single prepared statement</notes>
</release>
<release>
<version>
<release>1.2.1</release>
<api>1.2.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-08-21</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- fixed issue in tableInfo() that originates in getTableFieldDefinition() which
led to returning incorrect type values (Bug #8291)
- quote identifiers in the reverse module when 'quote_identifiers' is enabled (Bug #8309)
- use version_compare() to fix complex version comparisons (Bug #8355)
- do not use quote() in setCharset() since it is supposed to set the charset in
the connection that was passed to it
- return an error if a named placeholder name is used twice inside a single statement
- do not list empty contraints and indexes
- added support for 'primary' option in createTable()
- fixed notnull reverse engineering on mysql 4.x (Bug #8415)
- do not set a default if type is a LOB (Request #8074)
- if a default value is set, then we need to use VARCHAR instead of TEXT
- removed _verifyTableType() since it just adds overhead, is hard to do reliably
and you will get an error if the table type is not supported anyways
- fixed handling return values when disable_query is set in _doQuery() and _execute()
- only call RELEASE SAVEPOINT if the server version if 5.0.3 or higher
- increased MDB2 dependency too 2.2.1</notes>
</release>
<release>
<version>
<release>1.2.0</release>
<api>1.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-07-23</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- added ability to escape wildcard characters in escape() and quote()
- added setTransactionIsolation()
- added savepoint support to beginTransaction(), commit() and rollback()
- added debug() call at the end of a query/prepare/execute calling (Request #7933)
- added context array parameter to debug() and make use of it whereever sensible
- added optional method name parameter to raiseError() and use whereever possible
- added ability to escape wildcard characters in escape() and quote()
- added debug() call at the end of a query/prepare/execute calling (Request #7933)
- added 'nativetype' output to tableInfo() and getTableFieldDefinition()
- added 'mdb2type' output to getTableFieldDefinition()
- reworked tableInfo() to use a common implementation based on getTableFieldDefinition()
when a table name is passed (Bug #8124)
- fixed incorrect regex in mapNativeDatatype() (Bug #8256) (thx ioz at ionosfera dot com)
- use old dsn when rolling back open transactions in disconnect()</notes>
</release>
<release>
<version>
<release>1.1.0</release>
<api>1.1.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-06-15</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- tweaked handling of free() for prepared statements
- return error if a prepared statement is attempted to be freed twice
- removed use of addslashes() for BLOB quoting
(this might result in SQL injection vulnerability)
- added setCharset()
- use setCharset() in connect()/_doConnect()
- set transaction enabled engine as default
- generalized quoteIdentifier() with a property
- use general implementation of quoteIdentifier() (Bug #7738)
- fixed warning in replace() if type is not set (Bug #7740)
- cosmetic performance tweak in getTableFieldDefinition()
- switched most array_key_exists() calls to !empty() to improve readability and performance
- fixed a few edge cases and potential warnings
- added ability to rewrite queries for query(), exec() and prepare() using a debug handler callback
- pass limit and offset to the result object constructor in _execute() for read statements
- check if result/connection has not yet been freed/dicsonnected before
attempting to free a result set(Bug #7790)
- fixed unbuffered query support
- revert change that would prefer 'clob' over 'text' for TEXT fields
(this was breaking runtime instrospection)</notes>
</release>
<release>
<version>
<release>1.0.3</release>
<api>1.0.3</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-05-22</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- fixed unsigned handling and minor tweaks to type mapping in mapNativeDatatype()
- use emulated prepared statements on mysql 4.0 or lower
- added &quot;emulate_prepared&quot; option to force prepared statement emulation</notes>
</release>
<release>
<version>
<release>1.0.2</release>
<api>1.0.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-05-14</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- optimized listTables() and listViews()
- optimized show related queries
- merged in some features and fixes from the mysql driver
- explicitly set is_manip parameter to false for transaction debug calls
- pass parameter array as debug() all with scope &quot;parameters&quot; in every execute()
call (bug #4119)
- silently change name of primary key contraints to PRIMARY
- added ability to hint that a constraint is a primary key in dropConstraint()
- typo fixes in phpdoc (thx Stoyan)
- added support for fixed and variable types for 'text' in declarations,
as well as in reverse engineering (Request #1523)
- made _doQuery() return a reference
- added userinfo's to all raiseError calls that previously had none
- use native prepared queries for prepared SELECT statements
- only use native prepared queries of mysql 4.1 or higher
- added 'prepared_statements' supported meta data setting
- fixed issue with free() returning void
- added missing supported parameter to prepare() signature</notes>
</release>
<release>
<version>
<release>1.0.1</release>
<api>1.0.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-04-16</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- fixed length handling in tableInfo() (bug #6887)
- aligned _modifyQuery() signature and phpdoc
- added support for tabe options in createTable() (bug ##7079)
- added optional database parameter to listTables() and listSequences()
- added 'result_introspection' supported metadata support
- properly quote table names in tableInfo() (related to bug #6573)
- use connected_server_info in getServerVersion() as a cache cache
- use parent::disconnect() in disconnect()
- added support for length in integer reverse engineering
- some fixes regarding boolean reverse engineering
- added listViews() and hide views in listTables()
open todo item:
- use native prepared queries for prepared SELECT statements</notes>
</release>
<release>
<version>
<release>1.0.0</release>
<api>1.0.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<date>2006-02-09</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- handle null as resource when disable_query option is enabled in result object
open todo item:
- use native prepared queries for prepared SELECT statements</notes>
</release>
<release>
<version>
<release>0.2.4</release>
<api>0.2.4</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2006-02-05</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- typo fix in getTableConstraintDefinition() (bug #6487)
- added support for length in integer and decimal columns
- removed ugly hack for quote parameter in quote() since it was insufficient
(escaping also needs to be prevented)
- added support for out of order parameter binding in prepared queries
- reset row_limit and row_offset after calling prepare() just like we do for query() and exec()
- cosmetic fix (removed &quot;row_&quot; prefix from &quot;row_limit&quot; and &quot;row_offset&quot;)
- now using TINYINT(1) by default instead of CHAR(1) for the boolean datatype (BC BREAK!)
- typo fix in error message in createTable()
- improved parsing in getServerInfo() (bug #6550)
- fixed subselect emulation
- support an arbitrary number of arguments in concat()
open todo item:
- use native prepared queries for prepared SELECT statements</notes>
</release>
<release>
<version>
<release>0.2.3</release>
<api>0.2.3</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2006-01-13</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- explicitly pass if the module is phptype specific in all loadModule calls (bug #6226)
- properly handle PRIMARY keys in listTableConstraints()
- apply _isIndexName() on non primary keys in getTableConstraintDefinition()
- initial implementation of multi_query option (bug #6418)
- added error handling in prepare()
- use multi_query option in executeStoredProc() (bug #6418)
- fixed signature of quoteIdentifier() to make second param optional
- fixed signature of executeStoredProc()
- typo fixes in error handling of nextResult() and numRows() calls
- added @ in front of a few more mysqli calls
- _fixIndexName() now just attempts to remove possible formatting
- renamed _isSequenceName() to _fixSequenceName()
- _fixSequenceName() now just attempts to remove possible formatting, and only
returns a boolean if no formatting was applied when the new &quot;check&quot; parameter is set to true
open todo item:
- use native prepared queries for prepared SELECT statements</notes>
</release>
<release>
<version>
<release>0.2.2</release>
<api>0.2.2</api>
</version>
<stability>
<release>beta</release>
<api>beta</api>
</stability>
<date>2005-12-30</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- moved state to beta
- fixed typo in sub select detection
open todo item:
- use native prepared queries for prepared SELECT statements</notes>
</release>
<release>
<version>
<release>0.2.1</release>
<api>0.2.1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2005-12-28</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- use emulated prepared queries for non manip prepared queries
- proper quote new table name in alterTable()
open todo item:
- use native prepared queries for prepared SELECT statements</notes>
</release>
<release>
<version>
<release>0.2.0</release>
<api>0.2.0</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2005-12-21</date>
<license uri="http://www.example.com">BSD License</license>
<notes>- do not fix case in listUsers()
- unified case fixing in the list*() methods
- fixed change and rename in alterTable()
- primary key must be called primary
- use getConnection() to access connection property
- split index and constraint handling
- quote identifiers where possible inside the manager methods depending on
the new 'quote_identifier' option (defaults to off)
- refactored get*Declaration() methods to use getTypeDeclaration()
- setting in_transaction to false on disconnect
- hide constraints from indexes and vice versa in the list methods
- added new Function modules to handle difference in SQL functions
- force rollback() with open transactions on disconnect
- fixed table renaming
- escape floats to make sure they do not contain evil characters (bug #5608)
- do not check with === if ssl is enabled
- fixed LOB handling
- support column length in create index (mysql only feature, but a nice touch,
emulating it with substring is not feasible though)
- split off manipulation queries into exec() method from the query() method *BC BREAK*
- if result_types is set to false in prepare() method the query will be handled as a DML statement *BC BREAK*
- use a proper default value if a field is set to not null in _getDeclaration*() (bug #5930)
- added ability to determine unsigned in mapNativeDatatype()
(only really implemented in the mysql(i) drivers) (bug #6054)
- use MDB2_ERROR_NOT_FOUND in getTableConstraintDefinition() and getTableIndexDefinition() (bug #6055)
- use lastInsertID() method in nextID()
- added getServerVersion() and use it to determine sub select support
- unified array structure in mapNativeDatatype() *BC BREAK*
- added 'mdbtype' to tableInfo() output that is generated from mapNativeDatatype()
- changed 'len' to 'length' in tableInfo() output *BC BREAK*</notes>
</release>
<release>
<version>
<release>0.1.1</release>
<api>0.1.1</api>
</version>
<stability>
<release>alpha</release>
<api>alpha</api>
</stability>
<date>2005-10-10</date>
<license uri="http://www.example.com">BSD License</license>
<notes>Warning: this release features numerous BC breaks!
There have been considerable improvements to the datatype, manager and reverse
modules. Furthermore preliminary support for auto increment and primary keys
has been added. Please note that making a field auto increment implies a single
column primary key on this field.
- added support for auto increment and primary key in schema.
- alterTable now needs the full definition to work (use getTableFieldDefinition
from Reverse module if you do not have a definition at hand) this eliminates the need
of the declaration part in the alterTable array.
- removed support for dummy_primary_key
- fix PHP4.4 breakage
- moved getInsertID() into core as lastInsertID()
- all non LOB values were quoted twice in execute()
- clobs only need to be mapped to binary when using mysqli_stmt_send_long_data()
which is handled independently
- use !empty() instead of isset() in fetchRow to determine if result cols were bound or result types were set
- expect keys in type arrays the same way as they are passed for the values in execute() and bindParamArray()
- add s pattern modifier to preg_replace() call for parameter searches in prepare() (bug #5362)
- moved all private fetch mode fix methods into _fixResultArrayValues() for performance reasons
- renamed MDB2_PORTABILITY_LOWERCASE to MDB2_PORTABILITY_FIX_CASE and use 'field_case' option to determine if to upper- or lowercase (CASE_LOWER/CASE_UPPER)
- count() -&gt; !empty() where possible
- use array_map() instead of array_flip(array_change_key_case(array_flip())) to fix case of array values
- use array_key_exists() instead of isset() where possible
- changed structure of field add/remove/change in alterTable() to match MDB2_Schema
- removed subSelect() implementation (now in already included in common)
- return 0 for manipulation queries when disable_query is enabled
- tweaked getTableFieldDefinition() in reverse module
open todo items:
- fixed LOB support</notes>
</release>
</changelog>
</phprelease>
</package>
<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0RC4" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>PEAR</name>
<channel>pear.php.net</channel>
<summary>PEAR Base System</summary>
<description>The PEAR package contains:
* the PEAR installer, for creating, distributing
and installing packages
* the PEAR_Exception PHP5 error handling mechanism
* the PEAR_ErrorStack advanced error handling mechanism
* the PEAR_Error error handling mechanism
* the OS_Guess class for retrieving info about the OS
where PHP is running on
* the System class for quick handling of common operations
with files and directories
* the PEAR base class
Features in a nutshell:
* full support for channels
* pre-download dependency validation
* new package.xml 2.0 format allows tremendous flexibility while maintaining BC
* support for optional dependency groups and limited support for sub-packaging
* robust dependency support
* full dependency validation on uninstall
* remote install for hosts with only ftp access - no more problems with
restricted host installation
* full support for mirroring
* support for bundling several packages into a single tarball
* support for static dependencies on a url-based package
* support for custom file roles and installation tasks</description>
<lead>
<name>Greg Beaver</name>
<user>cellog</user>
<email>cellog@php.net</email>
<active>no</active>
</lead>
<lead>
<name>Pierre-Alain Joye</name>
<user>pajoye</user>
<email>pierre@php.net</email>
<active>no</active>
</lead>
<lead>
<name>Stig Bakken</name>
<user>ssb</user>
<email>stig@php.net</email>
<active>no</active>
</lead>
<lead>
<name>Tomas V.V.Cox</name>
<user>cox</user>
<email>cox@idecnet.com</email>
<active>no</active>
</lead>
<lead>
<name>Helgi Thormar</name>
<user>dufuz</user>
<email>dufuz@php.net</email>
<active>yes</active>
</lead>
<developer>
<name>Tias Guns</name>
<user>tias</user>
<email>tias@php.net</email>
<active>yes</active>
</developer>
<helper>
<name>Tim Jackson</name>
<user>timj</user>
<email>timj@php.net</email>
<active>no</active>
</helper>
<helper>
<name>Bertrand Gugger</name>
<user>toggg</user>
<email>toggg@php.net</email>
<active>no</active>
</helper>
<helper>
<name>Martin Jansen</name>
<user>mj</user>
<email>mj@php.net</email>
<active>no</active>
</helper>
<date>2010-05-04</date>
<time>08:41:39</time>
<version>
<release>1.9.0</release>
<api>1.9.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* Fix Bug #16547: The phar for PEAR installer uses ereg() which is deprecated [dufuz]
</notes>
<contents>
<dir name="/">
<file md5sum="acd010e3bc43c0f72df584acde7b9158" name="template.spec" role="data"/>
<file md5sum="8bf4cfb58d10d72b5082c3022c887710" name="System.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file baseinstalldir="/" md5sum="320849b646e4cdaeca543af666524e73" name="scripts/peclcmd.php" role="php">
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config"/>
<tasks:replace from="@php_dir@" to="php_dir" type="pear-config"/>
<tasks:replace from="@pear_version@" to="version" type="package-info"/>
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
</file>
<file baseinstalldir="/" md5sum="d00c55f2aa48052c25db271e044e7551" name="scripts/pecl.sh" role="script">
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config"/>
<tasks:replace from="@php_dir@" to="php_dir" type="pear-config"/>
<tasks:replace from="@pear_version@" to="version" type="package-info"/>
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
<tasks:unixeol/>
</file>
<file baseinstalldir="/" md5sum="34c1cb834dd1c03c9e40998b201d52e0" name="scripts/pecl.bat" role="script">
<tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config"/>
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config"/>
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
<tasks:windowseol/>
</file>
<file baseinstalldir="/" md5sum="c69b7eb6cf9198ef8f03a19dcb57ca42" name="scripts/peardev.sh" role="script">
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config"/>
<tasks:replace from="@php_dir@" to="php_dir" type="pear-config"/>
<tasks:replace from="@pear_version@" to="version" type="package-info"/>
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
<tasks:unixeol/>
</file>
<file baseinstalldir="/" md5sum="92cafd038c7d6a212111c84ca4907a13" name="scripts/peardev.bat" role="script">
<tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config"/>
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config"/>
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
<tasks:windowseol/>
</file>
<file baseinstalldir="/" md5sum="55426bdbfd8e1bc050a79e3c6095d8e5" name="scripts/pearcmd.php" role="php">
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config"/>
<tasks:replace from="@php_dir@" to="php_dir" type="pear-config"/>
<tasks:replace from="@pear_version@" to="version" type="package-info"/>
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
</file>
<file baseinstalldir="/" md5sum="5b495a3de3c6092bfbd93806937a0e4e" name="scripts/pear.sh" role="script">
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config"/>
<tasks:replace from="@php_dir@" to="php_dir" type="pear-config"/>
<tasks:replace from="@pear_version@" to="version" type="package-info"/>
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
<tasks:unixeol/>
</file>
<file baseinstalldir="/" md5sum="bd65b087b7707463525e9f0092337793" name="scripts/pear.bat" role="script">
<tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config"/>
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config"/>
<tasks:replace from="@include_path@" to="php_dir" type="pear-config"/>
<tasks:windowseol/>
</file>
<file md5sum="d3b517006b304817731eb77cc2154258" name="README" role="doc"/>
<file md5sum="1a8f67d58009372a6cbcddd638b128cf" name="PEAR5.php" role="php"/>
<file md5sum="c6de49d413a1cf97a1f8a4668766e3ab" name="PEAR/XMLParser.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="a18f1a10bb85cc988f7c2de9914c1e9f" name="PEAR/Validator/PECL.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="c5ea781c8abb14ff62b04b6db5e10e0f" name="PEAR/Validate.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="a5545cfac22a53d0aad99f4acdbee50c" name="PEAR/Task/Windowseol/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="33bc10b55f7c90425054024b42d0e944" name="PEAR/Task/Windowseol.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="0787e483b91cb6842b9cfedbb486aabf" name="PEAR/Task/Unixeol/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="85ee9fd0fa58d4aef2161d5ac5d9b539" name="PEAR/Task/Unixeol.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="d4f525ae7d94c48662d45769643abada" name="PEAR/Task/Replace/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="0fecedc2f99e5f010b327650c353e4db" name="PEAR/Task/Replace.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="bff16b5498aa831d106061ebbaba484c" name="PEAR/Task/Postinstallscript/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="34d4c4f16734388faca7e418ab206f68" name="PEAR/Task/Postinstallscript.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="e61537de629cb2f7f7e1bc497038902e" name="PEAR/Task/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="34a0d9008da01b3987a610d94837a80c" name="PEAR/RunTest.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="897908bf87ac9ae617a0a42e13f8e0cd" name="PEAR/REST/13.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="41f230e5d3282221e6b55466cb0510d3" name="PEAR/REST/11.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="b0b343c594552895492692d52561bc52" name="PEAR/REST/10.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="28e5f3b905280051309e65d3e85d0b15" name="PEAR/REST.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="a58437db39d3d71bb93f44a660334720" name="PEAR/Registry.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="821b72d18cbdc2e8b9c5087bc9b99854" name="PEAR/Packager.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="cf2b5655d9accc025e5cf5f0476302a8" name="PEAR/PackageFile/v2/Validator.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="9a159d7f8e70bf9f57f9ade64dd5e377" name="PEAR/PackageFile/v2/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="7026083ae0b038045dc117d68dc32a0a" name="PEAR/PackageFile/v2.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="7736b857a1153b02453d42dd476d6f8a" name="PEAR/PackageFile/v1.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="a5f847fdba24116593efc223425a9609" name="PEAR/PackageFile/Parser/v2.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="7d3828c0f41aadc34d948f5215c4cd66" name="PEAR/PackageFile/Parser/v1.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="f7ed15b3d6d1aab0b6f8ee2fe0d9d3db" name="PEAR/PackageFile/Generator/v2.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info"/>
</file>
<file md5sum="cd8b1ef4c311e0e4f5a00e5e36d48d43" name="PEAR/PackageFile/Generator/v1.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info"/>
</file>
<file md5sum="df9c5cc34b6fbbf661d534cecb315c9f" name="PEAR/PackageFile.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info"/>
</file>
<file md5sum="7641e71c5785bb33a4261ebe25ed0fd7" name="PEAR/Installer/Role/Www.xml" role="php"/>
<file md5sum="8ab36d60bc9eb361885d7d901b107c0c" name="PEAR/Installer/Role/Www.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="a24b596ec987aa5688fc19e8ed4e97ea" name="PEAR/Installer/Role/Test.xml" role="php"/>
<file md5sum="5601a755c633dafb639a8fbd1abe0261" name="PEAR/Installer/Role/Test.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="e147d63f168ea156fc2be38caaa63804" name="PEAR/Installer/Role/Src.xml" role="php"/>
<file md5sum="656ad25a2fa1a13f53aad6121edfba91" name="PEAR/Installer/Role/Src.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="746461dc3b48af6d24094cb0211608f2" name="PEAR/Installer/Role/Script.xml" role="php"/>
<file md5sum="eb20ad9051db4db53a1c30e9f1b0dab5" name="PEAR/Installer/Role/Script.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="ef88f0321d3e481c2130c95122cf76d8" name="PEAR/Installer/Role/Php.xml" role="php"/>
<file md5sum="9e4a34e2a332b704417590cb734ffc93" name="PEAR/Installer/Role/Php.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="af71c0ad42d16a323afe24a4f884ef15" name="PEAR/Installer/Role/Ext.xml" role="php"/>
<file md5sum="b3c70e10e63273ef1f2e5cd0a2bd33e8" name="PEAR/Installer/Role/Ext.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="b1ce0fe105251c3b75209d6518ee69ac" name="PEAR/Installer/Role/Doc.xml" role="php"/>
<file md5sum="5c0b53e95ae25306da82cf6dd87da4dc" name="PEAR/Installer/Role/Doc.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="89a4a2a286e842d45a98974f40a0565c" name="PEAR/Installer/Role/Data.xml" role="php"/>
<file md5sum="2cb74a7dd5fdfce5b78717e1847d463c" name="PEAR/Installer/Role/Data.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="d3c3a546ced9a12889eda5e368583944" name="PEAR/Installer/Role/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="d8c62e6275e3aaa7784290912406092c" name="PEAR/Installer/Role/Cfg.xml" role="php"/>
<file md5sum="a3bb43296f00bd5459a0fbf8314f8917" name="PEAR/Installer/Role/Cfg.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="0dab463a3402a0401616c7a1630bebcb" name="PEAR/Installer/Role.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="45f4c064607a7d3d4f68b0f06f98db5c" name="PEAR/Installer.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="e613fdf2c8090bf8f7289dbeaa06a97c" name="PEAR/Frontend/CLI.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="52c3acdba716110657f7bf86ca2012e1" name="PEAR/Frontend.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="e0e4cbcec4a972fbad779d0f9d323120" name="PEAR/FixPHP5PEARWarnings.php" role="php"/>
<file md5sum="f364e75223744d460a6bb08420ac94f9" name="PEAR/Exception.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="33ce30b4478cdb76e29bd75058c842e3" name="PEAR/ErrorStack.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="73a70ef0ac6d521fcbc972de10341bbe" name="PEAR/Downloader/Package.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info"/>
</file>
<file md5sum="2185eb7a493f863ea3d3510195e7c901" name="PEAR/Downloader.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="c161acaf73f7938ea48b3165d891998b" name="PEAR/DependencyDB.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="b0d1ee5d0acd02ca9351e076f73cc9da" name="PEAR/Dependency2.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info"/>
</file>
<file md5sum="5080a36f685fcef9b160617e8cb02870" name="PEAR/Config.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="7c0ff45e0ee9df0ddbaa9b8c4c31b2fd" name="PEAR/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="a50c32015005e0761cc3b04679b29ed0" name="PEAR/Command/Test.xml" role="php"/>
<file md5sum="01252c8d6c005f53f250344bb4453a59" name="PEAR/Command/Test.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="29c02e823879b4e3e291f6b36fb339f1" name="PEAR/Command/Remote.xml" role="php"/>
<file md5sum="374366b6f361c401ae22edc5b76b7a90" name="PEAR/Command/Remote.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="49b046cfc14747f0365e02e9c3f0e6dc" name="PEAR/Command/Registry.xml" role="php"/>
<file md5sum="567687617b7f406bd1ba55e37060edf8" name="PEAR/Command/Registry.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="28dc842ea725d8787b9f9c3dbca5aa22" name="PEAR/Command/Pickle.xml" role="php"/>
<file md5sum="6a794c2a0545fff7300217dd6e133c17" name="PEAR/Command/Pickle.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="6c3061a594644e49b0648798dce6de32" name="PEAR/Command/Package.xml" role="php"/>
<file md5sum="2d4e5f5200fdbdbb5f1c2bf0a27ab754" name="PEAR/Command/Package.php" role="php">
<tasks:replace from="@DATA-DIR@" to="data_dir" type="pear-config"/>
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="5cb62a04c0a268f4edd64a49a3895c92" name="PEAR/Command/Mirror.xml" role="php"/>
<file md5sum="8bc9265e1046ec67a85571557515bb1b" name="PEAR/Command/Mirror.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="2db0386b865d3f9a29f9126728722ece" name="PEAR/Command/Install.xml" role="php"/>
<file md5sum="034593b2194bf8feb689722833e1c9b0" name="PEAR/Command/Install.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="91f189cb9423b5e87ee0abc5ea1a2be3" name="PEAR/Command/Config.xml" role="php"/>
<file md5sum="f0c106b4ba5e12236c59b161b75f4182" name="PEAR/Command/Config.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="dc4961036d632859bb1bda5e32a8c346" name="PEAR/Command/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="6d5aab4d4308c3005b5f584c7783a031" name="PEAR/Command/Channels.xml" role="php"/>
<file md5sum="63a395cf6c752e8121e1fa2ae1f9ac28" name="PEAR/Command/Channels.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="73602fd7f051eaf8d37452d0e3063bdb" name="PEAR/Command/Build.xml" role="php"/>
<file md5sum="99e6dae6555a272f16f1cf2265d221c0" name="PEAR/Command/Build.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="8fd87e64002e11fd86eb2f3fbfee6599" name="PEAR/Command/Auth.xml" role="php"/>
<file md5sum="7d3f1696902faf5442059393e541ad2d" name="PEAR/Command/Auth.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="150c15a2fb2fd57166ca8276e29cb74b" name="PEAR/Command.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="e839d4a327219441507bd5de7409ee5b" name="PEAR/ChannelFile/Parser.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="f9d18b3c198a2a0f0771036c6b0404f7" name="PEAR/ChannelFile.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="d9d3b94e0d1bf2f2c377a5cd8201481c" name="PEAR/Builder.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info"/>
</file>
<file md5sum="b6d6b167ca1514d0765533d4abafca1d" name="PEAR/Autoloader.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="4e4941a59ed97ca61c93deb6a7ff918c" name="PEAR.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="4a49bc83a392934e57af45c70a589fda" name="package.dtd" role="data"/>
<file md5sum="f063d5b84d03538b85f05cde9aae8037" name="OS/Guess.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info"/>
</file>
<file md5sum="45b44486d8090de17b2a8b4211fab247" name="LICENSE" role="doc"/>
<file md5sum="45b1a9dcc368539cb8f2a65c30b2f453" name="INSTALL" role="doc"/>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>4.4.0</min>
<exclude>5.0</exclude>
<exclude>5.1.0</exclude>
<exclude>5.1.1</exclude>
<exclude>5.1.2</exclude>
<exclude>5.1.3</exclude>
<exclude>5.1.4</exclude>
<exclude>5.1.5</exclude>
</php>
<pearinstaller>
<min>1.4.3</min>
</pearinstaller>
<package>
<name>Archive_Tar</name>
<channel>pear.php.net</channel>
<min>1.1</min>
<recommended>1.3.3</recommended>
<exclude>1.3.0</exclude>
</package>
<package>
<name>Structures_Graph</name>
<channel>pear.php.net</channel>
<min>1.0.2</min>
<recommended>1.0.2</recommended>
</package>
<package>
<name>Console_Getopt</name>
<channel>pear.php.net</channel>
<min>1.2</min>
<recommended>1.2.3</recommended>
</package>
<package>
<name>XML_Util</name>
<channel>pear.php.net</channel>
<min>1.2.0</min>
<recommended>1.2.1</recommended>
</package>
<package>
<name>PEAR_Frontend_Web</name>
<channel>pear.php.net</channel>
<max>0.4</max>
<conflicts/>
</package>
<package>
<name>PEAR_Frontend_Gtk</name>
<channel>pear.php.net</channel>
<max>0.4.0</max>
<exclude>0.4.0</exclude>
<conflicts/>
</package>
<extension>
<name>xml</name>
</extension>
<extension>
<name>pcre</name>
</extension>
</required>
<group hint="PEAR's web-based installer" name="webinstaller">
<package>
<name>PEAR_Frontend_Web</name>
<channel>pear.php.net</channel>
<min>0.5.1</min>
</package>
</group>
<group hint="PEAR's PHP-GTK-based installer" name="gtkinstaller">
<package>
<name>PEAR_Frontend_Gtk</name>
<channel>pear.php.net</channel>
<min>0.4.0</min>
</package>
</group>
<group hint="PEAR's PHP-GTK2-based installer" name="gtk2installer">
<package>
<name>PEAR_Frontend_Gtk2</name>
<channel>pear.php.net</channel>
</package>
</group>
</dependencies>
<phprelease>
<installconditions>
<os>
<name>windows</name>
</os>
</installconditions>
<filelist>
<install as="pear.bat" name="scripts/pear.bat"/>
<install as="pearcmd.php" name="scripts/pearcmd.php"/>
<install as="peardev.bat" name="scripts/peardev.bat"/>
<install as="pecl.bat" name="scripts/pecl.bat"/>
<install as="peclcmd.php" name="scripts/peclcmd.php"/>
<ignore name="scripts/pear.sh"/>
<ignore name="scripts/peardev.sh"/>
<ignore name="scripts/pecl.sh"/>
</filelist>
</phprelease>
<phprelease>
<filelist>
<install as="pear" name="scripts/pear.sh"/>
<install as="pearcmd.php" name="scripts/pearcmd.php"/>
<install as="peardev" name="scripts/peardev.sh"/>
<install as="pecl" name="scripts/pecl.sh"/>
<install as="peclcmd.php" name="scripts/peclcmd.php"/>
<ignore name="scripts/pear.bat"/>
<ignore name="scripts/peardev.bat"/>
<ignore name="scripts/pecl.bat"/>
</filelist>
</phprelease>
<changelog>
<release>
<version>
<release>1.8.0alpha1</release>
<api>1.8.0</api>
</version>
<stability>
<release>alpha</release>
<api>stable</api>
</stability>
<date>2009-03-09</date>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* Implement Request #10373: if pref_state=stable and installed package=beta, allow up to latest beta version [dufuz]
* Implement Request #10581: login / logout should map to channel-login / channel-logout [dufuz]
* Implement Request #10825: Only display the &quot;invalid or missing package file&quot;-error if it makes sense [dufuz]
* Implement Request #11170: script to generate Command/[command].xml [dufuz]
* Implement Request #11176: improve channel ... has updated its protocols message [dufuz]
* Implement Request #12706: pear list -a hard to read [dufuz]
* Implement Request #11353: upgrade-all and upgrade commands to upgrade within the same stability level [dufuz]
* Implement Request #13015: Add https discovery for channel.xml [dufuz / initial patch by Martin Roos]
* Implement Request #13927: install-pear.php should have option to set www_dir [timj]
* Implement Request #14324: Make the pear install command behave similar to apt-get [dufuz]
* Implement Request #14325: make pear upgrade with no params behave like pear upgrade-all [dufuz]
- upgrade-all can be considered deprecated in favor of calling upgrade with no parameters to replicate
better what other package managers are doing. upgrade-all will still work as intended.
* Implement Request #14504: add a channel parameter support to the upgrade function [dufuz]
- Options -c ezc and --channel=ezc got added to upgrade and upgrade-all to allow for
channel specific upgrades
* Implement Request #14556: install-pear-nozlib.phar should get download_dir config and other options [cweiske]
* Implement Request #15566: Add doc.php.net as a default channel [dufuz / saltybeagle]
* Fix PHP Bug #43857: --program-suffix not always reflected everywhere [cellog]
* Fix PHP Bug #47323: strotime warnings in make install [dufuz]
* Fix Bug #13908: pear info command and maintainers inactive not mentioned [dufuz]
* Fix Bug #13926: install-pear.php does not set cfg_dir if -d option set with no -c option [timj]
* Fix Bug #13943: tests fail when php.exe path contains spaces [dufuz / jorrit]
* Fix Bug #13953: config-set/config-show with channel alias fail [cellog]
* Fix Bug #13958: When a phpt tests exit() or die() xdebug coverage is not generated, patch by izi (David Jean Louis) [izi / dufuz]
* Fix Bug #14041: Unpredictable unit test processing sequence [dufuz]
* Fix Bug #14140: Strict warning not suppressed in the shutdown function [dufuz]
* Fix Bug #14210: pear list -ia brings warnings [dufuz]
* Fix Bug #14274: PEAR packager mangles package.xml encoding, then complains about it [dufuz]
* Fix Bug #14287: cannot upgrade from stable to beta via -beta when config is set to stable [dufuz]
* Fix Bug #14300: Package files themselves can not be served over https [dufuz / initial patch by Martin Roos]
* Fix Bug #14437: openbasedir warning when loading config [dufuz]
* Fix Bug #14558: PackageFile.php creates tmp directory outside configured temp_dir [cweiske]
* Fix Bug #14947: downloadHttp() is missing Host part of the HTTP Request when using Proxy [ifeghali]
* Fix Bug #14977: PEAR/Frontend.php doesn't require_once PEAR.php [dufuz]
* Fix Bug #15750: Unreachable code in PEAR_Downloader [dufuz]
* Fix Bug #15979: Package files incorrectly removed when splitting a package into multiple pkgs [dufuz]
* Fix Bug #15914: pear upgrade installs different version if desired version not found [dufuz]
NOTE!
Functions that have been deprecated for 3+ years in PEAR_Common, please take a moment
to migrate over to one of the alternatives that have ben provided:
* PEAR_Common-&gt;downloadHttp (use PEAR_Downloader-&gt;downloadHttp instead)
* PEAR_Common-&gt;infoFromTgzFile (use PEAR_PackageFile-&gt;fromTgzFile instead)
* PEAR_Common-&gt;infoFromDescriptionFile (use PEAR_PackageFile-&gt;fromPackageFile instead)
* PEAR_Common-&gt;infoFromString (use PEAR_PackageFile-&gt;fromXmlstring instead)
* PEAR_Common-&gt;infoFromArray (use PEAR_PackageFile-&gt;fromAnyFile instead)
* PEAR_Common-&gt;xmlFromInfo (use a PEAR_PackageFile_v* object's generator instead)
* PEAR_Common-&gt;validatePackageInfo (use the validation of PEAR_PackageFile objects)
* PEAR_Common-&gt;analyzeSourceCode (use a PEAR_PackageFile_v* object instead)
* PEAR_Common-&gt;detectDependencies (use PEAR_Downloader_Package-&gt;detectDependencies instead)
* PEAR_Common-&gt;buildProvidesArray (use PEAR_PackageFile_v1-&gt;_buildProvidesArray or
PEAR_PackageFile_v2_Validator-&gt;_buildProvidesArray)
PHP 4.4 and 5.1.6 are now the minimum PHP requirements, for brave souls
pear upgrade -f PEAR will allow people with lower versions
to upgrade to this release but no guarantees will be made that it will work properly.
Support for XML RPC channels has been dropped - The only ones that used it
(pear.php.net and pecl.php.net) have used the REST interface for years now.
SOAP support also removed as it was only proof of concept.
Move codebase from the PHP License to New BSD 2 clause license
</notes>
</release>
<release>
<date>2009-03-27</date>
<version>
<release>1.8.0RC1</release>
<api>1.8.0</api>
</version>
<stability>
<release>beta</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* Fix Bug #14331: pear cvstag only works from inside the package directory [dufuz]
* Fix Bug #16045: E_Notice: Undefined index: channel in PEAR/DependencyDB.php [dufuz]
* Implemented Request #11230: better error message when mirror not in channel.xml file [dufuz]
* Implemented Request #13150: Add support for following HTTP 302 redirects [dufuz]
</notes>
</release>
<release>
<date>2009-04-10</date>
<version>
<release>1.8.0</release>
<api>1.8.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
Changes since RC1:
* Fix Bug #14792: Bad md5sum for files with replaced content [dufuz]
* Fix Bug #16057:-r is limited to 4 directories in depth [dufuz]
* Fix Bug #16077: PEAR5::getStaticProperty does not return a reference to the property [dufuz]
Remove custom XML_Util class in favor of using upstream XML_Util package as dependency
RC1 Release Notes:
* Fix Bug #14331: pear cvstag only works from inside the package directory [dufuz]
* Fix Bug #16045: E_Notice: Undefined index: channel in PEAR/DependencyDB.php [dufuz]
* Implemented Request #11230: better error message when mirror not in channel.xml file [dufuz]
* Implemented Request #13150: Add support for following HTTP 302 redirects [dufuz]
Alpha1 Release Notes:
* Implement Request #10373: if pref_state=stable and installed package=beta, allow up to latest beta version [dufuz]
* Implement Request #10581: login / logout should map to channel-login / channel-logout [dufuz]
* Implement Request #10825: Only display the &quot;invalid or missing package file&quot;-error if it makes sense [dufuz]
* Implement Request #11170: script to generate Command/[command].xml [dufuz]
* Implement Request #11176: improve channel ... has updated its protocols message [dufuz]
* Implement Request #12706: pear list -a hard to read [dufuz]
* Implement Request #11353: upgrade-all and upgrade commands to upgrade within the same stability level [dufuz]
* Implement Request #13015: Add https discovery for channel.xml [dufuz / initial patch by Martin Roos]
* Implement Request #13927: install-pear.php should have option to set www_dir [timj]
* Implement Request #14324: Make the pear install command behave similar to apt-get [dufuz]
* Implement Request #14325: make pear upgrade with no params behave like pear upgrade-all [dufuz]
- upgrade-all can be considered deprecated in favor of calling upgrade with no parameters to replicate
better what other package managers are doing. upgrade-all will still work as intended.
* Implement Request #14504: add a channel parameter support to the upgrade function [dufuz]
- Options -c ezc and --channel=ezc got added to upgrade and upgrade-all to allow for
channel specific upgrades
* Implement Request #14556: install-pear-nozlib.phar should get download_dir config and other options [cweiske]
* Implement Request #15566: Add doc.php.net as a default channel [dufuz / saltybeagle]
* Fix PHP Bug #43857: --program-suffix not always reflected everywhere [cellog]
* Fix PHP Bug #47323: strotime warnings in make install [dufuz]
* Fix Bug #13908: pear info command and maintainers inactive not mentioned [dufuz]
* Fix Bug #13926: install-pear.php does not set cfg_dir if -d option set with no -c option [timj]
* Fix Bug #13943: tests fail when php.exe path contains spaces [dufuz / jorrit]
* Fix Bug #13953: config-set/config-show with channel alias fail [cellog]
* Fix Bug #13958: When a phpt tests exit() or die() xdebug coverage is not generated, patch by izi (David Jean Louis) [izi / dufuz]
* Fix Bug #14041: Unpredictable unit test processing sequence [dufuz]
* Fix Bug #14140: Strict warning not suppressed in the shutdown function [dufuz]
* Fix Bug #14210: pear list -ia brings warnings [dufuz]
* Fix Bug #14274: PEAR packager mangles package.xml encoding, then complains about it [dufuz]
* Fix Bug #14287: cannot upgrade from stable to beta via -beta when config is set to stable [dufuz]
* Fix Bug #14300: Package files themselves can not be served over https [dufuz / initial patch by Martin Roos]
* Fix Bug #14437: openbasedir warning when loading config [dufuz]
* Fix Bug #14558: PackageFile.php creates tmp directory outside configured temp_dir [cweiske]
* Fix Bug #14947: downloadHttp() is missing Host part of the HTTP Request when using Proxy [ifeghali]
* Fix Bug #14977: PEAR/Frontend.php doesn't require_once PEAR.php [dufuz]
* Fix Bug #15750: Unreachable code in PEAR_Downloader [dufuz]
* Fix Bug #15979: Package files incorrectly removed when splitting a package into multiple pkgs [dufuz]
* Fix Bug #15914: pear upgrade installs different version if desired version not found [dufuz]
NOTE!
Functions that have been deprecated for 3+ years in PEAR_Common, please take a moment
to migrate over to one of the alternatives that have ben provided:
* PEAR_Common-&gt;downloadHttp (use PEAR_Downloader-&gt;downloadHttp instead)
* PEAR_Common-&gt;infoFromTgzFile (use PEAR_PackageFile-&gt;fromTgzFile instead)
* PEAR_Common-&gt;infoFromDescriptionFile (use PEAR_PackageFile-&gt;fromPackageFile instead)
* PEAR_Common-&gt;infoFromString (use PEAR_PackageFile-&gt;fromXmlstring instead)
* PEAR_Common-&gt;infoFromArray (use PEAR_PackageFile-&gt;fromAnyFile instead)
* PEAR_Common-&gt;xmlFromInfo (use a PEAR_PackageFile_v* object's generator instead)
* PEAR_Common-&gt;validatePackageInfo (use the validation of PEAR_PackageFile objects)
* PEAR_Common-&gt;analyzeSourceCode (use a PEAR_PackageFile_v* object instead)
* PEAR_Common-&gt;detectDependencies (use PEAR_Downloader_Package-&gt;detectDependencies instead)
* PEAR_Common-&gt;buildProvidesArray (use PEAR_PackageFile_v1-&gt;_buildProvidesArray or
PEAR_PackageFile_v2_Validator-&gt;_buildProvidesArray)
PHP 4.4 and 5.1.6 are now the minimum PHP requirements, for brave souls
pear upgrade -f PEAR will allow people with lower versions
to upgrade to this release but no guarantees will be made that it will work properly.
Support for XML RPC channels has been dropped - The only ones that used it
(pear.php.net and pecl.php.net) have used the REST interface for years now.
SOAP support also removed as it was only proof of concept.
Move codebase from the PHP License to New BSD 2 clause license
</notes>
</release>
<release>
<date>2009-04-15</date>
<version>
<release>1.8.1</release>
<api>1.8.1</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* Fix Bug #16099 PEAR crash on PHP4 (parse error) [dufuz]
</notes>
</release>
<release>
<date>2009-08-18</date>
<version>
<release>1.9.0RC1</release>
<api>1.9.0RC1</api>
</version>
<stability>
<release>beta</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* Implement Request #16213: add alias to list-channels output [dufuz]
* Implement Request #16378: pear svntag [dufuz]
* Implement Request #16386: PEAR_Config::remove() does not support specifying a channel [timj]
* Implement Request #16396: package-dependencies should allow package names [dufuz]
* Fix Bug #11181: pear requests channel.xml from main server instead from mirror [dufuz]
* Fix Bug #14493: pear install --offline doesn't print out errors [dufuz]
* Fix Bug #11348: pear package-dependencies isn't well explained [dufuz]
* Fix Bug #16108: PEAR_PackageFile_Generator_v2 PHP4 parse error when running upgrade-all [dufuz]
* Fix Bug #16113: Installing certain packages fails due incorrect encoding handling [dufuz]
* Fix Bug #16122: PEAR RunTest failed to run as expected [dufuz]
* Fix Bug #16366: compiling 5.2.10 leads to non-functioning pear [dufuz]
* Fix Bug #16387: channel-logout does not support logging out from a non-default channel [timj]
* Fix Bug #16444: Setting preferred mirror fails [dufuz]
* Fix the shutdown functions where a index might not exist and thus raise a notice [derick]
</notes>
</release>
<release>
<date>2009-08-20</date>
<version>
<release>1.9.0RC2</release>
<api>1.9.0RC2</api>
</version>
<stability>
<release>beta</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* REST 1.4 file was occasionally being included but REST 1.4 is not intended for this release cycle [dufuz]
</notes>
</release>
<release>
<date>2009-08-21</date>
<version>
<release>1.9.0RC3</release>
<api>1.9.0RC3</api>
</version>
<stability>
<release>beta</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* Improved svntag support to handle packages like PEAR it self [dufuz]
</notes>
</release>
<release>
<date>2009-08-23</date>
<version>
<release>1.9.0RC4</release>
<api>1.9.0RC4</api>
</version>
<stability>
<release>beta</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* Fixed a problem where the original channel could not be set as a preferred_mirror again [dufuz]
* Make sure channel aliases can't be made to start with - [dufuz]
* Output issues with pear search [dufuz]
* Fixed couple of stray notices [dufuz]
</notes>
</release>
<release>
<date>2009-09-03</date>
<version>
<release>1.9.0</release>
<api>1.9.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://opensource.org/licenses/bsd-license.php">New BSD License</license>
<notes>
* Fix Bug #16547: The phar for PEAR installer uses ereg() which is deprecated [dufuz]
</notes>
</release>
</changelog>
</package>