讨论一下大家使用Pear的程度
对于PHP来说,pear 可能是PHP的最好的工具箱了, 我想找几位朋友一起研究,讨论一下.大家可以把自己的使用经验发上了!!![[i] 本帖最后由 七月十五 于 2008-11-8 11:53 编辑 [/i]]
很
很少用. 还没用。。。 我用里面的DB类 哦,还有时用http,smtp类 我也还没用过。想学习一下。 压根不用 不用……
DB类我喜欢用vbb的db_mysql,很好用。其他的基本都没用…… 我用里面的DB类 db.php 基本上不用.. PHP Extension and Application Repository
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Short description for file
*
* Long description for file (if any)...
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* [url]http://www.php.net/license/3_0.txt.[/url] If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to [email]license@php.net[/email] so we can mail you a copy immediately.
*
* @category CategoryName
* @package PackageName
* @author Original Author <[email]author@example.com[/email]>
* @author Another Author <[email]another@example.com[/email]>
* @copyright 1997-2005 The PHP Group
* @license [url]http://www.php.net/license/3_0.txt[/url] PHP License 3.0
* @version CVS: $Id:$
* @link [url]http://pear.php.net/package/PackageName[/url]
* @see NetOther, Net_Sample::Net_Sample()
* @since File available since Release 1.2.0
* @deprecated File deprecated in Release 2.0.0
*/
/**
* This is a "Docblock Comment," also known as a "docblock." The class'
* docblock, below, contains a complete description of how to write these.
*/
require_once 'PEAR.php';
// {{{ constants
/**
* Methods return this if they succeed
*/
define('NET_SAMPLE_OK', 1);
// }}}
// {{{ GLOBALS
/**
* The number of objects created
* @global int $GLOBALS['NET_SAMPLE_Count']
*/
$GLOBALS['NET_SAMPLE_Count'] = 0;
// }}}
// {{{ Net_Sample
/**
* An example of how to write code to PEAR's standards
*
* Docblock comments start with "/**" at the top. Notice how the "/"
* lines up with the normal indenting and the asterisks on subsequent rows
* are in line with the first asterisk. The last line of comment text
* should be immediately followed on the next line by the closing asterisk
* and slash and then the item you are commenting on should be on the next
* line below that. Don't add extra lines. Please put a blank line
* between paragraphs as well as between the end of the description and
* the start of the @tags. Wrap comments before 80 columns in order to
* ease readability for a wide variety of users.
*
* Docblocks can only be used for programming constructs which allow them
* (classes, properties, methods, defines, includes, globals). See the
* phpDocumentor documentation for more information.
* [url]http://phpdoc.org/docs/HTMLSmartyConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html[/url]
*
* The Javadoc Style Guide is an excellent resource for figuring out
* how to say what needs to be said in docblock comments. Much of what is
* written here is a summary of what is found there, though there are some
* cases where what's said here overrides what is said there.
* [url]http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#styleguide[/url]
*
* The first line of any docblock is the summary. Make them one short
* sentence, without a period at the end. Summaries for classes, properties
* and constants should omit the subject and simply state the object,
* because they are describing things rather than actions or behaviors.
*
* Below are the tags commonly used for classes. @category through @access
* are required. The remainder should only be used when necessary.
* Please use them in the order they appear here. phpDocumentor has
* several other tags available, feel free to use them.
*
* @category CategoryName
* @package PackageName
* @author Original Author <[email]author@example.com[/email]>
* @author Another Author <[email]another@example.com[/email]>
* @copyright 1997-2005 The PHP Group
* @license [url]http://www.php.net/license/3_0.txt[/url] PHP License 3.0
* @version Release: @package_version@
* @link [url]http://pear.php.net/package/PackageName[/url]
* @see NetOther, Net_Sample::Net_Sample()
* @since Class available since Release 1.2.0
* @deprecated Class deprecated in Release 2.0.0
*/
class Net_Sample
{
// {{{ properties
/**
* The status of foo's universe
*
* Potential values are 'good', 'fair', 'poor' and 'unknown'.
*
* @var string
*/
var $foo = 'unknown';
/**
* The status of life
*
* Note that names of private properties or methods must be
* preceeded by an underscore.
*
* @var bool
* @access private
*/
var $_good = true;
// }}}
// {{{ setFoo()
/**
* Registers the status of foo's universe
*
* Summaries for methods should use 3rd person declarative rather
* than 2nd person imperative, begining with a verb phrase.
*
* Summaries should add description beyond the method's name. The
* best method names are "self-documenting", meaning they tell you
* basically what the method does. If the summary merely repeats
* the method name in sentence form, it is not providing more
* information.
*
* Summary Examples:
* + Sets the label (preferred)
* + Set the label (avoid)
* + This method sets the label (avoid)
*
* Below are the tags commonly used for methods. A @param tag is
* required for each parameter the method has. The @return and
* @access tags are mandatory. The @throws tag is required if the
* method uses exceptions. @static is required if the method can
* be called statically. The remainder should only be used when
* necessary. Please use them in the order they appear here.
* phpDocumentor has several other tags available, feel free to use
* them.
*
* The @param tag contains the data type, then the parameter's
* name, followed by a description. By convention, the first noun in
* the description is the data type of the parameter. Articles like
* "a", "an", and "the" can precede the noun. The descriptions
* should start with a phrase. If further description is necessary,
* follow with sentences. Having two spaces between the name and the
* description aids readability.
*
* When writing a phrase, do not capitalize and do not end with a
* period:
* + the string to be tested
*
* When writing a phrase followed by a sentence, do not capitalize the
* phrase, but end it with a period to distinguish it from the start
* of the next sentence:
* + the string to be tested. Must use UTF-8 encoding.
*
* Return tags should contain the data type then a description of
* the data returned. The data type can be any of PHP's data types
* (int, float, bool, string, array, object, resource, mixed)
* and should contain the type primarily returned. For example, if
* a method returns an object when things work correctly but false
* when an error happens, say 'object' rather than 'mixed.' Use
* 'void' if nothing is returned.
*
* Here's an example of how to format examples:
* <code>
* require_once 'Net/Sample.php';
*
* $s = new Net_Sample();
* if (PEAR::isError($s)) {
* echo $s->getMessage() . "\n";
* }
* </code>
*
* Here is an example for non-php example or sample:
* <samp>
* pear install net_sample
* </samp>
*
* @param string $arg1 the string to quote
* @param int $arg2 an integer of how many problems happened.
* Indent to the description's starting point
* for long ones.
*
* @return int the integer of the set mode used. FALSE if foo
* foo could not be set.
* @throws exceptionclass [description]
*
* @access public
* @static
* @see Net_Sample::$foo, Net_Other::someMethod()
* @since Method available since Release 1.2.0
* @deprecated Method deprecated in Release 2.0.0
*/
function setFoo($arg1, $arg2 = 0)
{
/*
* This is a "Block Comment." The format is the same as
* Docblock Comments except there is only one asterisk at the
* top. phpDocumentor doesn't parse these.
*/
if ($arg1 == 'good' || $arg1 == 'fair') {
$this->foo = $arg1;
return 1;
} elseif ($arg1 == 'poor' && $arg2 > 1) {
$this->foo = 'poor';
return 2;
} else {
return false;
}
}
// }}}
}
// }}}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?> pear::DB
DB
Table of Contents
Introduction - DSN -- The Data Source Name
Introduction - Connect -- Connecting and disconnecting a database
Introduction - Query -- Performing queries
Introduction - Results -- Obtaining data from query results
Introduction - Prepare & Execute -- Prepare and execute SQL statements
Introduction - autoPrepare & autoExecute -- Automatically prepare and execute SQL statements
Introduction - Portability -- Database portability features
Introduction - Sequences -- Sequences and auto-incrementing
DB -- Main class
DB::connect() -- Connects to a database
DB::isError() -- Determines if a variable is a DB_Error object
DB_common -- Interface for database access
DB_common::affectedRows() -- Finds number of rows affected by a data changing query
DB_common::autoCommit() -- Turns auto-commit on or off
DB_common::autoExecute() -- Prepares and runs an INSERT or UPDATE query based on variables you supply
DB_common::autoPrepare() -- Prepares an INSERT or UPDATE statement based on variables you supply
DB_common::commit() -- Commits the current transaction
DB_common::createSequence() -- Creates a new sequence
DB_common::disconnect() -- Disconnects from a database
DB_common::dropSequence() -- Deletes a sequence
DB_common::escapeSimple() -- Escapes a string according to the current DBMS's standards
DB_common::execute() -- Executes a prepared SQL statment
DB_common::executeMultiple() -- Runs a prepared SQL statment for each element of an array
DB_common::freePrepared() -- Releases resources associated with a prepared SQL statement
DB_common::getAll() -- Runs a query and returns all the data as an array
DB_common::getAssoc() -- Runs a query and returns the data as an array
DB_common::getCol() -- Runs a query and returns the data from a single column
DB_common::getListOf() -- Views database system information
DB_common::getOne() -- Runs a query and returns the first column of the first row
DB_common::getOption() -- Determines current state of a PEAR DB configuration option
DB_common::getRow() -- Runs a query and returns the first row
DB_common::limitQuery() -- Sends a LIMIT query to the database
DB_common::nextId() -- Returns the next number from a sequence
DB_common::prepare() -- Prepares a SQL statement for later execution
DB_common::provides() -- Checks if the DBMS supports a particular feature
DB_common::query() -- Sends a query to the database
DB_common::quote() -- DEPRECATED: Quotes a string
DB_common::quoteIdentifier() -- Formats a string so it can be safely used as an identifier
DB_common::quoteSmart() -- Formats input so it can be safely used as a literal
DB_common::rollback() -- Rolls back the current transaction
DB_common::setFetchMode() -- Sets the default fetch mode
DB_common::setOption() -- Sets run-time configuration options for PEAR DB
DB_common::tableInfo() -- Gets info about columns in a table or a query result
DB_result -- DB result set
DB_result::fetchInto() -- Fetches a row of a result set into a variable
DB_result::fetchRow() -- Fetches a row from a result set
DB_result::free() -- Releases a result set
DB_result::nextResult() -- Gets result sets from multiple queries
DB_result::numCols() -- Gets number of columns in a result set
DB_result::numRows() -- Gets number of rows in a result set
DB_Error -- DB Error object 晕你发的是什么啊? 很想用,但看着e文头大,只好作罢 推荐大家多用PEAR,可以大大加快开发速度。
我常用的PEAR类库大概有:
Benchmark
Cache_Lite
DB
DB_DataObject
HTTP_Request
HTTP_Client
HTML_QuickForm
LiveUser
Net_POP3
Text_CAPTCHA
PHPDoc
PHP_Beautifier
Mail_Mime
Text_Password 不知道是干什么的,没有用过。 根本就没有用过
,.
基本上都在用里边的DB... 大家找时间多研究PEAR吧,相信对大家或多或少的都有用.我保证
