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
The Log package provides an abstracted logging framework. It includes output handlers for log files, databases, syslog, email, Firebug, and the console. It also provides composite and subject-observer logging mechanisms.
The Log Package
Debugging PHP With Firebug
Advanced Logging in PHP with PEAR
LiveUser is a set of classes for dealing with user authentication
and permission management. Basically, there are three main elements that make up this package:
- The LiveUser class
- The Auth containers
- The Perm containers
The LiveUser class takes care of the login process and can be configured to use a certain permission container and one or more different auth containers.
That means, you can have your users’ data scattered amongst many data containers and have the LiveUser class try each defined container until the user is found.
For example, you can have all website users who can apply for a new account online on the webserver’s local database. Also, you want to enable all your company’s employees to login to the site without the need to create new accounts for all of them. To achieve that, a second container can be defined to be used by the LiveUser class.
You can also define a permission container of your choice that will manage the rights for each user. Depending on the container, you can implement any kind of permission schemes for your application while having one consistent API.
Using different permission and auth containers, it’s easily possible to integrate newly written applications with older ones that have their own ways of storing permissions and user data. Just make a new container type and you’re ready to go!
This class provides an easy way to retrieve all the strings for a multilingual site from a data source (i.e. db).
The following containers are provided, more will follow:
- PEAR::DB_DataObject (experimental)
It is designed to reduce the number of queries to the db, caching the results when possible.
An Admin class is provided to easily manage translations (add/remove a language, add/remove a string).
Currently, the following decorators are provided:
- CacheLiteFunction (for file-based caching)
- CacheMemory (for memory-based caching)
- DefaultText (to replace empty strings with their keys)
- ErrorText (to replace empty strings with a custom error text)
- Iconv (to switch from/to different encodings)
- Lang (resort to fallback languages for empty strings)
- SpecialChars (replace html entities with their hex codes)
- UTF-8 (to convert UTF-8 strings to ISO-8859-1)
Package to validate various data. It includes :
- numbers (min/max, decimal or not)
- email (syntax, domain check, rfc822)
- string (predefined type alpha upper and/or lowercase, numeric,…)
- date (min, max, rfc822 compliant)
- uri (RFC2396)
- possibility valid multiple data with a single method call (::multiple)
Spreadsheet_Excel_Writer was born as a porting of the Spreadsheet::WriteExcel Perl module to PHP.
It allows writing of Excel spreadsheets without the need for COM objects.
It supports formulas, images (BMP) and all kinds of formatting for text and cells.
It currently supports the BIFF5 format (Excel 5.0), so functionality appeared in the latest Excel versions is not yet available.
Generating Spreadsheets with PHP and PEAR
What is Spreadsheet_Excel_Writer?
This library makes it very easy to use, writing simple code, yet the library is very powerful.
It lets you easily read or generate tar, gz, tgz, bz2, tbz, zip, ar (or deb) archives to files, memory, mail or standard output.
SitePoint » File_Archive
XML_Serializer serializes complex data structures like arrays or object as XML documents.
This class helps you generating any XML document you require without the need for DOM.
Furthermore this package can be used as a replacement to serialize() and unserialize() as it comes with a matching
XML_Unserializer that is able to create PHP data structures (like arrays and objects) from XML documents, if type hints are available.
If you use the XML_Unserializer on standard XML files, it will try to guess how it has to be unserialized. In most cases it does exactly what you expect it to do.