# php_manual

id: SplObjectStorage::getInfo
type: function
doc:
<comment>Description:</comment>
  Returns the data associated with the current iterator entry
  
  Returns the data, or info, associated with the object pointed by the current iterator position.

<comment>Return:</comment>
  <info>mixed</info>  The data associated with the current iterator position.

<comment>See Also:</comment>
   * SplObjectStorage::current
   * SplObjectStorage::rewind
   * SplObjectStorage::key
   * SplObjectStorage::next
   * SplObjectStorage::valid
   * SplObjectStorage::setInfo


id: SplObjectStorage::key
type: function
doc:
<comment>Description:</comment>
  Returns the index at which the iterator currently is
  
  Returns the index at which the iterator currently is.

<comment>Return:</comment>
  <info>int</info>  The index corresponding to the position of the iterator.

<comment>See Also:</comment>
   * SplObjectStorage::rewind
   * SplObjectStorage::current
   * SplObjectStorage::next
   * SplObjectStorage::valid


id: SplObjectStorage::next
type: function
doc:
<comment>Description:</comment>
  Move to the next entry
  
  Moves the iterator to the next <info>object</info> in the storage.

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * SPLObjectStorage::rewind


id: SplObjectStorage::offsetExists
type: function
doc:
<comment>Description:</comment>
  Checks whether an object exists in the storage
  
  Checks whether an <info>object</info> exists in the storage.
  
  SplObjectStorage::offsetExists is an alias of SplObjectStorage::contains.

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  The <info>object</info> to look for.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the <info>object</info> exists in the storage, and <info>false</info> otherwise.

<comment>See Also:</comment>
   * SplObjectStorage::offsetSet
   * SplObjectStorage::offsetGet
   * SplObjectStorage::offsetUnset


id: SplObjectStorage::offsetGet
type: function
doc:
<comment>Description:</comment>
  Returns the data associated with an object
  
  Returns the data associated with an <info>object</info> in the storage.

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  The <info>object</info> to look for.

<comment>Return:</comment>
  <info>mixed</info>  The data previously associated with the <info>object</info> in the storage.

<comment>See Also:</comment>
   * SplObjectStorage::offsetSet
   * SplObjectStorage::offsetExists
   * SplObjectStorage::offsetUnset


id: SplObjectStorage::offsetSet
type: function
doc:
<comment>Description:</comment>
  Associates data to an object in the storage
  
  Associate data to an <info>object</info> in the storage.
  
  SplObjectStorage::offsetSet is an alias of SplObjectStorage::attach.

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  The <info>object</info> to associate data with.
  <info>mixed</info>   <strong>$info</strong>    The data to associate with the <info>object</info>.

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * SplObjectStorage::attach
   * SplObjectStorage::offsetGet
   * SplObjectStorage::offsetExists
   * SplObjectStorage::offsetUnset


id: SplObjectStorage::offsetUnset
type: function
doc:
<comment>Description:</comment>
  Removes an object from the storage
  
  Removes an <info>object</info> from the storage.
  
  SplObjectStorage::offsetUnset is an alias of SplObjectStorage::detach.

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  The <info>object</info> to remove.

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * SplObjectStorage::offsetGet
   * SplObjectStorage::offsetSet
   * SplObjectStorage::offsetExists


id: SplObjectStorage::removeAll
type: function
doc:
<comment>Description:</comment>
  Removes objects contained in another storage from the current storage
  
  Removes objects contained in another storage from the current storage.

<comment>Param:</comment>
  <info>SplObjectStorage</info>  <strong>$storage</strong>  The storage containing the elements to remove.

<comment>Return:</comment>
  <info>int</info>  Returns the number of remaining objects.

<comment>See Also:</comment>
   * SplObjectStorage::addAll


id: SplObjectStorage::removeAllExcept
type: function
doc:
<comment>Description:</comment>
  Removes all objects except for those contained in another storage from the current storage
  
  Removes all objects except for those contained in another storage from the current storage.

<comment>Param:</comment>
  <info>SplObjectStorage</info>  <strong>$storage</strong>  The storage containing the elements to retain in the current storage.

<comment>Return:</comment>
  <info>int</info>  Returns the number of remaining objects.


id: SplObjectStorage::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the iterator to the first storage element
  
  Rewind the iterator to the first storage element.

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * SplObjectStorage::next


id: SplObjectStorage::serialize
type: function
doc:
<comment>Description:</comment>
  Serializes the storage
  
  Returns a string representation of the storage.

<comment>Return:</comment>
  <info>string</info>  A string representing the storage.

<comment>See Also:</comment>
   * SplObjectStorage::unserialize


id: SplObjectStorage::setInfo
type: function
doc:
<comment>Description:</comment>
  Sets the data associated with the current iterator entry
  
  Associates data, or info, with the object currently pointed to by the iterator.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$info</strong>  The data to associate with the current iterator entry.

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * SplObjectStorage::current
   * SplObjectStorage::rewind
   * SplObjectStorage::key
   * SplObjectStorage::next
   * SplObjectStorage::valid
   * SplObjectStorage::getInfo


id: SplObjectStorage::unserialize
type: function
doc:
<comment>Description:</comment>
  Unserializes a storage from its string representation
  
  Unserializes storage entries and attach them to the current storage.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The serialized representation of a storage.

<comment>Return:</comment>
  <info>void</info>  没有返回值。

<comment>See Also:</comment>
   * SplObjectStorage::serialize


id: SplObjectStorage::valid
type: function
doc:
<comment>Description:</comment>
  Returns if the current iterator entry is valid
  
  Returns if the current iterator entry is valid.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the iterator entry is valid, <info>false</info> otherwise.

<comment>See Also:</comment>
   * SplObjectStorage::current
   * SplObjectStorage::getInfo


id: SplObserver
type: class
doc:
<comment>Description:</comment>
  The <class>SplObserver</class> interface is used alongside <class>SplSubject</class> to implement the Observer Design Pattern.


id: SplObserver::update
type: function
doc:
<comment>Description:</comment>
  Receive update from subject
  
  This method is called when any <class>SplSubject</class> to which the observer is attached calls
  SplSubject::notify.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>SplSubject</info>  <strong>$subject</strong>  The <class>SplSubject</class> notifying the observer of an update.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: SplPriorityQueue
type: class
doc:
<comment>Description:</comment>
  The SplPriorityQueue class provides the main functionalities of a  prioritized queue, implemented
  using a max heap.
  
  The order of elements with identical priority is undefined. It may differ from the order in which
  they have been inserted.


id: SplPriorityQueue::compare
type: function
doc:
<comment>Description:</comment>
  Compare priorities in order to place elements correctly in the heap while sifting up
  
  Compare <strong>$priority1</strong> with <strong>$priority2</strong>.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$priority1</strong>  The priority of the first node being compared.
  <info>mixed</info>  <strong>$priority2</strong>  The priority of the second node being compared.

<comment>Return:</comment>
  <info>int</info>  Result of the comparison, positive integer if <strong>$priority1</strong> is greater than <strong>$priority2</strong>, 0 if
       they are equal, negative integer otherwise.
       
       Multiple elements with the same priority will get dequeued in no particular order.


id: SplPriorityQueue::count
type: function
doc:
<comment>Description:</comment>
  Counts the number of elements in the queue

<comment>Return:</comment>
  <info>int</info>  Returns the number of elements in the queue.


id: SplPriorityQueue::current
type: function
doc:
<comment>Description:</comment>
  Return current node pointed by the iterator
  
  Get the current datastructure node.

<comment>Return:</comment>
  <info>mixed</info>  The value or priority (or both) of the current node, depending on the extract flag.


id: SplPriorityQueue::extract
type: function
doc:
<comment>Description:</comment>
  Extracts a node from top of the heap and sift up

<comment>Return:</comment>
  <info>mixed</info>  The value or priority (or both) of the extracted node, depending on the extract flag.


id: SplPriorityQueue::getExtractFlags
type: function
doc:
<comment>Description:</comment>
  Get the flags of extraction
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  Returns the flags of extraction.


id: SplPriorityQueue::insert
type: function
doc:
<comment>Description:</comment>
  Inserts an element in the queue by sifting it up
  
  Insert <strong>$value</strong> with the priority <strong>$priority</strong> in the queue.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>     The value to insert.
  <info>mixed</info>  <strong>$priority</strong>  The associated priority.

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。


id: SplPriorityQueue::isCorrupted
type: function
doc:
<comment>Description:</comment>
  Tells if the priority queue is in a corrupted state

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the priority queue is corrupted, <info>false</info> otherwise.


id: SplPriorityQueue::isEmpty
type: function
doc:
<comment>Description:</comment>
  Checks whether the queue is empty

<comment>Return:</comment>
  <info>bool</info>  Returns whether the queue is empty.


id: SplPriorityQueue::next
type: function
doc:
<comment>Description:</comment>
  Move to the next node
  
  Extracts the top node from the queue.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: SplPriorityQueue::recoverFromCorruption
type: function
doc:
<comment>Description:</comment>
  Recover from the corrupted state and allow further actions on the queue

<comment>Return:</comment>
  <info>bool</info>  Always returns <info>true</info>.


id: SplPriorityQueue::setExtractFlags
type: function
doc:
<comment>Description:</comment>
  Sets the mode of extraction

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  Defines what is extracted by SplPriorityQueue::current, SplPriorityQueue::top and
               SplPriorityQueue::extract.
               
               <info>SplPriorityQueue::EXTR_DATA</info> (0x00000001): Extract the data
               
               <info>SplPriorityQueue::EXTR_PRIORITY</info> (0x00000002): Extract the priority
               
               <info>SplPriorityQueue::EXTR_BOTH</info> (0x00000003): Extract an array containing both
               
               The default mode is <info>SplPriorityQueue::EXTR_DATA</info>.

<comment>Return:</comment>
  <info>int</info>  Returns the flags of extraction.


id: SplPriorityQueue::top
type: function
doc:
<comment>Description:</comment>
  Peeks at the node from the top of the queue

<comment>Return:</comment>
  <info>mixed</info>  The value or priority (or both) of the top node, depending on the extract flag.


id: SplPriorityQueue::valid
type: function
doc:
<comment>Description:</comment>
  Check whether the queue contains more nodes
  
  Checks if the queue contains any more nodes.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if the queue contains any more nodes, <info>false</info> otherwise.


id: SplQueue
type: class
doc:
<comment>Description:</comment>
  SplQueue 类的主要功能是通过将迭代模式设置为 <info>SplDoublyLinkedList::IT_MODE_FIFO</info> 来提供使用双向链表实
  现的队列。


id: SplQueue::dequeue
type: function
doc:
<comment>Description:</comment>
  Dequeues a node from the queue
  
  Dequeues <strong>$value</strong> from the top of the queue.
  
  SplQueue::dequeue is an alias of SplDoublyLinkedList::shift.

<comment>Return:</comment>
  <info>mixed</info>  The value of the dequeued node.


id: SplQueue::enqueue
type: function
doc:
<comment>Description:</comment>
  Adds an element to the queue
  
  Enqueues <strong>$value</strong> at the end of the queue.
  
  SplQueue::enqueue is an alias of SplDoublyLinkedList::push.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$value</strong>  The value to enqueue.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: SplStack
type: class
doc:
<comment>Description:</comment>
  SplStack 类的主要功能是通过将迭代模式设置为 <info>SplDoublyLinkedList::IT_MODE_LIFO</info> 来提供使用双向链表实
  现的栈。


id: SplSubject
type: class
doc:
<comment>Description:</comment>
  The <class>SplSubject</class> interface is used alongside <class>SplObserver</class> to implement the Observer Design Pattern.


id: SplSubject::attach
type: function
doc:
<comment>Description:</comment>
  Attach an SplObserver
  
  Attaches an <class>SplObserver</class> so that it can be notified of updates.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>SplObserver</info>  <strong>$observer</strong>  The <class>SplObserver</class> to attach.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: SplSubject::detach
type: function
doc:
<comment>Description:</comment>
  Detach an observer
  
  Detaches an observer from the subject to no longer notify it of updates.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>SplObserver</info>  <strong>$observer</strong>  The <class>SplObserver</class> to detach.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: SplSubject::notify
type: function
doc:
<comment>Description:</comment>
  Notify an observer
  
  Notifies all attached observers.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: SplTempFileObject
type: class
doc:
<comment>Description:</comment>
  The SplTempFileObject class offers an object-oriented interface for a temporary file.


id: SplTempFileObject::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new temporary file object
  
  Construct a new temporary file object.

<comment>Param:</comment>
  <info>int</info>  <strong>$maxMemory</strong>  The maximum amount of memory (in bytes, default is 2 MB) for  the temporary file
                   to use. If the temporary file exceeds this  size, it will be moved to a file in
                   the system's temp directory.
                   
                   If <strong>$maxMemory</strong> is negative, only memory will be used. If <strong>$maxMemory</strong> is zero,  no
                   memory will be used.

<comment>See Also:</comment>
   * <class>SplFileObject</class>
   * PHP input/output streams 
     (for <return>php://temp</return> and <return>php://memory</return>)
    


id: Spoofchecker
type: class
doc:
<comment>Description:</comment>
  This class is provided because Unicode contains large number of characters and incorporates the
  varied writing systems of the world and their incorrect usage can expose programs or systems to
  possible security attacks using characters similarity.
  
  Provided methods allow to check whether an individual string is likely an attempt at confusing the
  reader (<return>spoof detection</return>), such as  "pаypаl" spelled with Cyrillic 'а' characters.


id: Spoofchecker::areConfusable
type: function
doc:
<comment>Description:</comment>
  Checks if given strings can be confused
  
  Checks whether two given strings can easily be mistaken.

<comment>Param:</comment>
  <info>string</info>  <strong>$string1</strong>    First string to check.
  <info>string</info>  <strong>$string2</strong>    Second string to check.
  <info>int</info>     <strong>$errorCode</strong>  This variable is set by-reference to <info>int</info> containing an error, if there was
                      any.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if two given strings can be confused, <info>false</info> otherwise.


id: Spoofchecker::isSuspicious
type: function
doc:
<comment>Description:</comment>
  Checks if a given text contains any suspicious characters
  
  Checks if given string contains any suspicious characters like letters which are almost identical
  visually, but are Unicode characters from different sets.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>     String to test.
  <info>int</info>     <strong>$errorCode</strong>  This variable is set by-reference to <info>int</info> containing an error, if there was
                      any.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if there are suspicious characters, <info>false</info> otherwise.


id: Spoofchecker::setAllowedLocales
type: function
doc:
<comment>Description:</comment>
  Locales to use when running checks
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$locales</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Spoofchecker::setChecks
type: function
doc:
<comment>Description:</comment>
  Set the checks to run
  
  Sets the checks that will be performed by SpoofChecker::isSuspicious.

<comment>Param:</comment>
  <info>int</info>  <strong>$checks</strong>  The checks that will be performed by SpoofChecker::isSuspicious. A bitmask of
                <info>Spoofchecker::SINGLE_SCRIPT_CONFUSABLE</info>, <info>Spoofchecker::MIXED_SCRIPT_CONFUSABLE</info>,
                <info>Spoofchecker::WHOLE_SCRIPT_CONFUSABLE</info>, <info>Spoofchecker::ANY_CASE</info>,
                <info>Spoofchecker::SINGLE_SCRIPT</info>, <info>Spoofchecker::INVISIBLE</info>, or <info>Spoofchecker::CHAR_LIMIT</info>.
                Defaults to all checks as of ICU 58; prior to that version,
                <info>Spoofchecker::SINGLE_SCRIPT</info> was excluded.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Spoofchecker::setRestrictionLevel
type: function
doc:
<comment>Description:</comment>
  Set the restriction level
  
  Sets the restriction level of SpoofChecker::isSuspicious.

<comment>Param:</comment>
  <info>int</info>  <strong>$level</strong>  The restriction level of SpoofChecker::isSuspicious. One of <info>Spoofchecker::ASCII</info>,
               <info>Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE</info>, <info>Spoofchecker::HIGHLY_RESTRICTIVE</info>,
               <info>Spoofchecker::MODERATELY_RESTRICTIVE</info>, <info>Spoofchecker::MINIMALLY_RESTRICTIVE</info>, or
               <info>Spoofchecker::UNRESTRICTIVE</info>. Defaults to <info>Spoofchecker::HIGHLY_RESTRICTIVE</info>.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: SqlStatement::bind
type: function
doc:
<comment>Description:</comment>
  Bind statement parameters
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$param</strong>  

<comment>Return:</comment>
  <info>mysql_xdevapi\SqlStatement</info>  


id: SqlStatement::execute
type: function
doc:
<comment>Description:</comment>
  Execute the operation
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  


id: SqlStatement::getNextResult
type: function
doc:
<comment>Description:</comment>
  Get next result
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  


id: SqlStatement::getResult
type: function
doc:
<comment>Description:</comment>
  Get result
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  


id: SqlStatement::hasMoreResults
type: function
doc:
<comment>Description:</comment>
  Check for more results
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the result set has more objects to fetch.


id: SqlStatementResult::fetchAll
type: function
doc:
<comment>Description:</comment>
  Get all rows from result
  
  Fetch all the rows from the result set.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  A numerical array with all results from the query; each result is an associative array. An
         empty array is returned if no rows are present.


id: SqlStatementResult::fetchOne
type: function
doc:
<comment>Description:</comment>
  Get single row
  
  Fetch one row from the result set.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  The result, as an associative array. In case there is not any result, null will be
         returned.


id: SqlStatementResult::getAffectedItemsCount
type: function
doc:
<comment>Description:</comment>
  Get affected row count
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  


id: SqlStatementResult::getColumnNames
type: function
doc:
<comment>Description:</comment>
  Get column names
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  


id: SqlStatementResult::getColumns
type: function
doc:
<comment>Description:</comment>
  Get columns
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>Array</info>  


id: SqlStatementResult::getColumnsCount
type: function
doc:
<comment>Description:</comment>
  Get column count
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  The number of columns; 0 if there are none.


id: SqlStatementResult::getGeneratedIds
type: function
doc:
<comment>Description:</comment>
  Get generated ids
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  An array of generated _id's from the last operation,  or an empty array if there are none.


id: SqlStatementResult::getLastInsertId
type: function
doc:
<comment>Description:</comment>
  Get last insert id
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>String</info>  The ID for the last insert operation.


id: SqlStatementResult::getWarnings
type: function
doc:
<comment>Description:</comment>
  Get warnings from last operation
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  An array of Warning objects from the last operation. Each object defines an error
         'message', error 'level', and error 'code'. An empty array is returned if no errors are
         present.


id: SqlStatementResult::getWarningsCount
type: function
doc:
<comment>Description:</comment>
  Get warning count from last operation
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  The number of warnings raised during the last CRUD operation.


id: SqlStatementResult::hasData
type: function
doc:
<comment>Description:</comment>
  Check if result has data
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the result set has data.


id: SqlStatementResult::nextResult
type: function
doc:
<comment>Description:</comment>
  Get next result
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  The next Result object from the result set.


id: Statement::hasMoreResults
type: function
doc:
<comment>Description:</comment>
  Check if more results
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  


id: Stomp
type: class
doc:
<comment>Description:</comment>
  Represents a connection between PHP and a Stomp compliant Message Broker.


id: Stomp::__construct
type: function
doc:
<comment>Description:</comment>
  打开连接
  
  面向对象风格 (constructor):
  
  过程化风格:
  
  打开兼容 stomp 通讯协议的消息代理服务器的连接。

<comment>Param:</comment>
  <info>string</info>  <strong>$broker</strong>    代理 URI
  <info>string</info>  <strong>$username</strong>  用户名。
  <info>string</info>  <strong>$password</strong>  密码。
  <info>array</info>   <strong>$headers</strong>   关联数组包含附加的头信息（例如： receipt）。

<comment>Return:</comment>
  <info>resource</info>  A transaction header may be specified, indicating that the message acknowledgment should
            be part of the named transaction.


id: Stomp::__destruct
type: function
doc:
<comment>Description:</comment>
  Closes stomp connection
  
  面向对象风格 (destructor):
  
  过程化风格:
  
  Closes a previously opened connection.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>  仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Stomp::abort
type: function
doc:
<comment>Description:</comment>
  Rolls back a transaction in progress
  
  面向对象风格 (method):
  
  过程化风格:
  
  Rolls back a transaction in progress.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>            仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>string</info>    <strong>$transaction_id</strong>  The transaction to abort.
  <info>array</info>     <strong>$headers</strong>         关联数组包含附加的头信息（例如： receipt）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Stomp::ack
type: function
doc:
<comment>Description:</comment>
  Acknowledges consumption of a message
  
  面向对象风格 (method):
  
  过程化风格:
  
  Acknowledges consumption of a message from a subscription using client acknowledgment.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>     仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>mixed</info>     <strong>$msg</strong>      The message/messageId to be acknowledged.
  <info>array</info>     <strong>$headers</strong>  关联数组包含附加的头信息（例如： receipt）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Stomp::begin
type: function
doc:
<comment>Description:</comment>
  Starts a transaction
  
  面向对象风格 (method):
  
  过程化风格:
  
  Starts a transaction.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>            仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>string</info>    <strong>$transaction_id</strong>  The transaction id.
  <info>array</info>     <strong>$headers</strong>         关联数组包含附加的头信息（例如： receipt）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Stomp::commit
type: function
doc:
<comment>Description:</comment>
  Commits a transaction in progress
  
  面向对象风格 (method):
  
  过程化风格:
  
  Commits a transaction in progress.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>            仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>string</info>    <strong>$transaction_id</strong>  The transaction id.
  <info>array</info>     <strong>$headers</strong>         关联数组包含附加的头信息（例如： receipt）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Stomp::error
type: function
doc:
<comment>Description:</comment>
  Gets the last stomp error
  
  面向对象风格 (method):
  
  过程化风格:
  
  Gets the last stomp error.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>  仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。

<comment>Return:</comment>
  <info>string</info>  Returns an error string or <info>false</info> if no error occurred.


id: Stomp::getReadTimeout
type: function
doc:
<comment>Description:</comment>
  Gets read timeout
  
  面向对象风格 (method):
  
  过程化风格:
  
  Gets read timeout

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>  仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。

<comment>Return:</comment>
  <info>array</info>  Returns an array with 2 elements: sec and usec.


id: Stomp::getSessionId
type: function
doc:
<comment>Description:</comment>
  Gets the current stomp session ID
  
  面向对象风格 (method):
  
  过程化风格:
  
  Gets the current stomp session ID.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>  仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。

<comment>Return:</comment>
  <info>string|false</info>  <info>string</info> session id on success 或者在失败时返回 <info>false</info>.


id: Stomp::hasFrame
type: function
doc:
<comment>Description:</comment>
  Indicates whether or not there is a frame ready to read
  
  面向对象风格 (method):
  
  过程化风格:
  
  Indicates whether or not there is a frame ready to read.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>  仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if a frame is ready to read, or <info>false</info> otherwise.


id: Stomp::readFrame
type: function
doc:
<comment>Description:</comment>
  Reads the next frame
  
  面向对象风格 (method):
  
  过程化风格:
  
  Reads the next frame. It is possible to instantiate an object of a specific class, and pass
  parameters to that class's constructor.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>        仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>string</info>    <strong>$class_name</strong>  The name of the class to instantiate. If not specified, a stompFrame object
                         is returned.

<comment>Return:</comment>
  <info>stompframe</info>  A transaction header may be specified, indicating that the message acknowledgment
              should be part of the named transaction.


id: Stomp::send
type: function
doc:
<comment>Description:</comment>
  Sends a message
  
  面向对象风格 (method):
  
  过程化风格:
  
  Sends a message to the Message Broker.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>         仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>string</info>    <strong>$destination</strong>  Where to send the message
  <info>mixed</info>     <strong>$msg</strong>          Message to send.
  <info>array</info>     <strong>$headers</strong>      关联数组包含附加的头信息（例如： receipt）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Stomp::setReadTimeout
type: function
doc:
<comment>Description:</comment>
  Sets read timeout
  
  面向对象风格 (method):
  
  过程化风格:
  
  Sets read timeout.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>          仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>int</info>       <strong>$seconds</strong>       The seconds part of the timeout to be set.
  <info>int</info>       <strong>$microseconds</strong>  The microseconds part of the timeout to be set.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: Stomp::subscribe
type: function
doc:
<comment>Description:</comment>
  Registers to listen to a given destination
  
  面向对象风格 (method):
  
  过程化风格:
  
  Registers to listen to a given destination.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>         仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>string</info>    <strong>$destination</strong>  Destination to subscribe to.
  <info>array</info>     <strong>$headers</strong>      关联数组包含附加的头信息（例如： receipt）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Stomp::unsubscribe
type: function
doc:
<comment>Description:</comment>
  Removes an existing subscription
  
  面向对象风格 (method):
  
  过程化风格:
  
  Removes an existing subscription.

<comment>Param:</comment>
  <info>resource</info>  <strong>$link</strong>         仅对过程化样式：由 <strong>stomp_connect()</strong> 返回的 stomp 连接标识符。
  <info>string</info>    <strong>$destination</strong>  Subscription to remove.
  <info>array</info>     <strong>$headers</strong>      关联数组包含附加的头信息（例如： receipt）。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: StompException
type: class
doc:
<comment>Description:</comment>
  Represents an error raised by the stomp extension. See Exceptions for more information about
  Exceptions in PHP.


id: StompException::getDetails
type: function
doc:
<comment>Description:</comment>
  Get exception details
  
  Get exception details.

<comment>Return:</comment>
  <info>string</info>  <info>string</info> containing the error details.


id: StompFrame
type: class
doc:
<comment>Description:</comment>
  Represents a message which was sent or received from a Stomp compliant Message Broker.


id: StompFrame::__construct
type: function
doc:
<comment>Description:</comment>
  Constructor
  
  Constructor.

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>  Frame command
  <info>array</info>   <strong>$headers</strong>  Frame headers (<info>array</info>).
  <info>string</info>  <strong>$body</strong>     Frame body.


id: Stringable
type: class
doc:
<comment>Description:</comment>
  Stringable 接口表示拥有  __toString() 方法的类。 和大多数接口不同， Stringable 隐式存在于任何定义
  了 __toString() 魔术方法的类上， 当然也可以显式声明它，并且推荐这么做。
  
  它的主要价值是能让函数针对简单的字符串或可以转化为字符串的对象，检测联合类型 <return>string|Stringable</return>。


id: Stringable::__toString
type: function
doc:
<comment>Description:</comment>
  从对象中获取字符串表示

<comment>Return:</comment>
  <info>string</info>  返回对象的 <info>string</info> 表示。

<comment>See Also:</comment>
   * __toString()


id: Swoole\Async::dnsLookup
type: function
doc:
<comment>Description:</comment>
  Async and non-blocking hostname to IP lookup.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>    <strong>$hostname</strong>  The host name.
  <info>callable</info>  <strong>$callback</strong>  The host name.
                       
                       The IP address.
  <info>string</info>    <strong>$hostname</strong>  The host name.
  <info></info>          <strong>$IP</strong>        The IP address.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Async::read
type: function
doc:
<comment>Description:</comment>
  Read file stream asynchronously.

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>    The name of the file.
  <info>callable</info>  <strong>$callback</strong>    The name of the file.
                         
                         The content readed from the file stream.
  <info>string</info>    <strong>$filename</strong>    The name of the file.
  <info>string</info>    <strong>$content</strong>     The content readed from the file stream.
  <info>int</info>       <strong>$chunk_size</strong>  The chunk length.
  <info>int</info>       <strong>$offset</strong>      The offset.

<comment>Return:</comment>
  <info>bool</info>  Whether the read is succeed.


id: Swoole\Async::readFile
type: function
doc:
<comment>Description:</comment>
  Read a file asynchronously.

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>  The filename of the file being read.
  <info>callable</info>  <strong>$callback</strong>  The name of the file.
                       
                       The content readed from the file.
  <info>string</info>    <strong>$filename</strong>  The name of the file.
  <info>string</info>    <strong>$content</strong>   The content readed from the file.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Async::set
type: function
doc:
<comment>Description:</comment>
  Update the async I/O options.

<comment>Param:</comment>
  <info>array</info>  <strong>$settings</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Async::write
type: function
doc:
<comment>Description:</comment>
  Write data to a file stream asynchronously.

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>  The filename being written.
  <info>string</info>    <strong>$content</strong>   The content writing to the file.
  <info>int</info>       <strong>$offset</strong>    The offset.
  <info>callable</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Async::writeFile
type: function
doc:
<comment>Description:</comment>
  Description
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>    <strong>$filename</strong>  The filename being written.
  <info>string</info>    <strong>$content</strong>   The content writing to the file.
  <info>callable</info>  <strong>$callback</strong>  
  <info>string</info>    <strong>$flags</strong>     

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Atomic::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a swoole atomic object.
  
  Swoole atomic object is a integer variable allows any processor to atomically test and modify.  It
  is implemented based on CPU atomic instructions. The Swoole atomic variables have to  defined
  before swoole_server-&gt;start.
  
  Compare-and-swap (CAS) is an atomic instruction used in multithreading to achieve synchronization.
  It compares the content of a memory location with a given value and, only if they are the same,
  modifies the content of that memory location to a new given value.

<comment>Param:</comment>
  <info>int</info>  <strong>$value</strong>  The value of the atomic object.


id: Swoole\Atomic::add
type: function
doc:
<comment>Description:</comment>
  Add a number to the value to the atomic object.
  
  Add a number to the value to the atomic object.

<comment>Param:</comment>
  <info>int</info>  <strong>$add_value</strong>  The value which will be added to the current value.

<comment>Return:</comment>
  <info>int</info>  The new value of the atomic object.


id: Swoole\Atomic::cmpset
type: function
doc:
<comment>Description:</comment>
  Compare and set the value of the atomic object.

<comment>Param:</comment>
  <info>int</info>  <strong>$cmp_value</strong>  The value to compare with the current value of the atomic object.
  <info>int</info>  <strong>$new_value</strong>  The value to set to the atomic object if the cmp_value is the same as the current
                   value of the atomic object.

<comment>Return:</comment>
  <info>int</info>  The new value of the atomic object.


id: Swoole\Atomic::get
type: function
doc:
<comment>Description:</comment>
  Get the current value of the atomic object.
  
  Get the current value of the atomic object.

<comment>Return:</comment>
  <info>int</info>  The current value of the atomic object.


id: Swoole\Atomic::set
type: function
doc:
<comment>Description:</comment>
  Set a new value to the atomic object.
  
  Set a new value to the atomic object.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>  <strong>$value</strong>  The value to set to the atomic object.

<comment>Return:</comment>
  <info>int</info>  The current value of the atomic object.


id: Swoole\Atomic::sub
type: function
doc:
<comment>Description:</comment>
  Subtract a number to the value of the atomic object.
  
  Subtract a number to the value of the atomic object.

<comment>Param:</comment>
  <info>int</info>  <strong>$sub_value</strong>  The value which will be subtracted to the current value.

<comment>Return:</comment>
  <info>int</info>  The current value of the atomic object.


id: Swoole\Buffer::__construct
type: function
doc:
<comment>Description:</comment>
  Fixed size memory blocks allocation.

<comment>Param:</comment>
  <info>int</info>  <strong>$size</strong>  The size of the memory to allocate.


id: Swoole\Buffer::__destruct
type: function
doc:
<comment>Description:</comment>
  Destruct the Swoole memory buffer.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Buffer::__toString
type: function
doc:
<comment>Description:</comment>
  Get the string value of the memory buffer.

<comment>Return:</comment>
  <info>string</info>  The string value of the memory buffer.


id: Swoole\Buffer::append
type: function
doc:
<comment>Description:</comment>
  Append the string or binary data at the end of the memory buffer and return the new size of memory
  allocated.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The string or binary data to append at the end of the memory buffer.

<comment>Return:</comment>
  <info>int</info>  The new size of the memory buffer.


id: Swoole\Buffer::clear
type: function
doc:
<comment>Description:</comment>
  Reset the memory buffer.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Buffer::expand
type: function
doc:
<comment>Description:</comment>
  Expand the size of memory buffer.

<comment>Param:</comment>
  <info>int</info>  <strong>$size</strong>  The new size of the memory buffer.

<comment>Return:</comment>
  <info>int</info>  The new size of the memory buffer.


id: Swoole\Buffer::read
type: function
doc:
<comment>Description:</comment>
  Read data from the memory buffer based on offset and length.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The offset.
  <info>int</info>  <strong>$length</strong>  The length.

<comment>Return:</comment>
  <info>string</info>  The data readed from the memory buffer.


id: Swoole\Buffer::recycle
type: function
doc:
<comment>Description:</comment>
  Release the memory to OS which is not used by the memory buffer.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Buffer::substr
type: function
doc:
<comment>Description:</comment>
  Read data from the memory buffer based on offset and length. Or remove data from the memory
  buffer.
  
  If $remove is set to be true and $offset is set to be 0, the data will be removed from the buffer.
  The memory for storing the data will be released when the buffer object is deconstructed.

<comment>Param:</comment>
  <info>int</info>   <strong>$offset</strong>  The offset.
  <info>int</info>   <strong>$length</strong>  The length.
  <info>bool</info>  <strong>$remove</strong>  Whether to remove the data from the memory buffer.

<comment>Return:</comment>
  <info>string</info>  The data or string readed from the memory buffer.


id: Swoole\Buffer::write
type: function
doc:
<comment>Description:</comment>
  Write data to the memory buffer. The memory allocated for the buffer will not be changed.

<comment>Param:</comment>
  <info>int</info>     <strong>$offset</strong>  The offset.
  <info>string</info>  <strong>$data</strong>    The data to write to the memory buffer.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Channel::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a Swoole Channel
  
  Swoole channel is memory data structure works like Chan in Golang, implemented based on  shared
  memory and mutex locks. It can be used as high performance message queue in memory. Construct a
  swoole channel with a fixed size. The minimum size of a swoole channel is 64KB. Exceptions will be
  thrown if there is not enough memory.

<comment>Param:</comment>
  <info>string</info>  <strong>$size</strong>  The size of the Swoole channel.


id: Swoole\Channel::__destruct
type: function
doc:
<comment>Description:</comment>
  Destruct a Swoole channel.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Channel::pop
type: function
doc:
<comment>Description:</comment>
  Read and pop data from swoole channel.

<comment>Return:</comment>
  <info>mixed</info>  If the channel is empty, the function will return false, or return the unserialized data.


id: Swoole\Channel::push
type: function
doc:
<comment>Description:</comment>
  Write and push data into Swoole channel.
  
  Data can be any non-empty PHP variable, the variable will be serialized if it is not string type.
  
  If size of the data is more than 8KB, swoole channel will use temp files storage.
  
  The function will return true if the write operation is succeeded, or return false if there is not
  enough space.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The data to push into the Swoole channel.

<comment>Return:</comment>
  <info>bool</info>  Wheter the data is pushed into he Swoole channel.


id: Swoole\Channel::stats
type: function
doc:
<comment>Description:</comment>
  Get stats of swoole channel.
  
  Get the numbers of queued elements and total size of the memory used by the queue.

<comment>Return:</comment>
  <info>array</info>  The stats of the Swoole channel.


id: Swoole\Client::__construct
type: function
doc:
<comment>Description:</comment>
  Create Swoole sync or async TCP/UDP client, with or without SSL.

<comment>Param:</comment>
  <info>int</info>  <strong>$sock_type</strong>  The type of socket: SWOOLE_TCP, SWOOLE_UDP, SWOOLE_ASYNC, SWOOLE_SSL,
                   SWOOLE_KEEP.
  <info>int</info>  <strong>$is_async</strong>   Synchronous or asynchronous client.


id: Swoole\Client::__destruct
type: function
doc:
<comment>Description:</comment>
  Destruct the Swoole client.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Client::close
type: function
doc:
<comment>Description:</comment>
  Close the connection established.

<comment>Param:</comment>
  <info>bool</info>  <strong>$force</strong>  Whether force to close the connection.

<comment>Return:</comment>
  <info>bool</info>  Whether the connection is closed.


id: Swoole\Client::connect
type: function
doc:
<comment>Description:</comment>
  Connect to the remote TCP or UDP port.

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>     The host name of the remote address.
  <info>int</info>     <strong>$port</strong>     The port number of the remote address.
  <info>int</info>     <strong>$timeout</strong>  The timeout(second) of connect/send/recv, the dafault value is 0.1s
  <info>int</info>     <strong>$flag</strong>     If the type of client is UDP, the $flag means if to enable the configuration
                    udp_connect.  If the configuration udp_connect is enabled, the client will only
                    receive the data from specified ip:port. If the type of client is TCP and the
                    $flag is set to 1, it must use swoole_client_select to check the connection
                    status before send/recv.

<comment>Return:</comment>
  <info>bool</info>  Whether the connection is established.


id: Swoole\Client::getpeername
type: function
doc:
<comment>Description:</comment>
  Get the remote socket name of the connection.

<comment>Return:</comment>
  <info>array</info>  The host and port of the remote socket.


id: Swoole\Client::getsockname
type: function
doc:
<comment>Description:</comment>
  Get the local socket name of the connection.

<comment>Return:</comment>
  <info>array</info>  The host and port of the local socket.


id: Swoole\Client::isConnected
type: function
doc:
<comment>Description:</comment>
  Check if the connection is established.
  
  This method returns the connection status of application layer.

<comment>Return:</comment>
  <info>bool</info>  Whether the connection is established.


id: Swoole\Client::on
type: function
doc:
<comment>Description:</comment>
  Add callback functions triggered by events.

<comment>Param:</comment>
  <info>string</info>    <strong>$event</strong>     
  <info>callable</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Client::pause
type: function
doc:
<comment>Description:</comment>
  Pause receiving data.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Client::pipe
type: function
doc:
<comment>Description:</comment>
  Redirect the data to another file descriptor.

<comment>Param:</comment>
  <info>string</info>  <strong>$socket</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Client::recv
type: function
doc:
<comment>Description:</comment>
  Receive data from the remote socket.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$size</strong>  
  <info>string</info>  <strong>$flag</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Client::resume
type: function
doc:
<comment>Description:</comment>
  Resume receiving data.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Client::send
type: function
doc:
<comment>Description:</comment>
  Send data to the remote TCP socket.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  The data to send which can be string or binary
  <info>string</info>  <strong>$flag</strong>  

<comment>Return:</comment>
  <info>int</info>  If the client sends data successfully, it returns the length of data sent.  Or it returns
       false and sets $swoole_client-&gt;errCode. For sync client,  there is no limit for the data
       to send. For async client, The limit  for the data to send is socket_buffer_size.


id: Swoole\Client::sendfile
type: function
doc:
<comment>Description:</comment>
  Send file to the remote TCP socket.
  
  This is a wrapper of the Linux sendfile system call.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  File path of the file to send.
  <info>int</info>     <strong>$offset</strong>    Offset of the file to send

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Client::sendto
type: function
doc:
<comment>Description:</comment>
  Send data to the remote UDP address.
  
  The swoole client should be type of SWOOLE_SOCK_UDP or SWOOLE_SOCK_UDP6.

<comment>Param:</comment>
  <info>string</info>  <strong>$ip</strong>    The IP address of remote host, IPv4 or IPv6.
  <info>int</info>     <strong>$port</strong>  The port number of remote host.
  <info>string</info>  <strong>$data</strong>  The data to send which should be less-than 64K.

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Client::set
type: function
doc:
<comment>Description:</comment>
  Set the Swoole client parameters before the connection is established.

<comment>Param:</comment>
  <info>array</info>  <strong>$settings</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Client::sleep
type: function
doc:
<comment>Description:</comment>
  Remove the TCP client from system event loop.
  
  Remove the TCP client from system event loop.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Client::wakeup
type: function
doc:
<comment>Description:</comment>
  Add the TCP client back into the system event loop.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Connection\Iterator::count
type: function
doc:
<comment>Description:</comment>
  Count connections.
  
  Gets the number of connections.

<comment>Return:</comment>
  <info>int</info>  The number of connections.


id: Swoole\Connection\Iterator::current
type: function
doc:
<comment>Description:</comment>
  Return current connection entry.
  
  Get current connection entry.

<comment>Return:</comment>
  <info>Connection</info>  The current connection entry.


id: Swoole\Connection\Iterator::key
type: function
doc:
<comment>Description:</comment>
  Return key of the current connection.
  
  This function returns key of the current connection.

<comment>Return:</comment>
  <info>int</info>  Key of the current connection.


id: Swoole\Connection\Iterator::next
type: function
doc:
<comment>Description:</comment>
  Move to the next connection.
  
  The iterator to the next connection.

<comment>Return:</comment>
  <info>Connection</info>  


id: Swoole\Connection\Iterator::offsetExists
type: function
doc:
<comment>Description:</comment>
  Check if offet exists.
  
  Check if offset exists.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The offset being checked.

<comment>Return:</comment>
  <info>bool</info>  Returns TRUE if the offset exists, otherwise FALSE.


id: Swoole\Connection\Iterator::offsetGet
type: function
doc:
<comment>Description:</comment>
  Offset to retrieve.
  
  Return the connection at specified offset.

<comment>Param:</comment>
  <info>string</info>  <strong>$index</strong>  The offset to retrieve.

<comment>Return:</comment>
  <info>Connection</info>  


id: Swoole\Connection\Iterator::offsetSet
type: function
doc:
<comment>Description:</comment>
  Assign a Connection to the specified offset.
  
  Assign a Connection to the specified offset.

<comment>Param:</comment>
  <info>int</info>    <strong>$offset</strong>      The offset to assign the Connection to.
  <info>mixed</info>  <strong>$connection</strong>  The connection to set.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Connection\Iterator::offsetUnset
type: function
doc:
<comment>Description:</comment>
  Unset an offset.
  
  Unsets an offset.

<comment>Param:</comment>
  <info>int</info>  <strong>$offset</strong>  The offset to unset.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Connection\Iterator::rewind
type: function
doc:
<comment>Description:</comment>
  Rewinds iterator

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Connection\Iterator::valid
type: function
doc:
<comment>Description:</comment>
  Check if current position is valid.
  
  Checks if the current position is valid.

<comment>Return:</comment>
  <info>bool</info>  Returns TRUE if the current iterator position is valid, otherwise FALSE.


id: Swoole\Coroutine::call_user_func
type: function
doc:
<comment>Description:</comment>
  Call a callback given by the first parameter
  
  Calls the <strong>$callback</strong> given by the first parameter and passes the remaining parameters as arguments.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  The <info>callable</info> to be called.
  <info>mixed</info>     <strong>$args</strong>      Zero or more parameters to be passed to the callback.

<comment>Return:</comment>
  <info>mixed</info>  


id: Swoole\Coroutine::call_user_func_array
type: function
doc:
<comment>Description:</comment>
  Call a callback with an array of parameters
  
  Calls the callback given by the first parameter with the parameters in param_array.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>     The <info>callable</info> to be called.
  <info>array</info>     <strong>$param_array</strong>  Zero or more parameters in the array to be passed to the callback.

<comment>Return:</comment>
  <info>mixed</info>  


id: Swoole\Coroutine::cli_wait
type: function
doc:
<comment>Description:</comment>
  Description

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Coroutine::create
type: function
doc:
<comment>Description:</comment>
  Description
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Event::add
type: function
doc:
<comment>Description:</comment>
  Add new callback functions of a socket into the EventLoop.

<comment>Param:</comment>
  <info>int</info>       <strong>$fd</strong>              
  <info>callable</info>  <strong>$read_callback</strong>   
  <info>callable</info>  <strong>$write_callback</strong>  
  <info>string</info>    <strong>$events</strong>          

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Event::defer
type: function
doc:
<comment>Description:</comment>
  Add a callback function to the next event loop.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Event::del
type: function
doc:
<comment>Description:</comment>
  Remove all event callback functions of a socket.

<comment>Param:</comment>
  <info>string</info>  <strong>$fd</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Event::exit
type: function
doc:
<comment>Description:</comment>
  Exit the eventloop, only available at client side.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Event::set
type: function
doc:
<comment>Description:</comment>
  Update the event callback functions of a socket.

<comment>Param:</comment>
  <info>int</info>     <strong>$fd</strong>              
  <info>string</info>  <strong>$read_callback</strong>   
  <info>string</info>  <strong>$write_callback</strong>  
  <info>string</info>  <strong>$events</strong>          

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Event::wait
type: function
doc:
<comment>Description:</comment>
  Description
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Event::write
type: function
doc:
<comment>Description:</comment>
  Write data to the socket.

<comment>Param:</comment>
  <info>string</info>  <strong>$fd</strong>    
  <info>string</info>  <strong>$data</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::__construct
type: function
doc:
<comment>Description:</comment>
  Construct the async HTTP client.

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>  The hostname of the remote host.
  <info>string</info>  <strong>$port</strong>  The port number of the remote host.
  <info>bool</info>    <strong>$ssl</strong>   Whether to enable SSL.


id: Swoole\Http\Client::__destruct
type: function
doc:
<comment>Description:</comment>
  Destruct the HTTP client.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::addFile
type: function
doc:
<comment>Description:</comment>
  Add a file to the post form.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>      
  <info>string</info>  <strong>$name</strong>      
  <info>string</info>  <strong>$type</strong>      
  <info>string</info>  <strong>$filename</strong>  
  <info>string</info>  <strong>$offset</strong>    

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::close
type: function
doc:
<comment>Description:</comment>
  Close the http connection.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::download
type: function
doc:
<comment>Description:</comment>
  Download a file from the remote server.

<comment>Param:</comment>
  <info>string</info>    <strong>$path</strong>      
  <info>string</info>    <strong>$file</strong>      
  <info>callable</info>  <strong>$callback</strong>  
  <info>int</info>       <strong>$offset</strong>    

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::execute
type: function
doc:
<comment>Description:</comment>
  Send the HTTP request after setting the parameters.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>      
  <info>string</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::get
type: function
doc:
<comment>Description:</comment>
  Send GET http request to the remote server.

<comment>Param:</comment>
  <info>string</info>    <strong>$path</strong>      
  <info>callable</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::isConnected
type: function
doc:
<comment>Description:</comment>
  Check if the HTTP connection is connected.

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Http\Client::on
type: function
doc:
<comment>Description:</comment>
  Register callback function by event name.

<comment>Param:</comment>
  <info>string</info>    <strong>$event_name</strong>  
  <info>callable</info>  <strong>$callback</strong>    

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::post
type: function
doc:
<comment>Description:</comment>
  Send POST http request to the remote server.

<comment>Param:</comment>
  <info>string</info>    <strong>$path</strong>      
  <info>string</info>    <strong>$data</strong>      
  <info>callable</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::push
type: function
doc:
<comment>Description:</comment>
  Push data to websocket client.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>    
  <info>string</info>  <strong>$opcode</strong>  
  <info>string</info>  <strong>$finish</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::set
type: function
doc:
<comment>Description:</comment>
  Update the HTTP client paramters.

<comment>Param:</comment>
  <info>array</info>  <strong>$settings</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::setCookies
type: function
doc:
<comment>Description:</comment>
  Set the http request cookies.

<comment>Param:</comment>
  <info>array</info>  <strong>$cookies</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::setData
type: function
doc:
<comment>Description:</comment>
  Set the HTTP request body data.
  
  The HTTP method will be changed to be POST.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Http\Client::setHeaders
type: function
doc:
<comment>Description:</comment>
  Set the HTTP request headers.

<comment>Param:</comment>
  <info>array</info>  <strong>$headers</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::setMethod
type: function
doc:
<comment>Description:</comment>
  Set the HTTP request method.

<comment>Param:</comment>
  <info>string</info>  <strong>$method</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Client::upgrade
type: function
doc:
<comment>Description:</comment>
  Upgrade to websocket protocol.

<comment>Param:</comment>
  <info>string</info>  <strong>$path</strong>      
  <info>string</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Request::__destruct
type: function
doc:
<comment>Description:</comment>
  Destruct the HTTP request.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Request::rawcontent
type: function
doc:
<comment>Description:</comment>
  Get the raw HTTP POST body.
  
  This method is used for the POST data which isn't in the form of
  `application/x-www-form-urlencoded`.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string</info>  


id: Swoole\Http\Response::__destruct
type: function
doc:
<comment>Description:</comment>
  Destruct the HTTP response.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Response::cookie
type: function
doc:
<comment>Description:</comment>
  Set the cookies of the HTTP response.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>      
  <info>string</info>  <strong>$value</strong>     
  <info>string</info>  <strong>$expires</strong>   
  <info>string</info>  <strong>$path</strong>      
  <info>string</info>  <strong>$domain</strong>    
  <info>string</info>  <strong>$secure</strong>    
  <info>string</info>  <strong>$httponly</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: Swoole\Http\Response::end
type: function
doc:
<comment>Description:</comment>
  Send data for the HTTP request and finish the response.

<comment>Param:</comment>
  <info>string</info>  <strong>$content</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Response::gzip
type: function
doc:
<comment>Description:</comment>
  Enable the gzip of response content.
  
  
  The header about Content-Encoding will be added automatically.

<comment>Param:</comment>
  <info>string</info>  <strong>$compress_level</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Http\Response::header
type: function
doc:
<comment>Description:</comment>
  Set the HTTP response headers.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>      
  <info>string</info>  <strong>$value</strong>    
  <info>string</info>  <strong>$ucwords</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Response::initHeader
type: function
doc:
<comment>Description:</comment>
  Init the HTTP response header.
  
  Init the HTTP response header.

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Http\Response::rawcookie
type: function
doc:
<comment>Description:</comment>
  Set the raw cookies to the HTTP response.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>      
  <info>string</info>  <strong>$value</strong>     
  <info>string</info>  <strong>$expires</strong>   
  <info>string</info>  <strong>$path</strong>      
  <info>string</info>  <strong>$domain</strong>    
  <info>string</info>  <strong>$secure</strong>    
  <info>string</info>  <strong>$httponly</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Http\Response::sendfile
type: function
doc:
<comment>Description:</comment>
  Send file through the HTTP response.
  
  Send file through the HTTP response.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  
  <info>int</info>     <strong>$offset</strong>    

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Http\Response::status
type: function
doc:
<comment>Description:</comment>
  Set the status code of the HTTP response.
  
  Set the status code of the HTTP response.

<comment>Param:</comment>
  <info>string</info>  <strong>$http_code</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Http\Response::write
type: function
doc:
<comment>Description:</comment>
  Append HTTP body content to the HTTP response.
  
  Append HTTP body content to the HTTP response.

<comment>Param:</comment>
  <info>string</info>  <strong>$content</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Server::on
type: function
doc:
<comment>Description:</comment>
  Bind callback function to HTTP server by event name.
  
  Bind callback function to HTTP server by event name.

<comment>Param:</comment>
  <info>string</info>    <strong>$event_name</strong>  
  <info>callable</info>  <strong>$callback</strong>    

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Http\Server::start
type: function
doc:
<comment>Description:</comment>
  Start the swoole http server.
  
  Start the swoole http server.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Lock::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a memory lock.
  
  Swoole lock is used for data synchronization between multiple theads or processes.

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>                
  <info>string</info>  <strong>$file_lock_location</strong>  


id: Swoole\Lock::__destruct
type: function
doc:
<comment>Description:</comment>
  Destory a Swoole memory lock.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Lock::lock
type: function
doc:
<comment>Description:</comment>
  Try to acquire the lock. It will block if the lock is not available.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Lock::lock_read
type: function
doc:
<comment>Description:</comment>
  Lock a read-write lock for reading.
  
  Lock a read-write lock for reading.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Lock::trylock
type: function
doc:
<comment>Description:</comment>
  Try to acquire the lock and return straight away even the lock is not available.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Lock::trylock_read
type: function
doc:
<comment>Description:</comment>
  Try to lock a read-write lock for reading and return straight away even the lock is not available.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Lock::unlock
type: function
doc:
<comment>Description:</comment>
  Release the lock.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Mmap::open
type: function
doc:
<comment>Description:</comment>
  Map a file into memory and return the stream resource which can be used by PHP stream operations.

<comment>Param:</comment>
  <info>string</info>  <strong>$filename</strong>  
  <info>string</info>  <strong>$size</strong>      
  <info>string</info>  <strong>$offset</strong>    

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\MySQL::__construct
type: function
doc:
<comment>Description:</comment>
  Construct an async MySQL client.
  
  Construct an async MySQL client.


id: Swoole\MySQL::__destruct
type: function
doc:
<comment>Description:</comment>
  Destory the async MySQL client.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\MySQL::close
type: function
doc:
<comment>Description:</comment>
  Close the async MySQL connection.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\MySQL::connect
type: function
doc:
<comment>Description:</comment>
  Connect to the remote MySQL server.
  
  Connect to the remote MySQL server.

<comment>Param:</comment>
  <info>array</info>     <strong>$server_config</strong>  
  <info>callable</info>  <strong>$callback</strong>       

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\MySQL::on
type: function
doc:
<comment>Description:</comment>
  Register callback function based on event name.
  
  Register callback function based on event name, current only 'close' event is supported.

<comment>Param:</comment>
  <info>string</info>    <strong>$event_name</strong>  
  <info>callable</info>  <strong>$callback</strong>    

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\MySQL::query
type: function
doc:
<comment>Description:</comment>
  Run the SQL query.

<comment>Param:</comment>
  <info>string</info>    <strong>$sql</strong>       
  <info>callable</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Process::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a process.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>                   
  <info>bool</info>      <strong>$redirect_stdin_and_stdout</strong>  
  <info>int</info>       <strong>$pipe_type</strong>                  


id: Swoole\Process::__destruct
type: function
doc:
<comment>Description:</comment>
  Destory the process.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Process::alarm
type: function
doc:
<comment>Description:</comment>
  High precision timer which triggers signal with fixed interval.

<comment>Param:</comment>
  <info>int</info>  <strong>$interval_usec</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Process::close
type: function
doc:
<comment>Description:</comment>
  Close the pipe to the child process.
  
  Close the pipe to the child process.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Process::daemon
type: function
doc:
<comment>Description:</comment>
  Change the process to be a daemon process.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>bool</info>  <strong>$nochdir</strong>  
  <info>bool</info>  <strong>$noclose</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Process::exec
type: function
doc:
<comment>Description:</comment>
  Execute system commands.
  
  The process will be replaced to be the system command process, but the pipe to the parent process
  will be kept.

<comment>Param:</comment>
  <info>string</info>  <strong>$exec_file</strong>  
  <info>string</info>  <strong>$args</strong>       

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Process::exit
type: function
doc:
<comment>Description:</comment>
  Stop the child processes.

<comment>Param:</comment>
  <info>string</info>  <strong>$exit_code</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Process::freeQueue
type: function
doc:
<comment>Description:</comment>
  Destroy the message queue created by swoole_process::useQueue.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Process::kill
type: function
doc:
<comment>Description:</comment>
  Send signal to the child process.
  
  Send signal to the child process.

<comment>Param:</comment>
  <info>int</info>  <strong>$pid</strong>        Process pid
  <info>int</info>  <strong>$signal_no</strong>  Signal to be sent

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Swoole\Process::name
type: function
doc:
<comment>Description:</comment>
  Set name of the process.

<comment>Param:</comment>
  <info>string</info>  <strong>$process_name</strong>  Set name of the process.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Swoole\Process::pop
type: function
doc:
<comment>Description:</comment>
  Read and pop data from the message queue.

<comment>Param:</comment>
  <info>int</info>  <strong>$maxsize</strong>  

<comment>Return:</comment>
  <info>mixed</info>  


id: Swoole\Process::push
type: function
doc:
<comment>Description:</comment>
  Write and push data into the message queue.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Process::read
type: function
doc:
<comment>Description:</comment>
  Read data sending to the process.

<comment>Param:</comment>
  <info>int</info>  <strong>$maxsize</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: Swoole\Process::signal
type: function
doc:
<comment>Description:</comment>
  Send signal to the child processes.

<comment>Param:</comment>
  <info>string</info>    <strong>$signal_no</strong>  
  <info>callable</info>  <strong>$callback</strong>   

<comment>Return:</comment>
  <info>void</info>  If signal sent successfully, it returns TRUE, otherwise it returns FALSE.


id: Swoole\Process::start
type: function
doc:
<comment>Description:</comment>
  Start the process.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Process::statQueue
type: function
doc:
<comment>Description:</comment>
  Get the stats of the message queue used as the communication method between processes.

<comment>Return:</comment>
  <info>array</info>  The array of status of the message queue.


id: Swoole\Process::useQueue
type: function
doc:
<comment>Description:</comment>
  Create a message queue as the communication method between the parent process and child processes.

<comment>Param:</comment>
  <info>int</info>  <strong>$key</strong>   
  <info>int</info>  <strong>$mode</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Process::wait
type: function
doc:
<comment>Description:</comment>
  Wait for the events of child processes.

<comment>Param:</comment>
  <info>bool</info>  <strong>$blocking</strong>  

<comment>Return:</comment>
  <info>array</info>  


id: Swoole\Process::write
type: function
doc:
<comment>Description:</comment>
  Write data into the pipe and communicate with the parent process or child processes.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  

<comment>Return:</comment>
  <info>int</info>  


id: Swoole\Redis\Server::format
type: function
doc:
<comment>Description:</comment>
  Description
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Redis\Server::setHandler
type: function
doc:
<comment>Description:</comment>
  Description
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$command</strong>                 
  <info>string</info>  <strong>$callback</strong>                
  <info>string</info>  <strong>$number_of_string_param</strong>  
  <info>string</info>  <strong>$type_of_array_param</strong>     

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Serialize::pack
type: function
doc:
<comment>Description:</comment>
  Serialize the data.
  
  Swoole provides a fast and high performance serialization module.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>     
  <info>int</info>     <strong>$is_fast</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Serialize::unpack
type: function
doc:
<comment>Description:</comment>
  Unserialize the data.
  
  Unserialize the data.

<comment>Param:</comment>
  <info></info>        <strong>$string</strong>  
  <info>string</info>  <strong>$args</strong>    

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Server::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a Swoole server.

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>       
  <info>int</info>     <strong>$port</strong>       
  <info>integr</info>  <strong>$mode</strong>       
  <info>int</info>     <strong>$sock_type</strong>  


id: Swoole\Server::addProcess
type: function
doc:
<comment>Description:</comment>
  Add a user defined swoole_process to the server.

<comment>Param:</comment>
  <info>swoole_process</info>  <strong>$process</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::addlistener
type: function
doc:
<comment>Description:</comment>
  Add a new listener to the server.

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>         
  <info>int</info>     <strong>$port</strong>         
  <info>string</info>  <strong>$socket_type</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::after
type: function
doc:
<comment>Description:</comment>
  Trigger a callback function after a period of time.

<comment>Param:</comment>
  <info>int</info>       <strong>$after_time_ms</strong>  
  <info>callable</info>  <strong>$callback</strong>       
  <info>string</info>    <strong>$param</strong>          

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Server::bind
type: function
doc:
<comment>Description:</comment>
  Bind the connection to a user defined user ID.

<comment>Param:</comment>
  <info>int</info>  <strong>$fd</strong>   
  <info>int</info>  <strong>$uid</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::clearTimer
type: function
doc:
<comment>Description:</comment>
  Stop and destory a timer.
  
  面向对象风格 (method):
  
  过程化风格:
  
  Stop and destory a timer

<comment>Param:</comment>
  <info>int</info>  <strong>$timer_id</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::close
type: function
doc:
<comment>Description:</comment>
  Close a connection to the client.

<comment>Param:</comment>
  <info>int</info>   <strong>$fd</strong>     
  <info>bool</info>  <strong>$reset</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::confirm
type: function
doc:
<comment>Description:</comment>
  Check status of the connection.

<comment>Param:</comment>
  <info>int</info>  <strong>$fd</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::connection_info
type: function
doc:
<comment>Description:</comment>
  Get the connection info by file description.

<comment>Param:</comment>
  <info>int</info>  <strong>$fd</strong>          
  <info>int</info>  <strong>$reactor_id</strong>  

<comment>Return:</comment>
  <info>array</info>  


id: Swoole\Server::connection_list
type: function
doc:
<comment>Description:</comment>
  Get all of the established connections.

<comment>Param:</comment>
  <info>int</info>  <strong>$start_fd</strong>  
  <info>int</info>  <strong>$pagesize</strong>  

<comment>Return:</comment>
  <info>array</info>  


id: Swoole\Server::defer
type: function
doc:
<comment>Description:</comment>
  Delay execution of the callback function at the end of current EventLoop.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::exist
type: function
doc:
<comment>Description:</comment>
  Check if the connection is existed.

<comment>Param:</comment>
  <info>int</info>  <strong>$fd</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::finish
type: function
doc:
<comment>Description:</comment>
  Used in task process for sending result to the worker process when the task is finished.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::getClientInfo
type: function
doc:
<comment>Description:</comment>
  Get the connection info by file description.

<comment>Param:</comment>
  <info>int</info>   <strong>$fd</strong>            File descriptors.
  <info>int</info>   <strong>$reactor_id</strong>    The Reactor thread ID where the connection is made.
  <info>bool</info>  <strong>$ignore_error</strong>  Whether to ignore errors, if set to true, connection information will be
                       returned even if the connection is closed.

<comment>Return:</comment>
  <info>array</info>  Returns information about the client connection.


id: Swoole\Server::getClientList
type: function
doc:
<comment>Description:</comment>
  Get all of the established connections.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>  <strong>$start_fd</strong>  
  <info>int</info>  <strong>$pagesize</strong>  

<comment>Return:</comment>
  <info>array</info>  


id: Swoole\Server::getLastError
type: function
doc:
<comment>Description:</comment>
  Get the error code of the most recent error.

<comment>Return:</comment>
  <info>int</info>  


id: Swoole\Server::heartbeat
type: function
doc:
<comment>Description:</comment>
  Check all the connections on the server.

<comment>Param:</comment>
  <info>bool</info>  <strong>$if_close_connection</strong>  

<comment>Return:</comment>
  <info>mixed</info>  


id: Swoole\Server::listen
type: function
doc:
<comment>Description:</comment>
  Listen on the given IP and port, socket type.

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>         
  <info>int</info>     <strong>$port</strong>         
  <info>string</info>  <strong>$socket_type</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::on
type: function
doc:
<comment>Description:</comment>
  Register a callback function by event name.

<comment>Param:</comment>
  <info>string</info>    <strong>$event_name</strong>  
  <info>callable</info>  <strong>$callback</strong>    

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::pause
type: function
doc:
<comment>Description:</comment>
  Stop receiving data from the connection.

<comment>Param:</comment>
  <info>int</info>  <strong>$fd</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::protect
type: function
doc:
<comment>Description:</comment>
  Set the connection to be protected mode.

<comment>Param:</comment>
  <info>int</info>   <strong>$fd</strong>            
  <info>bool</info>  <strong>$is_protected</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::reload
type: function
doc:
<comment>Description:</comment>
  Restart all the worker process.

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::resume
type: function
doc:
<comment>Description:</comment>
  Start receving data from the connection.

<comment>Param:</comment>
  <info>int</info>  <strong>$fd</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::send
type: function
doc:
<comment>Description:</comment>
  Send data to the client.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>     <strong>$fd</strong>          
  <info>string</info>  <strong>$data</strong>        
  <info>int</info>     <strong>$reactor_id</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::sendMessage
type: function
doc:
<comment>Description:</comment>
  Send message to worker processes by ID.

<comment>Param:</comment>
  <info></info>        <strong>$dst_worker_id</strong>  
  <info>string</info>  <strong>$data</strong>           

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::sendfile
type: function
doc:
<comment>Description:</comment>
  Send file to the connection.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>     <strong>$fd</strong>        
  <info>string</info>  <strong>$filename</strong>  
  <info>int</info>     <strong>$offset</strong>    

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::sendto
type: function
doc:
<comment>Description:</comment>
  Send data to the remote UDP address.

<comment>Param:</comment>
  <info>string</info>  <strong>$ip</strong>             
  <info>int</info>     <strong>$port</strong>           
  <info>string</info>  <strong>$data</strong>           
  <info>string</info>  <strong>$server_socket</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::sendwait
type: function
doc:
<comment>Description:</comment>
  Send data to the remote socket in the blocking way.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>     <strong>$fd</strong>    
  <info>string</info>  <strong>$data</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::set
type: function
doc:
<comment>Description:</comment>
  Set the runtime settings of the swoole server.
  
  Set the runtime settings of the swoole server. The settings can be accessed by $server-&gt;setting
  when the swoole server has started.

<comment>Param:</comment>
  <info>array</info>  <strong>$settings</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Server::shutdown
type: function
doc:
<comment>Description:</comment>
  Shutdown the master server process, this function can be called in worker processes.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::start
type: function
doc:
<comment>Description:</comment>
  Start the Swoole server.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::stats
type: function
doc:
<comment>Description:</comment>
  Get the stats of the Swoole server.

<comment>Return:</comment>
  <info>array</info>  


id: Swoole\Server::stop
type: function
doc:
<comment>Description:</comment>
  Stop the Swoole server.

<comment>Param:</comment>
  <info>int</info>  <strong>$worker_id</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Server::task
type: function
doc:
<comment>Description:</comment>
  Send data to the task worker processes.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>    <strong>$data</strong>           
  <info>int</info>       <strong>$dst_worker_id</strong>  
  <info>callable</info>  <strong>$callback</strong>       

<comment>Return:</comment>
  <info>mixed</info>  


id: Swoole\Server::taskWaitMulti
type: function
doc:
<comment>Description:</comment>
  Execute multiple tasks concurrently.

<comment>Param:</comment>
  <info>array</info>  <strong>$tasks</strong>       
  <info>float</info>  <strong>$timeout_ms</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::taskwait
type: function
doc:
<comment>Description:</comment>
  Send data to the task worker processes in blocking way.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>       
  <info>float</info>   <strong>$timeout</strong>    
  <info>int</info>     <strong>$worker_id</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server::tick
type: function
doc:
<comment>Description:</comment>
  Repeats a given function at every given time-interval.

<comment>Param:</comment>
  <info>int</info>       <strong>$interval_ms</strong>  
  <info>callable</info>  <strong>$callback</strong>     

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server\Port::__destruct
type: function
doc:
<comment>Description:</comment>
  Destory server port

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Server\Port::on
type: function
doc:
<comment>Description:</comment>
  Register callback functions by event.

<comment>Param:</comment>
  <info>string</info>    <strong>$event_name</strong>  
  <info>callable</info>  <strong>$callback</strong>    

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Server\Port::set
type: function
doc:
<comment>Description:</comment>
  Set protocol of the server port.

<comment>Param:</comment>
  <info>array</info>  <strong>$settings</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Table::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a Swoole memory table with fixed size.

<comment>Param:</comment>
  <info>int</info>  <strong>$table_size</strong>  


id: Swoole\Table::column
type: function
doc:
<comment>Description:</comment>
  Set the data type and size of the columns.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  
  <info>string</info>  <strong>$type</strong>  
  <info>int</info>     <strong>$size</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Table::count
type: function
doc:
<comment>Description:</comment>
  Count the rows in the table, or count all the elements in the table if $mode = 1.

<comment>Return:</comment>
  <info>int</info>  


id: Swoole\Table::create
type: function
doc:
<comment>Description:</comment>
  Create the swoole memory table.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Table::current
type: function
doc:
<comment>Description:</comment>
  Get the current row.

<comment>Return:</comment>
  <info>array</info>  


id: Swoole\Table::decr
type: function
doc:
<comment>Description:</comment>
  Decrement the value in the Swoole table by $row_key and $column_key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     
  <info>string</info>  <strong>$column</strong>  
  <info>int</info>     <strong>$decrby</strong>  

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Table::del
type: function
doc:
<comment>Description:</comment>
  Delete a row in the Swoole table by $row_key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Table::destroy
type: function
doc:
<comment>Description:</comment>
  Destroy the Swoole table.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Table::exist
type: function
doc:
<comment>Description:</comment>
  Check if a row is existed by $row_key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Table::get
type: function
doc:
<comment>Description:</comment>
  Get the value in the Swoole table by $row_key and $column_key.

<comment>Param:</comment>
  <info>string</info>  <strong>$row_key</strong>     
  <info>string</info>  <strong>$column_key</strong>  

<comment>Return:</comment>
  <info>int</info>  


id: Swoole\Table::incr
type: function
doc:
<comment>Description:</comment>
  Increment the value by $row_key and $column_key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>     
  <info>string</info>  <strong>$column</strong>  
  <info>int</info>     <strong>$incrby</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Table::key
type: function
doc:
<comment>Description:</comment>
  Get the key of current row.

<comment>Return:</comment>
  <info>string</info>  


id: Swoole\Table::next
type: function
doc:
<comment>Description:</comment>
  Iterator the next row.

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\Table::rewind
type: function
doc:
<comment>Description:</comment>
  Rewind the iterator.

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Table::set
type: function
doc:
<comment>Description:</comment>
  Update a row of the table by $row_key.

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    
  <info>array</info>   <strong>$value</strong>  

<comment>Return:</comment>
  <info>VOID</info>  


id: Swoole\Table::valid
type: function
doc:
<comment>Description:</comment>
  Check current if the current row is valid.

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Timer::after
type: function
doc:
<comment>Description:</comment>
  Trigger a callback function after a period of time.
  
  Trigger a callback function after a period of time.

<comment>Param:</comment>
  <info>int</info>       <strong>$after_time_ms</strong>  
  <info>callable</info>  <strong>$callback</strong>       

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Timer::clear
type: function
doc:
<comment>Description:</comment>
  Delete a timer by timer ID.
  
  Delete a timer by timer ID.

<comment>Param:</comment>
  <info>int</info>  <strong>$timer_id</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\Timer::exists
type: function
doc:
<comment>Description:</comment>
  Check if a timer is existed.
  
  Check if a timer is existed.

<comment>Param:</comment>
  <info>int</info>  <strong>$timer_id</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\Timer::tick
type: function
doc:
<comment>Description:</comment>
  Repeats a given function at every given time-interval.

<comment>Param:</comment>
  <info>int</info>       <strong>$interval_ms</strong>  
  <info>callable</info>  <strong>$callback</strong>     
  <info>string</info>    <strong>$param</strong>        

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\WebSocket\Server::exist
type: function
doc:
<comment>Description:</comment>
  Check if the file descriptor exists.

<comment>Param:</comment>
  <info>int</info>  <strong>$fd</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Swoole\WebSocket\Server::on
type: function
doc:
<comment>Description:</comment>
  Register event callback function
  
  Register event callback function

<comment>Param:</comment>
  <info>string</info>    <strong>$event_name</strong>  
  <info>callable</info>  <strong>$callback</strong>    

<comment>Return:</comment>
  <info>ReturnType</info>  


id: Swoole\WebSocket\Server::pack
type: function
doc:
<comment>Description:</comment>
  Get a pack of binary data to send in a single frame.

<comment>Param:</comment>
  <info>string</info>  <strong>$data</strong>    
  <info>string</info>  <strong>$opcode</strong>  
  <info>string</info>  <strong>$finish</strong>  
  <info>string</info>  <strong>$mask</strong>    

<comment>Return:</comment>
  <info>binary</info>  


id: Swoole\WebSocket\Server::push
type: function
doc:
<comment>Description:</comment>
  Push data to the remote client.

<comment>Param:</comment>
  <info>string</info>  <strong>$fd</strong>      
  <info>string</info>  <strong>$data</strong>    
  <info>string</info>  <strong>$opcode</strong>  
  <info>string</info>  <strong>$finish</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Swoole\WebSocket\Server::unpack
type: function
doc:
<comment>Description:</comment>
  Unpack the binary data received from the client.

<comment>Param:</comment>
  <info>binary</info>  <strong>$data</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: SyncEvent
type: class
doc:
<comment>Description:</comment>
  A cross-platform, native implementation of named and unnamed event objects.  Both automatic and
  manual event objects are supported.
  
  An event object waits, without polling, for the object to be fired/set. One instance waits on the
  event object while another instance fires/sets the event.  Event objects are useful wherever a
  long-running process would otherwise poll a resource (e.g. checking to see if uploaded data needs
  to be processed).


id: SyncEvent::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new SyncEvent object
  
  Constructs a named or unnamed event object.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>     The name of the event if this is a named event object.
                    
                    If the name already exists, it must be able to be opened by the current user
                    that the process is running as or an exception will be thrown with a meaningless
                    error message.
  <info>bool</info>    <strong>$manual</strong>   Specifies whether or not the event object must be reset manually.
                    
                    Manual reset event objects allow all waiting processes through until the object
                    is reset.
  <info>bool</info>    <strong>$prefire</strong>  Specifies whether or not to prefire (signal) the event object.
                    
                    Only has impact if the calling process/thread is the first to create the object.

<comment>Return:</comment>
  <info>unknown</info>  The new <class>SyncEvent</class> object.

<comment>See Also:</comment>
   * SyncEvent::fire
   * SyncEvent::reset
   * SyncEvent::wait


id: SyncEvent::fire
type: function
doc:
<comment>Description:</comment>
  Fires/sets the event
  
  Fires/sets a <class>SyncEvent</class> object. Lets multiple threads through that are waiting if the event object
  was created with a manual value of <info>true</info>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncEvent::reset
   * SyncEvent::wait


id: SyncEvent::reset
type: function
doc:
<comment>Description:</comment>
  Resets a manual event
  
  Resets a <class>SyncEvent</class> object that has been fired/set. Only valid for manual event objects.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncEvent::fire
   * SyncEvent::reset
   * SyncEvent::wait


id: SyncEvent::wait
type: function
doc:
<comment>Description:</comment>
  Waits for the event to be fired/set
  
  Waits for the <class>SyncEvent</class> object to be fired.

<comment>Param:</comment>
  <info>int</info>  <strong>$wait</strong>  The number of milliseconds to wait for the event to be fired. A value of -1 is
              infinite.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncEvent::fire


id: SyncMutex
type: class
doc:
<comment>Description:</comment>
  A cross-platform, native implementation of named and unnamed countable mutex objects.
  
  A mutex is a mutual exclusion object that restricts access to a shared resource (e.g. a file) to a
  single instance. Countable mutexes acquire the mutex a single time and internally track the number
  of times the mutex is locked. The mutex is unlocked as soon as it goes out of scope or is unlocked
  the same number of times that it was locked.


id: SyncMutex::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new SyncMutex object
  
  Constructs a named or unnamed countable mutex.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name of the mutex if this is a named mutex object.
                 
                 If the name already exists, it must be able to be opened by the current user that
                 the process is running as or an exception will be thrown with a meaningless error
                 message.

<comment>Return:</comment>
  <info>unknown</info>  The new <class>SyncMutex</class> object.

<comment>See Also:</comment>
   * SyncMutex::lock
   * SyncMutex::unlock


id: SyncMutex::lock
type: function
doc:
<comment>Description:</comment>
  Waits for an exclusive lock
  
  Obtains an exclusive lock on a <class>SyncMutex</class> object. If the lock is already acquired, then this
  increments an internal counter.

<comment>Param:</comment>
  <info>int</info>  <strong>$wait</strong>  The number of milliseconds to wait for the exclusive lock. A value of -1 is infinite.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncMutex::unlock


id: SyncMutex::unlock
type: function
doc:
<comment>Description:</comment>
  Unlocks the mutex
  
  Decreases the internal counter of a <class>SyncMutex</class> object. When the internal counter reaches zero, the
  actual lock on the object is released.

<comment>Param:</comment>
  <info>bool</info>  <strong>$all</strong>  Specifies whether or not to set the internal counter to zero and therefore release the
              lock.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncMutex::lock


id: SyncReaderWriter
type: class
doc:
<comment>Description:</comment>
  A cross-platform, native implementation of named and unnamed reader-writer objects.
  
  A reader-writer object allows many readers or one writer to access a resource. This is an
  efficient solution for managing resources where access will primarily be read-only but exclusive
  write access is occasionally necessary.


id: SyncReaderWriter::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new SyncReaderWriter object
  
  Constructs a named or unnamed reader-writer object.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>        The name of the reader-writer if this is a named reader-writer object.
                       
                       If the name already exists, it must be able to be opened by the current user
                       that the process is running as or an exception will be thrown with a
                       meaningless error message.
                       
                       On Windows, <strong>$name</strong> must not contain backslashes.
  <info>int</info>     <strong>$autounlock</strong>  Specifies whether or not to automatically unlock the reader-writer at the
                       conclusion of the PHP script.
                       
                       If an object is:  A named reader-writer with an autounlock of FALSE, the
                       object is locked for either reading or writing, and the PHP script concludes
                       before the object is unlocked, then the underlying objects will end up in an
                       inconsistent state.

<comment>Return:</comment>
  <info>unknown</info>  The new <class>SyncReaderWriter</class> object.

<comment>See Also:</comment>
   * SyncReaderWriter::readlock
   * SyncReaderWriter::readunlock
   * SyncReaderWriter::writelock
   * SyncReaderWriter::writeunlock


id: SyncReaderWriter::readlock
type: function
doc:
<comment>Description:</comment>
  Waits for a read lock
  
  Obtains a read lock on a <class>SyncReaderWriter</class> object.

<comment>Param:</comment>
  <info>int</info>  <strong>$wait</strong>  The number of milliseconds to wait for a lock. A value of -1 is infinite.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncReaderWriter::readunlock


id: SyncReaderWriter::readunlock
type: function
doc:
<comment>Description:</comment>
  Releases a read lock
  
  Releases a read lock on a <class>SyncReaderWriter</class> object.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncReaderWriter::readlock


id: SyncReaderWriter::writelock
type: function
doc:
<comment>Description:</comment>
  Waits for an exclusive write lock
  
  Obtains an exclusive write lock on a <class>SyncReaderWriter</class> object.

<comment>Param:</comment>
  <info>int</info>  <strong>$wait</strong>  The number of milliseconds to wait for a lock. A value of -1 is infinite.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncReaderWriter::writeunlock


id: SyncReaderWriter::writeunlock
type: function
doc:
<comment>Description:</comment>
  Releases a write lock
  
  Releases a write lock on a <class>SyncReaderWriter</class> object.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncReaderWriter::writelock


id: SyncSemaphore
type: class
doc:
<comment>Description:</comment>
  A cross-platform, native implementation of named and unnamed semaphore objects.
  
  A semaphore restricts access to a limited resource to a limited number of instances. Semaphores
  differ from mutexes in that they can allow more than one instance to access a resource at one time
  while a mutex only allows one instance at a time.


id: SyncSemaphore::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new SyncSemaphore object
  
  Constructs a named or unnamed semaphore.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>        The name of the semaphore if this is a named semaphore object.
                       
                       If the name already exists, it must be able to be opened by the current user
                       that the process is running as or an exception will be thrown with a
                       meaningless error message.
  <info>int</info>     <strong>$initialval</strong>  The initial value of the semaphore. This is the number of locks that may be
                       obtained.
  <info>bool</info>    <strong>$autounlock</strong>  Specifies whether or not to automatically unlock the semaphore at the
                       conclusion of the PHP script.
                       
                       If an object is: A named semaphore with an autounlock of <info>false</info>, the object is
                       locked, and the PHP script concludes before the object is unlocked, then the
                       underlying semaphore will end up in an inconsistent state.

<comment>Return:</comment>
  <info>unknown</info>  The new <class>SyncSemaphore</class> object.

<comment>See Also:</comment>
   * SyncSemaphore::lock
   * SyncSemaphore::unlock


id: SyncSemaphore::lock
type: function
doc:
<comment>Description:</comment>
  Decreases the count of the semaphore or waits
  
  Decreases the count of a <class>SyncSemaphore</class> object or waits until the semaphore becomes non-zero.

<comment>Param:</comment>
  <info>int</info>  <strong>$wait</strong>  The number of milliseconds to wait for the semaphore. A value of -1 is infinite.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncSemaphore::unlock


id: SyncSemaphore::unlock
type: function
doc:
<comment>Description:</comment>
  Increases the count of the semaphore
  
  Increases the count of a <class>SyncSemaphore</class> object.

<comment>Param:</comment>
  <info>int</info>  <strong>$prevcount</strong>  Returns the previous count of the semaphore.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncSemaphore::lock


id: SyncSharedMemory
type: class
doc:
<comment>Description:</comment>
  A cross-platform, native, consistent implementation of named shared memory objects.
  
  Shared memory lets two separate processes communicate without the need for complex pipes or
  sockets.  There are several integer-based shared memory implementations for PHP.  Named shared
  memory is an alternative.
  
  Synchronization objects (e.g. SyncMutex) are still required to protect most uses of shared memory.


id: SyncSharedMemory::__construct
type: function
doc:
<comment>Description:</comment>
  Constructs a new SyncSharedMemory object
  
  Constructs a named shared memory object.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name of the shared memory object.
                 
                 If the name already exists, it must be able to be opened by the current user that
                 the process is running as or an exception will be thrown with a meaningless error
                 message.
  <info>int</info>     <strong>$size</strong>  The size, in bytes, of shared memory to reserve.
                 
                 The amount of memory cannot be resized later.  Request sufficient storage up front.

<comment>Return:</comment>
  <info>unknown</info>  The new <class>SyncSharedMemory</class> object.

<comment>See Also:</comment>
   * SyncSharedMemory::first
   * SyncSharedMemory::size
   * SyncSharedMemory::write
   * SyncSharedMemory::read


id: SyncSharedMemory::first
type: function
doc:
<comment>Description:</comment>
  Check to see if the object is the first instance system-wide of named shared memory
  
  Retrieves the system-wide first instance status of a <class>SyncSharedMemory</class> object.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * SyncSharedMemory::write
   * SyncSharedMemory::read


id: SyncSharedMemory::read
type: function
doc:
<comment>Description:</comment>
  Copy data from named shared memory
  
  Copies data from named shared memory.

<comment>Param:</comment>
  <info>int</info>  <strong>$start</strong>   The start/offset, in bytes, to begin reading.
                
                If the value is negative, the starting position will begin at the specified number
                of bytes from the end of the shared memory segment.
  <info>int</info>  <strong>$length</strong>  The number of bytes to read.
                
                If unspecified, reading will stop at the end of the shared memory segment.
                
                If the value is negative, reading will stop the specified number of bytes from the
                end of the shared memory segment.

<comment>Return:</comment>
  <info>unknown</info>  A string containing the data read from shared memory.

<comment>See Also:</comment>
   * SyncSharedMemory::__construct
   * SyncSharedMemory::first
   * SyncSharedMemory::write
   * SyncSharedMemory::read


id: SyncSharedMemory::size
type: function
doc:
<comment>Description:</comment>
  Returns the size of the named shared memory
  
  Retrieves the shared memory size of a <class>SyncSharedMemory</class> object.

<comment>Return:</comment>
  <info>int</info>  An integer containing the size of the shared memory. This will be the same size that was
       passed to the constructor.

<comment>See Also:</comment>
   * SyncSharedMemory::__construct
   * SyncSharedMemory::write
   * SyncSharedMemory::read


id: SyncSharedMemory::write
type: function
doc:
<comment>Description:</comment>
  Copy data to named shared memory
  
  Copies data to named shared memory.

<comment>Param:</comment>
  <info>string</info>  <strong>$string</strong>  The data to write to shared memory.
                   
                   If the size of the data exceeds the size of the shared memory, the number of
                   bytes written returned will be less than the length of the input.
  <info>int</info>     <strong>$start</strong>   The start/offset, in bytes, to begin writing.
                   
                   If the value is negative, the starting position will begin at the specified
                   number of bytes from the end of the shared memory segment.

<comment>Return:</comment>
  <info>unknown</info>  An integer containing the number of bytes written to shared memory.

<comment>See Also:</comment>
   * SyncSharedMemory::__construct
   * SyncSharedMemory::first
   * SyncSharedMemory::write
   * SyncSharedMemory::read


id: SysvMessageQueue
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces a <return>sysvmsg queue</return> resource as of PHP 8.0.0.


id: SysvSemaphore
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces a <return>sysvsem</return> resource as of PHP 8.0.0.


id: SysvSharedMemory
type: class
doc:
<comment>Description:</comment>
  A fully opaque class which replaces a <return>sysvshm</return> resource as of PHP 8.0.0.


id: Table::count
type: function
doc:
<comment>Description:</comment>
  Get row count
  
  Fetch the number of rows in the table.

<comment>Return:</comment>
  <info>int</info>  The total number of rows in the table.


id: Table::delete
type: function
doc:
<comment>Description:</comment>
  Delete rows from table
  
  Deletes rows from a table.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableDelete</info>  A TableDelete object; use the execute() method to execute the delete
                             query.


id: Table::existsInDatabase
type: function
doc:
<comment>Description:</comment>
  Check if table exists in database
  
  Verifies if this table exists in the database.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if table exists in the database, else <info>false</info> if it does not.


id: Table::getName
type: function
doc:
<comment>Description:</comment>
  Get table name
  
  Returns the name of this database object.

<comment>Return:</comment>
  <info>string</info>  The name of this database object.


id: Table::getSchema
type: function
doc:
<comment>Description:</comment>
  Get table schema
  
  Fetch the schema associated with the table.

<comment>Return:</comment>
  <info>mysql_xdevapi\Schema</info>  A Schema object.


id: Table::getSession
type: function
doc:
<comment>Description:</comment>
  Get table session
  
  Get session associated with the table.

<comment>Return:</comment>
  <info>mysql_xdevapi\Session</info>  A Session object.


id: Table::insert
type: function
doc:
<comment>Description:</comment>
  Insert table rows
  
  Inserts rows into a table.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$columns</strong>       The columns to insert data into. Can be an array with one or more values, or
                        a string.
  <info>mixed</info>  <strong>$more_columns</strong>  Additional columns definitions.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableInsert</info>  A TableInsert object; use the execute() method to execute the insert
                             statement.


id: Table::isView
type: function
doc:
<comment>Description:</comment>
  Check if table is view
  
  Determine if the underlying object is a view or not.

<comment>Return:</comment>
  <info>bool</info>  <info>true</info> if the underlying object is a view, otherwise <info>false</info>.


id: Table::select
type: function
doc:
<comment>Description:</comment>
  Select rows from table
  
  Fetches data from a table.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$columns</strong>       The columns to select data from. Can be an array with one or more values, or
                        a string.
  <info>mixed</info>  <strong>$more_columns</strong>  Additional columns parameter definitions.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object; use the execute() method to execute the select
                             and return a RowResult object.


id: Table::update
type: function
doc:
<comment>Description:</comment>
  Update rows in table
  
  Updates columns in a table.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableUpdate</info>  A TableUpdate object; use the execute() method to execute the update
                             statement.


id: TableDelete::__construct
type: function
doc:
<comment>Description:</comment>
  TableDelete constructor
  
  Initiated by using the delete() method.


id: TableDelete::bind
type: function
doc:
<comment>Description:</comment>
  Bind delete query parameters
  
  Binds a value to a specific placeholder.

<comment>Param:</comment>
  <info>array</info>  <strong>$placeholder_values</strong>  The name of the placeholder and the value to bind.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableDelete</info>  A TableDelete object.


id: TableDelete::execute
type: function
doc:
<comment>Description:</comment>
  Execute delete query
  
  Execute the delete query.

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  A Result object.


id: TableDelete::limit
type: function
doc:
<comment>Description:</comment>
  Limit deleted rows
  
  Sets the maximum number of records or documents to delete.

<comment>Param:</comment>
  <info>int</info>  <strong>$rows</strong>  The maximum number of records or documents to delete.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableDelete</info>  TableDelete object.


id: TableDelete::orderby
type: function
doc:
<comment>Description:</comment>
  Set delete sort criteria
  
  Set the order options for a result set.

<comment>Param:</comment>
  <info>string</info>  <strong>$orderby_expr</strong>  The sort definition.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableDelete</info>  A TableDelete object.


id: TableDelete::where
type: function
doc:
<comment>Description:</comment>
  Set delete search condition
  
  Sets the search condition to filter.

<comment>Param:</comment>
  <info>string</info>  <strong>$where_expr</strong>  Define the search condition to filter documents or records.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableDelete</info>  TableDelete object.


id: TableInsert::__construct
type: function
doc:
<comment>Description:</comment>
  TableInsert constructor
  
  Initiated by using the insert() method.


id: TableInsert::execute
type: function
doc:
<comment>Description:</comment>
  Execute insert query
  
  Execute the statement.

<comment>Return:</comment>
  <info>mysql_xdevapi\Result</info>  A Result object.


id: TableInsert::values
type: function
doc:
<comment>Description:</comment>
  Add insert row values
  
  Set the values to be inserted.

<comment>Param:</comment>
  <info>array</info>  <strong>$row_values</strong>  Values (an array) of columns to insert.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableInsert</info>  A TableInsert object.


id: TableSelect::__construct
type: function
doc:
<comment>Description:</comment>
  TableSelect constructor
  
  An object returned by the select() method; use execute() to  execute the query.


id: TableSelect::bind
type: function
doc:
<comment>Description:</comment>
  Bind select query parameters
  
  Binds a value to a specific placeholder.

<comment>Param:</comment>
  <info>array</info>  <strong>$placeholder_values</strong>  The name of the placeholder, and the value to bind.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object.


id: TableSelect::execute
type: function
doc:
<comment>Description:</comment>
  Execute select statement
  
  Execute the select statement by chaining it with the execute() method.

<comment>Return:</comment>
  <info>mysql_xdevapi\RowResult</info>  A RowResult object.


id: TableSelect::groupBy
type: function
doc:
<comment>Description:</comment>
  Set select grouping criteria
  
  Sets a grouping criteria for the result set.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$sort_expr</strong>  The grouping criteria.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object.


id: TableSelect::having
type: function
doc:
<comment>Description:</comment>
  Set select having condition
  
  Sets a condition for records to consider in aggregate function operations.

<comment>Param:</comment>
  <info>string</info>  <strong>$sort_expr</strong>  A condition on the aggregate functions used on the grouping criteria.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object.


id: TableSelect::limit
type: function
doc:
<comment>Description:</comment>
  Limit selected rows
  
  Sets the maximum number of records or documents to return.

<comment>Param:</comment>
  <info>int</info>  <strong>$rows</strong>  The maximum number of records or documents.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object.


id: TableSelect::lockExclusive
type: function
doc:
<comment>Description:</comment>
  Execute EXCLUSIVE LOCK
  
  Execute a read operation with EXCLUSIVE LOCK. Only one lock can be active at a time.

<comment>Param:</comment>
  <info>int</info>  <strong>$lock_waiting_option</strong>  The optional waiting option that defaults to <info>MYSQLX_LOCK_DEFAULT</info>. Valid
                             values are:
                             
                             <info>MYSQLX_LOCK_DEFAULT</info>
                             
                             <info>MYSQLX_LOCK_NOWAIT</info>
                             
                             <info>MYSQLX_LOCK_SKIP_LOCKED</info>

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  TableSelect object.


id: TableSelect::lockShared
type: function
doc:
<comment>Description:</comment>
  Execute SHARED LOCK
  
  Execute a read operation with SHARED LOCK. Only one lock can be active at a time.

<comment>Param:</comment>
  <info>int</info>  <strong>$lock_waiting_option</strong>  The optional waiting option that defaults to <info>MYSQLX_LOCK_DEFAULT</info>.
                             Valid values are:
                             
                             <info>MYSQLX_LOCK_DEFAULT</info>
                             
                             <info>MYSQLX_LOCK_NOWAIT</info>
                             
                             <info>MYSQLX_LOCK_SKIP_LOCKED</info>

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object.


id: TableSelect::offset
type: function
doc:
<comment>Description:</comment>
  Set limit offset
  
  Skip given number of rows in result.

<comment>Param:</comment>
  <info>int</info>  <strong>$position</strong>  The limit offset.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object.


id: TableSelect::orderby
type: function
doc:
<comment>Description:</comment>
  Set select sort criteria
  
  Sets the order by criteria.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$sort_expr</strong>   The expressions that define the order by criteria. Can be an array with one or
                      more expressions, or a string.
  <info>mixed</info>  <strong>$sort_exprs</strong>  Additional sort_expr parameters.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object.


id: TableSelect::where
type: function
doc:
<comment>Description:</comment>
  Set select search condition
  
  Sets the search condition to filter.

<comment>Param:</comment>
  <info>string</info>  <strong>$where_expr</strong>  Define the search condition to filter documents or records.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableSelect</info>  A TableSelect object.


id: TableUpdate::__construct
type: function
doc:
<comment>Description:</comment>
  TableUpdate constructor
  
  Initiated by using the update() method.


id: TableUpdate::bind
type: function
doc:
<comment>Description:</comment>
  Bind update query parameters
  
  Binds a value to a specific placeholder.

<comment>Param:</comment>
  <info>array</info>  <strong>$placeholder_values</strong>  The name of the placeholder, and the value to bind, defined as a JSON
                              array.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableUpdate</info>  A TableUpdate object.


id: TableUpdate::execute
type: function
doc:
<comment>Description:</comment>
  Execute update query
  
  Executes the update statement.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableUpdate</info>  A TableUpdate object.


id: TableUpdate::limit
type: function
doc:
<comment>Description:</comment>
  Limit update row count
  
  Set the maximum number of records or documents update.

<comment>Param:</comment>
  <info>int</info>  <strong>$rows</strong>  The maximum number of records or documents to update.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableUpdate</info>  A TableUpdate object.


id: TableUpdate::orderby
type: function
doc:
<comment>Description:</comment>
  Set sorting criteria
  
  Sets the sorting criteria.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$orderby_expr</strong>   The expressions that define the order by criteria. Can be an array with one
                         or more expressions, or a string.
  <info>mixed</info>  <strong>$orderby_exprs</strong>  Additional sort_expr parameters.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableUpdate</info>  TableUpdate object.


id: TableUpdate::set
type: function
doc:
<comment>Description:</comment>
  Add field to be updated
  
  Updates the column value on records in a table.

<comment>Param:</comment>
  <info>string</info>  <strong>$table_field</strong>            The column name to be updated.
  <info>string</info>  <strong>$expression_or_literal</strong>  The value to be set on the specified column.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableUpdate</info>  TableUpdate object.


id: TableUpdate::where
type: function
doc:
<comment>Description:</comment>
  Set search filter
  
  Set the search condition to filter.

<comment>Param:</comment>
  <info>string</info>  <strong>$where_expr</strong>  The search condition to filter documents or records.

<comment>Return:</comment>
  <info>mysql_xdevapi\TableUpdate</info>  A TableUpdate object.


id: Thread
type: class
doc:
<comment>Description:</comment>
  当调用 Thread 对象的 start 方法时，该对象的 run 方法中的代码将在独立线程中并行执行。
  
  run 方法中的代码执行完毕之后，独立线程立即退出，并且等待合适的时机由创建者线程加入（join）。
  
  依赖于引擎本身的机制检测何时加入线程可能引发非预期的行为，程序员应该尽可能的显式控制线程加入的时
  机。


id: Thread::getCreatorId
type: function
doc:
<comment>Description:</comment>
  识别
  
  返回创建当前线程的线程ID。

<comment>Return:</comment>
  <info>int</info>  线程ID，数字格式


id: Thread::getCurrentThread
type: function
doc:
<comment>Description:</comment>
  识别
  
  获取当前执行线程的引用。

<comment>Return:</comment>
  <info>Thread</info>  表示当前执行线程的对象。


id: Thread::getCurrentThreadId
type: function
doc:
<comment>Description:</comment>
  识别
  
  返回当前执行线程的ID

<comment>Return:</comment>
  <info>int</info>  线程ID，数字格式


id: Thread::getThreadId
type: function
doc:
<comment>Description:</comment>
  识别
  
  返回引用线程的ID

<comment>Return:</comment>
  <info>int</info>  线程ID，数字格式


id: Thread::isJoined
type: function
doc:
<comment>Description:</comment>
  状态监测
  
  线程是否已经被加入（join）

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Thread::isStarted
type: function
doc:
<comment>Description:</comment>
  状态检测
  
  线程是否开始执行

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Thread::join
type: function
doc:
<comment>Description:</comment>
  同步
  
  让当前执行上下文等待被引用线程执行完毕

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Thread::start
type: function
doc:
<comment>Description:</comment>
  执行
  
  在独立线程中执行 run 方法

<comment>Param:</comment>
  <info>int</info>  <strong>$options</strong>  可选参数，用来控制线程继承。默认值为 PTHREADS_INHERIT_ALL

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Threaded
type: class
doc:
<comment>Description:</comment>
  Threaded 对象提供支持 pthreads 操作的基本功能，包括同步方法以及其他对程序员很有帮助的接口。
  
  重要的是，Threaded 提供了隐式的线程安全机制，这个对象中的所有操作都是线程安全的。


id: Threaded::chunk
type: function
doc:
<comment>Description:</comment>
  操作
  
  获取给定数量的对象属性表，可以选择是否保留键名称。

<comment>Param:</comment>
  <info>int</info>   <strong>$size</strong>      要获取的条目数量
  <info>bool</info>  <strong>$preserve</strong>  保留成员原有的键名称，默认为 false

<comment>Return:</comment>
  <info>array</info>  数组对象，包含从对象属性表中返回的给定数量的条目。


id: Threaded::count
type: function
doc:
<comment>Description:</comment>
  操作
  
  返回对象的属性数量

<comment>Return:</comment>
  <info>int</info>  


id: Threaded::extend
type: function
doc:
<comment>Description:</comment>
  Runtime Manipulation
  
  Makes thread safe standard class at runtime

<comment>Param:</comment>
  <info>string</info>  <strong>$class</strong>  The class to extend

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Threaded::isRunning
type: function
doc:
<comment>Description:</comment>
  状态检测
  
  对象是否正在运行

<comment>Return:</comment>
  <info>bool</info>  表示运行状态的布尔值  如果对象的 run 方法正在执行，则视该对象为处于运行状态 
        
        如果对象的 run 方法正在执行，则视该对象为处于运行状态


id: Threaded::isTerminated
type: function
doc:
<comment>Description:</comment>
  状态检测
  
  检测是否因致命错误或未捕获的异常而导致执行过程异常终止

<comment>Return:</comment>
  <info>bool</info>  布尔值，表示是否异常终止


id: Threaded::merge
type: function
doc:
<comment>Description:</comment>
  操作
  
  将数据合并到当前对象

<comment>Param:</comment>
  <info>mixed</info>  <strong>$from</strong>       要合并的数据
  <info>bool</info>   <strong>$overwrite</strong>  如果现有对象已经存在同键的数据，是否覆盖。默认为 true

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Threaded::notify
type: function
doc:
<comment>Description:</comment>
  同步控制
  
  向对象发送唤醒通知

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Threaded::notifyOne
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  Send notification to the referenced object. This unblocks at least one of the blocked threads (as
  opposed to unblocking all of them, as seen with Threaded::notify).

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Threaded::pop
type: function
doc:
<comment>Description:</comment>
  操作
  
  弹出对象属性表中的最后一项数据

<comment>Return:</comment>
  <info>bool</info>  对象属性表中最后一项数据


id: Threaded::run
type: function
doc:
<comment>Description:</comment>
  执行
  
  如果需要在多线程环境下执行代码，必须实现本方法

<comment>Return:</comment>
  <info>void</info>  无返回值。即使代码中 run 方法有返回值，也会被忽略


id: Threaded::shift
type: function
doc:
<comment>Description:</comment>
  Manipulation
  
  弹出对象属性表中第一项数据

<comment>Return:</comment>
  <info>boolean</info>  对象属性表中的第一项数据


id: Threaded::synchronized
type: function
doc:
<comment>Description:</comment>
  同步控制
  
  在发起调用的线程上下文中获取对象同步锁，然后同步执行代码块

<comment>Param:</comment>
  <info>Closure</info>  <strong>$block</strong>  要执行的代码块
  <info>mixed</info>    <strong>$args</strong>   传送给代码块的不定长参数

<comment>Return:</comment>
  <info>mixed</info>  代码块的返回值


id: Threaded::wait
type: function
doc:
<comment>Description:</comment>
  Synchronization
  
  让发起调用的线程上下文进入等待状态，直到收到其他线程的唤醒通知

<comment>Param:</comment>
  <info>int</info>  <strong>$timeout</strong>  可选参数，等待时间，以微秒计

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Throwable
type: class
doc:
<comment>Description:</comment>
  <class>Throwable</class> 是能被 <return>throw</return> 语句抛出的最基本的接口（interface），包含了  <class>Error</class> 和 <class>Exception</class> 。
  
  PHP 类无法直接实现 （implement） <class>Throwable</class> 接口，而应当去继承 <class>Exception</class>。


id: Throwable::__toString
type: function
doc:
<comment>Description:</comment>
  获取 Throwable 对象 string 形式的表达

<comment>Return:</comment>
  <info>string</info>  返回抛出对象 <info>string</info> 形式的表达。

<comment>See Also:</comment>
   * Exception::__toString


id: Throwable::getCode
type: function
doc:
<comment>Description:</comment>
  获取异常代码
  
  返回 thrown 对象关联的的错误号。

<comment>Return:</comment>
  <info>int</info>  返回  <class>Exception</class> 的 <info>int</info> 异常代码， 但如果是 <class>Exception</class> 的子类，可能会使其他类型（例如，
       <class>PDOException</class> 返回的类型是 <info>string</info> ）。

<comment>See Also:</comment>
   * Exception::getCode


id: Throwable::getFile
type: function
doc:
<comment>Description:</comment>
  获取创建对象的文件
  
  返回对象抛出的文件名称

<comment>Return:</comment>
  <info>string</info>  返回对象抛出文件的名称

<comment>See Also:</comment>
   * Exception::getFile


id: Throwable::getLine
type: function
doc:
<comment>Description:</comment>
  获取初始化对象时候的行号
  
  返回初始化 throwable 时的行号。

<comment>Return:</comment>
  <info>int</info>  返回初始化 throwable 时的行号。

<comment>See Also:</comment>
   * Exception::getLine


id: Throwable::getMessage
type: function
doc:
<comment>Description:</comment>
  获取信息
  
  返回抛出对象所关联的描述信息。

<comment>Return:</comment>
  <info>string</info>  返回抛出对象所关联的描述信息。

<comment>See Also:</comment>
   * Exception::getMessage


id: Throwable::getPrevious
type: function
doc:
<comment>Description:</comment>
  返回先前的 Throwable
  
  返回任意一个先前的错误 (例如，  Exception::__construct中提供的第三个参数)。

<comment>Return:</comment>
  <info>Throwable|null</info>  如果有的话，返回先前的 <class>Throwable</class>，否则就返回 <info>null</info> 。

<comment>See Also:</comment>
   * Exception::getPrevious


id: Throwable::getTrace
type: function
doc:
<comment>Description:</comment>
  获取堆栈踪迹（Stack Trace）
  
  返回 <info>array</info> 的堆栈踪迹（Stack Trace）。

<comment>Return:</comment>
  <info>array</info>  返回 <info>array</info> 的堆栈踪迹（Stack Trace），和 <strong>debug_backtrace()</strong> 具有相同的格式。

<comment>See Also:</comment>
   * Exception::getTrace


id: Throwable::getTraceAsString
type: function
doc:
<comment>Description:</comment>
  以 string 形式获取堆栈踪迹

<comment>Return:</comment>
  <info>string</info>  返回 string 形式的堆栈踪迹（Stack Trace）。

<comment>See Also:</comment>
   * Exception::getTraceAsString


id: Transliterator::__construct
type: function
doc:
<comment>Description:</comment>
  Private constructor to deny instantiation
  
  This method should not be called. Its only purpose is to deny instantiation with the new operator.
  
  Use the factory methods Transliterator::create or Transliterator::createFromRules instead.

<comment>See Also:</comment>
   * Transliterator::create
   * Transliterator::createFromRules


id: Transliterator::create
type: function
doc:
<comment>Description:</comment>
  Create a transliterator
  
  面向对象风格
  
  过程化风格
  
  Opens a Transliterator by ID.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$id</strong>         The ID. A list of all registered transliterator IDs can be retrieved by using
                      Transliterator::listIDs.
  <info>int</info>     <strong>$direction</strong>  The direction, defaults to  Transliterator::FORWARD. May also be set to
                      Transliterator::REVERSE.

<comment>Return:</comment>
  <info>Transliterator|null</info>  Returns a <class>Transliterator</class> object on success, or <info>null</info> on failure.

<comment>See Also:</comment>
   * Transliterator::getErrorMessage
   * Transliterator::__construct


id: Transliterator::createFromRules
type: function
doc:
<comment>Description:</comment>
  Create transliterator from rules
  
  面向对象风格
  
  过程化风格
  
  Creates a Transliterator from rules.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$rules</strong>      The rules as defined in Transform Rules Syntax of UTS #35: Unicode LDML.
  <info>int</info>     <strong>$direction</strong>  The direction, defaults to  Transliterator::FORWARD. May also be set to
                      Transliterator::REVERSE.

<comment>Return:</comment>
  <info>Transliterator|null</info>  Returns a <class>Transliterator</class> object on success, or <info>null</info> on failure.

<comment>See Also:</comment>
   * Transliterator::getErrorMessage
   * Transliterator::create


id: Transliterator::createInverse
type: function
doc:
<comment>Description:</comment>
  Create an inverse transliterator
  
  面向对象风格
  
  过程化风格
  
  Opens the inverse transliterator.
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>Transliterator|null</info>  Returns a <class>Transliterator</class> object on success, or <info>null</info> on failure

<comment>See Also:</comment>
   * Transliterator::getErrorMessage
   * Transliterator::create


id: Transliterator::getErrorCode
type: function
doc:
<comment>Description:</comment>
  Get last error code
  
  面向对象风格
  
  过程化风格
  
  Gets the last error code for this transliterator.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Transliterator</info>  <strong>$transliterator</strong>  

<comment>Return:</comment>
  <info>int|false</info>  The error code on success, or <info>false</info> if none exists, or on failure.

<comment>See Also:</comment>
   * Transliterator::getErrorMessage
   * Transliterator::listIDs


id: Transliterator::getErrorMessage
type: function
doc:
<comment>Description:</comment>
  Get last error message
  
  面向对象风格
  
  过程化风格
  
  Gets the last error message for this transliterator.
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Transliterator</info>  <strong>$transliterator</strong>  

<comment>Return:</comment>
  <info>string|false</info>  The error message on success, or <info>false</info> if none exists, or on failure.

<comment>See Also:</comment>
   * Transliterator::getErrorCode
   * Transliterator::listIDs


id: Transliterator::listIDs
type: function
doc:
<comment>Description:</comment>
  Get transliterator IDs
  
  面向对象风格
  
  过程化风格
  
  Returns an array with the registered transliterator IDs.

<comment>Return:</comment>
  <info>array|false</info>  An <info>array</info> of registered transliterator IDs on success, 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * Transliterator::getErrorMessage
   * Transliterator::transliterate


id: Transliterator::transliterate
type: function
doc:
<comment>Description:</comment>
  Transliterate a string
  
  面向对象风格
  
  过程化风格
  
  Transforms a string or part thereof using an ICU transliterator.

<comment>Param:</comment>
  <info>Transliterator|string</info>  <strong>$transliterator</strong>  In the procedural version, either a <class>Transliterator</class> or a
                                          <info>string</info> from which a <class>Transliterator</class> can be built.
  <info>string</info>                 <strong>$string</strong>          The string to be transformed.
  <info>int</info>                    <strong>$start</strong>           The start index (in UTF-16 code units) from which the
                                          string will start to be transformed, inclusive. Indexing
                                          starts at 0. The text before will be left as is.
  <info>int</info>                    <strong>$end</strong>             The end index (in UTF-16 code units) until which the
                                          string will be transformed, exclusive. Indexing starts at
                                          0. The text after will be left as is.

<comment>Return:</comment>
  <info>string|false</info>  The transformed string on success,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * Transliterator::getErrorMessage
   * Transliterator::__construct


id: Traversable
type: class
doc:
<comment>Description:</comment>
  检测一个类是否可以使用 foreach 进行遍历的接口。
  
  无法被单独实现的基本抽象接口。相反，它必须由 IteratorAggregate  或 Iterator 接口实现。


id: UConverter::__construct
type: function
doc:
<comment>Description:</comment>
  Create UConverter object
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string|null</info>  <strong>$destination_encoding</strong>  
  <info>string|null</info>  <strong>$source_encoding</strong>       


id: UConverter::convert
type: function
doc:
<comment>Description:</comment>
  Convert string from one charset to another
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$str</strong>      
  <info>bool</info>    <strong>$reverse</strong>  

<comment>Return:</comment>
  <info>string|false</info>  


id: UConverter::fromUCallback
type: function
doc:
<comment>Description:</comment>
  Default "from" callback function
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>    <strong>$reason</strong>     
  <info>array</info>  <strong>$source</strong>     
  <info>int</info>    <strong>$codePoint</strong>  
  <info>int</info>    <strong>$error</strong>      

<comment>Return:</comment>
  <info>string|int|array|null</info>  


id: UConverter::getAliases
type: function
doc:
<comment>Description:</comment>
  Get the aliases of the given name
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>array|false|null</info>  


id: UConverter::getAvailable
type: function
doc:
<comment>Description:</comment>
  Get the available canonical converter names
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  


id: UConverter::getDestinationEncoding
type: function
doc:
<comment>Description:</comment>
  Get the destination encoding
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string|false|null</info>  


id: UConverter::getDestinationType
type: function
doc:
<comment>Description:</comment>
  Get the destination converter type
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int|false|null</info>  


id: UConverter::getErrorCode
type: function
doc:
<comment>Description:</comment>
  Get last error code on the object
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  


id: UConverter::getErrorMessage
type: function
doc:
<comment>Description:</comment>
  Get last error message on the object
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string|null</info>  


id: UConverter::getSourceEncoding
type: function
doc:
<comment>Description:</comment>
  Get the source encoding
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string|false|null</info>  


id: UConverter::getSourceType
type: function
doc:
<comment>Description:</comment>
  Get the source converter type
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int|false|null</info>  


id: UConverter::getStandards
type: function
doc:
<comment>Description:</comment>
  Get standards associated to converter names
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array|null</info>  


id: UConverter::getSubstChars
type: function
doc:
<comment>Description:</comment>
  Get substitution chars
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string|false|null</info>  


id: UConverter::reasonText
type: function
doc:
<comment>Description:</comment>
  Get string representation of the callback reason
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>  <strong>$reason</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: UConverter::setDestinationEncoding
type: function
doc:
<comment>Description:</comment>
  Set the destination encoding
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$encoding</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: UConverter::setSourceEncoding
type: function
doc:
<comment>Description:</comment>
  Set the source encoding
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$encoding</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: UConverter::setSubstChars
type: function
doc:
<comment>Description:</comment>
  Set the substitution chars
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$chars</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: UConverter::toUCallback
type: function
doc:
<comment>Description:</comment>
  Default "to" callback function
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>     <strong>$reason</strong>     
  <info>string</info>  <strong>$source</strong>     
  <info>string</info>  <strong>$codeUnits</strong>  
  <info>int</info>     <strong>$error</strong>      

<comment>Return:</comment>
  <info>string|int|array|null</info>  


id: UConverter::transcode
type: function
doc:
<comment>Description:</comment>
  Convert a string from one character encoding to another
  
  Converts <strong>$str</strong> from <strong>$fromEncoding</strong> to <strong>$toEncoding</strong>.

<comment>Param:</comment>
  <info>string</info>      <strong>$str</strong>           The <info>string</info> to be converted.
  <info>string</info>      <strong>$toEncoding</strong>    The desired encoding of the result.
  <info>string</info>      <strong>$fromEncoding</strong>  The current encoding used to interpret <strong>$str</strong>.
  <info>array|null</info>  <strong>$options</strong>       An optional <info>array</info>, which may contain the following keys: <return>'to_subst'</return> -
                             the substitution character to use in place of any character of <strong>$str</strong>
                             which cannot be encoded in <strong>$toEncoding</strong>. If specified, it must represent
                             a single character in the target encoding.

<comment>Return:</comment>
  <info>string|false</info>  Returns the converted string 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * <strong>mb_convert_encoding()</strong>
   * <strong>iconv()</strong>


id: UI\Area
type: class
doc:
<comment>Description:</comment>
  An Area represents a canvas which can be used to draw, and respond to mouse and key events.


id: UI\Area::Alt
type: constant
doc:
<comment>Description:</comment>
  Shall be set in the modifiers passed to key and mouse events when the ALT key is active


id: UI\Area::Ctrl
type: constant
doc:
<comment>Description:</comment>
  Shall be set in the modifiers passed to key and mouse events when the CTRL key is active


id: UI\Area::Shift
type: constant
doc:
<comment>Description:</comment>
  Shall be set in the modifiers passed to key and mouse events when the SHIFT key is active


id: UI\Area::onDraw
type: function
doc:
<comment>Description:</comment>
  Draw Callback
  
  Shall be invoked when this Area requires redrawing

<comment>Param:</comment>
  <info>UI\Draw\Pen</info>  <strong>$pen</strong>        A Pen suitable for drawing in this Area
  <info>UI\Size</info>      <strong>$areaSize</strong>   The size of the Area
  <info>UI\Point</info>     <strong>$clipPoint</strong>  The clip point of the Area
  <info>UI\Size</info>      <strong>$clipSize</strong>   The clip size of the Area


id: UI\Area::onKey
type: function
doc:
<comment>Description:</comment>
  Key Callback
  
  Shall be executed on key events

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>    The key pressed
  <info>int</info>     <strong>$ext</strong>    The extended key pressed
  <info>int</info>     <strong>$flags</strong>  Event modifiers


id: UI\Area::onMouse
type: function
doc:
<comment>Description:</comment>
  Mouse Callback
  
  Shall be executed on mouse events

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$areaPoint</strong>  The co-ordinates of the event
  <info>UI\Size</info>   <strong>$areaSize</strong>   The size of the area of the event
  <info>int</info>       <strong>$flags</strong>      Event modifiers


id: UI\Area::scrollTo
type: function
doc:
<comment>Description:</comment>
  Area Scroll
  
  Scroll this Area

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>  The point to scroll to
  <info>UI\Size</info>   <strong>$size</strong>   The size of the scroll pane


id: UI\Area::setSize
type: function
doc:
<comment>Description:</comment>
  Set Size
  
  Sets the size of this Area

<comment>Param:</comment>
  <info>UI\Size</info>  <strong>$size</strong>  The new size


id: UI\Control::getParent
type: function
doc:
<comment>Description:</comment>
  Get Parent Control
  
  Shall return the parent Control

<comment>Return:</comment>
  <info>UI\Control</info>  


id: UI\Control::getTopLevel
type: function
doc:
<comment>Description:</comment>
  Get Top Level
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  


id: UI\Control::isEnabled
type: function
doc:
<comment>Description:</comment>
  Determine if Control is enabled
  
  Shall detect if this Control is enabled

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Control::isVisible
type: function
doc:
<comment>Description:</comment>
  Determine if Control is visible
  
  Shall detect if this Control is visible

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Control::setParent
type: function
doc:
<comment>Description:</comment>
  Set Parent Control
  
  Shall set the parent Control of this Control

<comment>Param:</comment>
  <info>UI\Control</info>  <strong>$parent</strong>  The parent Control


id: UI\Controls\Box::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Box
  
  Shall construct a new box

<comment>Param:</comment>
  <info>int</info>  <strong>$orientation</strong>  Box::Horizontal or Box::Vertical


id: UI\Controls\Box::append
type: function
doc:
<comment>Description:</comment>
  Append Control
  
  Shall append the given control to this Box

<comment>Param:</comment>
  <info>Control</info>  <strong>$control</strong>   The control to append
  <info>bool</info>     <strong>$stretchy</strong>  Set true to stretch the control

<comment>Return:</comment>
  <info>int</info>  Shall return the index of the appended control, may be 0


id: UI\Controls\Box::delete
type: function
doc:
<comment>Description:</comment>
  Delete Control
  
  Shall delete the control at the given index from this Box

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The index of the control to delete

<comment>Return:</comment>
  <info>bool</info>  Indication of success


id: UI\Controls\Box::getOrientation
type: function
doc:
<comment>Description:</comment>
  Get Orientation
  
  Shall retrieve the orientation of this Box

<comment>Return:</comment>
  <info>int</info>  


id: UI\Controls\Box::isPadded
type: function
doc:
<comment>Description:</comment>
  Padding Detection
  
  Shall detect if padding is enabled on this Box

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Controls\Box::setPadded
type: function
doc:
<comment>Description:</comment>
  Set Padding
  
  Shall enable or disable padding on this Box

<comment>Param:</comment>
  <info>bool</info>  <strong>$padded</strong>  


id: UI\Controls\Button::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Button
  
  Shall construct a new Button

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The text (label) for this Button


id: UI\Controls\Button::getText
type: function
doc:
<comment>Description:</comment>
  Get Text
  
  Shall retrieve the text (label) for this Button

<comment>Return:</comment>
  <info>string</info>  The current text (label)


id: UI\Controls\Button::setText
type: function
doc:
<comment>Description:</comment>
  Set Text
  
  Shall set the text (label) for this Button

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The new text (label)


id: UI\Controls\Check::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Check
  
  Shall construct a new Check

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The text (label) for the Check box


id: UI\Controls\Check::getText
type: function
doc:
<comment>Description:</comment>
  Get Text
  
  Shall return the text (label) for this Check

<comment>Return:</comment>
  <info>string</info>  The current text (label)


id: UI\Controls\Check::isChecked
type: function
doc:
<comment>Description:</comment>
  Checked Detection
  
  Shall detect the status of this Check

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Controls\Check::onToggle
type: function
doc:
<comment>Description:</comment>
  Toggle Callback
  
  Shall be executed when the status of this Check is changed


id: UI\Controls\Check::setChecked
type: function
doc:
<comment>Description:</comment>
  Set Checked
  
  Shall change the status of this Check

<comment>Param:</comment>
  <info>bool</info>  <strong>$checked</strong>  The new status


id: UI\Controls\Check::setText
type: function
doc:
<comment>Description:</comment>
  Set Text
  
  Shall set the text (label) for this Check

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The new text (label)


id: UI\Controls\ColorButton
type: class
doc:
<comment>Description:</comment>
  A Color Button is a button which displays a color picker when clicked


id: UI\Controls\ColorButton::getColor
type: function
doc:
<comment>Description:</comment>
  Get Color
  
  Shall retrieve the currently selected Color

<comment>Return:</comment>
  <info>UI\Color</info>  


id: UI\Controls\ColorButton::onChange
type: function
doc:
<comment>Description:</comment>
  Change Handler
  
  Shall be executed when the selected Color is changed


id: UI\Controls\ColorButton::setColor
type: function
doc:
<comment>Description:</comment>
  Set Color
  
  Shall set the currently selected Color

<comment>Param:</comment>
  <info>UI\Draw\Color</info>  <strong>$color</strong>  The new color


id: UI\Controls\Combo
type: class
doc:
<comment>Description:</comment>
  A Combo control represents a list of options, like the familiar select HTML element.


id: UI\Controls\Combo::append
type: function
doc:
<comment>Description:</comment>
  Append Option
  
  Append an option to this Combo

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The text for the new option


id: UI\Controls\Combo::getSelected
type: function
doc:
<comment>Description:</comment>
  Get Selected Option
  
  Shall retrieve the index of the option selected in this Combo

<comment>Return:</comment>
  <info>int</info>  


id: UI\Controls\Combo::onSelected
type: function
doc:
<comment>Description:</comment>
  Selected Handler
  
  Shall be executed when an option is selected in this Combo


id: UI\Controls\Combo::setSelected
type: function
doc:
<comment>Description:</comment>
  Set Selected Option
  
  Shall set the currently selected option in this Combo

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The index of the option to select


id: UI\Controls\EditableCombo
type: class
doc:
<comment>Description:</comment>
  An Editable Combo is a Combo which allows the user to enter custom options


id: UI\Controls\EditableCombo::append
type: function
doc:
<comment>Description:</comment>
  Append Option
  
  Shall append a new option to this Editable Combo

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The text for the new option


id: UI\Controls\EditableCombo::getText
type: function
doc:
<comment>Description:</comment>
  Get Text
  
  Get the value of the currently selected option in this Editable Combo

<comment>Return:</comment>
  <info>string</info>  


id: UI\Controls\EditableCombo::onChange
type: function
doc:
<comment>Description:</comment>
  Change Handler
  
  Shall be executed when the value of this Editable Combobox changes


id: UI\Controls\EditableCombo::setText
type: function
doc:
<comment>Description:</comment>
  Set Text
  
  Shall set the text of the currently selected option in this Editable Combo

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The new text


id: UI\Controls\Entry
type: class
doc:
<comment>Description:</comment>
  An Entry is a text entry control, suitable for entering plain text, passwords, or search terms.


id: UI\Controls\Entry::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Entry
  
  Construct a new entry of the given type

<comment>Param:</comment>
  <info>int</info>  <strong>$type</strong>  Entry::Normal, Entry::Password, or Entry::Search


id: UI\Controls\Entry::getText
type: function
doc:
<comment>Description:</comment>
  Get Text
  
  Shall return the current text from this Entry

<comment>Return:</comment>
  <info>string</info>  The current text


id: UI\Controls\Entry::isReadOnly
type: function
doc:
<comment>Description:</comment>
  Detect Read Only
  
  Shall detect if this Entry is read only

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Controls\Entry::onChange
type: function
doc:
<comment>Description:</comment>
  Change Handler
  
  Shall be executed when the text in this Entry changes


id: UI\Controls\Entry::setReadOnly
type: function
doc:
<comment>Description:</comment>
  Set Read Only
  
  Shall enable or disable read only for this Entry

<comment>Param:</comment>
  <info>bool</info>  <strong>$readOnly</strong>  


id: UI\Controls\Entry::setText
type: function
doc:
<comment>Description:</comment>
  Set Text
  
  Shall set the text for this Entry

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The new text


id: UI\Controls\Form
type: class
doc:
<comment>Description:</comment>
  A Form is a control which allows the arrangement of other controls into a familiar layout (the
  form).


id: UI\Controls\Form::append
type: function
doc:
<comment>Description:</comment>
  Append Control
  
  Shall append the control to the form, and set the label

<comment>Param:</comment>
  <info>string</info>      <strong>$label</strong>     The text for the label
  <info>UI\Control</info>  <strong>$control</strong>   A control
  <info>bool</info>        <strong>$stretchy</strong>  Should be set true to stretch the control

<comment>Return:</comment>
  <info>int</info>  Shall return the index of the appended control, may be 0


id: UI\Controls\Form::delete
type: function
doc:
<comment>Description:</comment>
  Delete Control
  
  Shall delete the control at the given index in this Form

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The index of the control to remove

<comment>Return:</comment>
  <info>bool</info>  Indication of succcess


id: UI\Controls\Form::isPadded
type: function
doc:
<comment>Description:</comment>
  Padding Detection
  
  Shall detect if padding is enabled on this Form

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Controls\Form::setPadded
type: function
doc:
<comment>Description:</comment>
  Set Padding
  
  Shall enable or disable padding on this Form

<comment>Param:</comment>
  <info>bool</info>  <strong>$padded</strong>  


id: UI\Controls\Grid
type: class
doc:
<comment>Description:</comment>
  A Grid is a control which is allows the arrangement of children into a grid


id: UI\Controls\Grid::append
type: function
doc:
<comment>Description:</comment>
  Append Control
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>UI\Control</info>  <strong>$control</strong>  The Control to append
  <info>int</info>         <strong>$left</strong>     
  <info>int</info>         <strong>$top</strong>      
  <info>int</info>         <strong>$xspan</strong>    
  <info>int</info>         <strong>$yspan</strong>    
  <info>bool</info>        <strong>$hexpand</strong>  
  <info>int</info>         <strong>$halign</strong>   
  <info>bool</info>        <strong>$vexpand</strong>  
  <info>int</info>         <strong>$valign</strong>   


id: UI\Controls\Grid::isPadded
type: function
doc:
<comment>Description:</comment>
  Padding Detection
  
  Shall detect if padding is enabled on this Grid

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Controls\Grid::setPadded
type: function
doc:
<comment>Description:</comment>
  Set Padding
  
  Shall enable or disable padding for this Grid

<comment>Param:</comment>
  <info>bool</info>  <strong>$padding</strong>  


id: UI\Controls\Group::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Group
  
  Shall construct a new Group with the given title

<comment>Param:</comment>
  <info>string</info>  <strong>$title</strong>  The text for the title label


id: UI\Controls\Group::append
type: function
doc:
<comment>Description:</comment>
  Append Control
  
  Shall append a control to this Group

<comment>Param:</comment>
  <info>UI\Control</info>  <strong>$control</strong>  The control to append


id: UI\Controls\Group::getTitle
type: function
doc:
<comment>Description:</comment>
  Get Title
  
  Shall return the current title for this Group

<comment>Return:</comment>
  <info>string</info>  The current title


id: UI\Controls\Group::hasMargin
type: function
doc:
<comment>Description:</comment>
  Margin Detection
  
  Shall detect if this Group has a margin

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Controls\Group::setMargin
type: function
doc:
<comment>Description:</comment>
  Set Margin
  
  Shall enable or disable margins for this Group

<comment>Param:</comment>
  <info>bool</info>  <strong>$margin</strong>  


id: UI\Controls\Group::setTitle
type: function
doc:
<comment>Description:</comment>
  Set Title
  
  Shall set the title for this Group

<comment>Param:</comment>
  <info>string</info>  <strong>$title</strong>  The text for the new title


id: UI\Controls\Label
type: class
doc:
<comment>Description:</comment>
  A Label is a single line of text, meant to identify, for the user, some element of the interface.


id: UI\Controls\Label::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Label
  
  Shall construct a new Label

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The text for this label


id: UI\Controls\Label::getText
type: function
doc:
<comment>Description:</comment>
  Get Text
  
  Shall return the current text for this Label
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string</info>  


id: UI\Controls\Label::setText
type: function
doc:
<comment>Description:</comment>
  Set Text
  
  Shall set the text for this Label

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The new text


id: UI\Controls\MultilineEntry
type: class
doc:
<comment>Description:</comment>
  A Multiline Entry is a text entry control able to hold multiple lines of text, with or without
  wrapping.


id: UI\Controls\MultilineEntry::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Multiline Entry
  
  Shall construct a new Multiline Entry of the given type

<comment>Param:</comment>
  <info>int</info>  <strong>$type</strong>  MultilineEntry::Wrap or MultilineEntry::NoWrap


id: UI\Controls\MultilineEntry::append
type: function
doc:
<comment>Description:</comment>
  Append Text
  
  Shall append the given text to the text in this Multiline Entry

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The text to append


id: UI\Controls\MultilineEntry::getText
type: function
doc:
<comment>Description:</comment>
  Get Text
  
  Shall return the text in this Multiline Entry

<comment>Return:</comment>
  <info>string</info>  


id: UI\Controls\MultilineEntry::isReadOnly
type: function
doc:
<comment>Description:</comment>
  Read Only Detection
  
  Shall detect if this Multiline Entry is read only

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Controls\MultilineEntry::onChange
type: function
doc:
<comment>Description:</comment>
  Change Handler
  
  Shall be executed when the text in this Multiline Entry is changed


id: UI\Controls\MultilineEntry::setReadOnly
type: function
doc:
<comment>Description:</comment>
  Set Read Only
  
  Shall enable or disable read only on this Multiline Entry

<comment>Param:</comment>
  <info>bool</info>  <strong>$readOnly</strong>  


id: UI\Controls\MultilineEntry::setText
type: function
doc:
<comment>Description:</comment>
  Set Text
  
  Shall set the text in this Multiline Entry

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The new text


id: UI\Controls\Picker
type: class
doc:
<comment>Description:</comment>
  A Picker represents a button which when clicked presents a native Date/Time/DateTime Picker
  interface to the user.


id: UI\Controls\Picker::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Picker
  
  Construct a new Picker of the given type

<comment>Param:</comment>
  <info>int</info>  <strong>$type</strong>  Picker::Date, Picker::Time, or Picker::DateTime


id: UI\Controls\Progress
type: class
doc:
<comment>Description:</comment>
  A Progress control is a familiar Progress bar: It represents progress as a percentage, with a
  possible range of 0 to 100 (inclusive).


id: UI\Controls\Progress::getValue
type: function
doc:
<comment>Description:</comment>
  Get Value
  
  Shall retrieve the current value of this Progress bar

<comment>Return:</comment>
  <info>int</info>  


id: UI\Controls\Progress::setValue
type: function
doc:
<comment>Description:</comment>
  Set Value
  
  Shall set the value for this Progress bar

<comment>Param:</comment>
  <info>int</info>  <strong>$value</strong>  An integer between 0 and 100 (inclusive)


id: UI\Controls\Radio::append
type: function
doc:
<comment>Description:</comment>
  Append Option
  
  Shall append a new option to this Radio

<comment>Param:</comment>
  <info>string</info>  <strong>$text</strong>  The text (label) for the option


id: UI\Controls\Radio::getSelected
type: function
doc:
<comment>Description:</comment>
  Get Selected Option
  
  Shall retrieve the index of the currently selected option in this Radio

<comment>Return:</comment>
  <info>int</info>  


id: UI\Controls\Radio::onSelected
type: function
doc:
<comment>Description:</comment>
  Selected Handler
  
  Shall be executed when the option selected in this Radio changes


id: UI\Controls\Radio::setSelected
type: function
doc:
<comment>Description:</comment>
  Set Selected Option
  
  Shall set the currently selected option in this Radio

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The index of the option to select


id: UI\Controls\Separator
type: class
doc:
<comment>Description:</comment>
  A Separator represents a control separator, it has no other function.


id: UI\Controls\Separator::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Separator
  
  Shall construct a new Separator of the given type

<comment>Param:</comment>
  <info>int</info>  <strong>$type</strong>  Separator::Horizonal or Separator::Vertical


id: UI\Controls\Slider
type: class
doc:
<comment>Description:</comment>
  A Slider is a control which represents a range, and a current value in the range. The sliding
  element of the control (sometimes called the "thumb") reflects the value, and can be adjusted
  within the range.


id: UI\Controls\Slider::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Slider
  
  Construct a new Slider with the given range

<comment>Param:</comment>
  <info>int</info>  <strong>$min</strong>  The minimum allowed value
  <info>int</info>  <strong>$max</strong>  The maximum allowed value


id: UI\Controls\Slider::getValue
type: function
doc:
<comment>Description:</comment>
  Get Value
  
  Get the value from this Slider

<comment>Return:</comment>
  <info>int</info>  


id: UI\Controls\Slider::onChange
type: function
doc:
<comment>Description:</comment>
  Change Handler
  
  Shall be executed when the value of this Slider changes


id: UI\Controls\Slider::setValue
type: function
doc:
<comment>Description:</comment>
  Set Value
  
  Shall set the value for this Slider

<comment>Param:</comment>
  <info>int</info>  <strong>$value</strong>  The new value


id: UI\Controls\Spin
type: class
doc:
<comment>Description:</comment>
  A Spin box is a text box with an up-down control which changes the integer value in the box,
  within a defined range


id: UI\Controls\Spin::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Spin
  
  Constructs a new Spin with the given range

<comment>Param:</comment>
  <info>int</info>  <strong>$min</strong>  The minimum value allowed
  <info>int</info>  <strong>$max</strong>  The maximum value allowed


id: UI\Controls\Spin::getValue
type: function
doc:
<comment>Description:</comment>
  Get Value
  
  Get the value in this Spin

<comment>Return:</comment>
  <info>int</info>  


id: UI\Controls\Spin::onChange
type: function
doc:
<comment>Description:</comment>
  Change Handler
  
  Shall be executed when the value in this Spin changes


id: UI\Controls\Spin::setValue
type: function
doc:
<comment>Description:</comment>
  Set Value
  
  Set the value in this Spin

<comment>Param:</comment>
  <info>int</info>  <strong>$value</strong>  The new value


id: UI\Controls\Tab
type: class
doc:
<comment>Description:</comment>
  A Tab can contain many pages of Controls, each with a title, each selectable by the user.


id: UI\Controls\Tab::append
type: function
doc:
<comment>Description:</comment>
  Append Page
  
  Append a new page to this Tab

<comment>Param:</comment>
  <info>string</info>      <strong>$name</strong>     The name for the new page
  <info>UI\Control</info>  <strong>$control</strong>  The control for the new page

<comment>Return:</comment>
  <info>int</info>  Shall return the index of the appended control, may be 0


id: UI\Controls\Tab::delete
type: function
doc:
<comment>Description:</comment>
  Delete Page
  
  Shall remove the selected page from this Tab

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The index of the page to remove

<comment>Return:</comment>
  <info>bool</info>  Indication of success


id: UI\Controls\Tab::hasMargin
type: function
doc:
<comment>Description:</comment>
  Margin Detection
  
  Shall detect if the given page has a margin.

<comment>Param:</comment>
  <info>int</info>  <strong>$page</strong>  The index of the page

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Controls\Tab::insertAt
type: function
doc:
<comment>Description:</comment>
  Insert Page
  
  Shall insert a new page into this Tab

<comment>Param:</comment>
  <info>string</info>      <strong>$name</strong>     The name for the new page
  <info>int</info>         <strong>$page</strong>     The index to perform the insertion before
  <info>UI\Control</info>  <strong>$control</strong>  The control for the new page


id: UI\Controls\Tab::pages
type: function
doc:
<comment>Description:</comment>
  Page Count
  
  Shall return the number of pages in this Tab

<comment>Return:</comment>
  <info>int</info>  The number of pages in this Tab


id: UI\Controls\Tab::setMargin
type: function
doc:
<comment>Description:</comment>
  Set Margin
  
  Shall enable or disable margins on the selected page

<comment>Param:</comment>
  <info>int</info>   <strong>$page</strong>    The page to select
  <info>bool</info>  <strong>$margin</strong>  Margin switch


id: UI\Draw\Brush::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Brush
  
  Shall construct a solid brush using the given color

<comment>Param:</comment>
  <info>UI\Draw\Color</info>  <strong>$color</strong>  Can be a UI\Draw\Color or RRGGBBAA


id: UI\Draw\Brush::getColor
type: function
doc:
<comment>Description:</comment>
  Get Color
  
  Shall return a UI\Draw\Color for this brush

<comment>Return:</comment>
  <info>UI\Draw\Color</info>  The current color of the brush


id: UI\Draw\Brush::setColor
type: function
doc:
<comment>Description:</comment>
  Set Color
  
  Shall set the color of this brush to the color provided

<comment>Param:</comment>
  <info>UI\Draw\Color</info>  <strong>$color</strong>  Can be a UI\Draw\Color or RRGGBBAA

<comment>Return:</comment>
  <info>void</info>  


id: UI\Draw\Brush\Gradient::addStop
type: function
doc:
<comment>Description:</comment>
  Stop Manipulation
  
  Shall at a stop of the given color at the given position

<comment>Param:</comment>
  <info>float</info>          <strong>$position</strong>  The position for the new stop
  <info>UI\Draw\Color</info>  <strong>$color</strong>     The color for the new stop, may be UI\Draw\Color or RRGGBBAA

<comment>Return:</comment>
  <info>int</info>  Total number of stops


id: UI\Draw\Brush\Gradient::delStop
type: function
doc:
<comment>Description:</comment>
  Stop Manipulation
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  

<comment>Return:</comment>
  <info>int</info>  Total number of stops


id: UI\Draw\Brush\Gradient::setStop
type: function
doc:
<comment>Description:</comment>
  Stop Manipulation

<comment>Param:</comment>
  <info>int</info>            <strong>$index</strong>     The index of the stop to set
  <info>float</info>          <strong>$position</strong>  The position for the stop
  <info>UI\Draw\Color</info>  <strong>$color</strong>     The color for the stop, may be UI\Draw\Color or RRGGBBAA

<comment>Return:</comment>
  <info>bool</info>  Indication of success


id: UI\Draw\Brush\LinearGradient::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a Linear Gradient
  
  Shall construct a new linear gradient

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$start</strong>  
  <info>UI\Point</info>  <strong>$end</strong>    


id: UI\Draw\Brush\RadialGradient::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Radial Gradient
  
  Shall construct a new radial gradient

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$start</strong>   
  <info>UI\Point</info>  <strong>$outer</strong>   
  <info>float</info>     <strong>$radius</strong>  


id: UI\Draw\Color
type: class
doc:
<comment>Description:</comment>
  Represents RGBA colours, individual channels are accessible via public properties.


id: UI\Draw\Color::__construct
type: function
doc:
<comment>Description:</comment>
  Construct new Color
  
  Shall construct a new color

<comment>Param:</comment>
  <info>UI\Draw\Color</info>  <strong>$color</strong>  May be UI\Draw\Color or RRGGBBAA


id: UI\Draw\Color::getChannel
type: function
doc:
<comment>Description:</comment>
  Color Manipulation
  
  Shall retrieve the value for a channel

<comment>Param:</comment>
  <info>int</info>  <strong>$channel</strong>  Constant channel identity

<comment>Return:</comment>
  <info>float</info>  The current value of the requested channel


id: UI\Draw\Color::setChannel
type: function
doc:
<comment>Description:</comment>
  Color Manipulation
  
  Shall set the selected channel to the given value

<comment>Param:</comment>
  <info>int</info>    <strong>$channel</strong>  Constant channel identity
  <info>float</info>  <strong>$value</strong>    The new value for the selected channel

<comment>Return:</comment>
  <info>void</info>  


id: UI\Draw\Matrix::isInvertible
type: function
doc:
<comment>Description:</comment>
  Invertible Detection
  
  Shall detect if this Matrix may be inverted

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Draw\Matrix::multiply
type: function
doc:
<comment>Description:</comment>
  Multiply Matrix
  
  Shall multiply this matrix with the given matrix

<comment>Return:</comment>
  <info>UI\Draw\Matrix</info>  The new Matrix


id: UI\Draw\Matrix::rotate
type: function
doc:
<comment>Description:</comment>
  Rotate Matrix
  
  Shall rotate this Matrix

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>   
  <info>float</info>     <strong>$amount</strong>  


id: UI\Draw\Matrix::scale
type: function
doc:
<comment>Description:</comment>
  Scale Matrix
  
  Shall scale this Matrix

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$center</strong>  
  <info>UI\Point</info>  <strong>$point</strong>   


id: UI\Draw\Matrix::skew
type: function
doc:
<comment>Description:</comment>
  Skew Matrix
  
  Shall skew this Matrix

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>   
  <info>UI\Point</info>  <strong>$amount</strong>  


id: UI\Draw\Matrix::translate
type: function
doc:
<comment>Description:</comment>
  Translate Matrix
  
  Shall translate this Matrix

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>  


id: UI\Draw\Path
type: class
doc:
<comment>Description:</comment>
  A Draw Path guides a Draw Pen, telling the Pen where to draw on an Area.


id: UI\Draw\Path::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Path
  
  Shall construct a new path in the given mode

<comment>Param:</comment>
  <info>int</info>  <strong>$mode</strong>  Path::Winding or Path::Alternate


id: UI\Draw\Path::addRectangle
type: function
doc:
<comment>Description:</comment>
  Draw a Rectangle
  
  Shall map the path of a rectangle of the given size, at the given point

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>  The point to begin the shape
  <info>UI\Size</info>   <strong>$size</strong>   The size of the rectangle


id: UI\Draw\Path::arcTo
type: function
doc:
<comment>Description:</comment>
  Draw an Arc
  
  Shall map the path for an arc

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>     The point to begin mapping
  <info>float</info>     <strong>$radius</strong>    The radius of the arc
  <info>float</info>     <strong>$angle</strong>     The angle of the arc
  <info>float</info>     <strong>$sweep</strong>     The sweep of the arc
  <info>float</info>     <strong>$negative</strong>  


id: UI\Draw\Path::bezierTo
type: function
doc:
<comment>Description:</comment>
  Draw Bezier Curve
  
  Shall draw a bezier curve

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>     The point at which to begin mapping
  <info>float</info>     <strong>$radius</strong>    The radius of the curve
  <info>float</info>     <strong>$angle</strong>     The angle of the curve
  <info>float</info>     <strong>$sweep</strong>     The sweep of the curve
  <info>float</info>     <strong>$negative</strong>  


id: UI\Draw\Path::lineTo
type: function
doc:
<comment>Description:</comment>
  Draw a Line
  
  Shall map the path for a line

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>     The point to begin mapping
  <info>float</info>     <strong>$radius</strong>    
  <info>float</info>     <strong>$angle</strong>     
  <info>float</info>     <strong>$sweep</strong>     
  <info>float</info>     <strong>$negative</strong>  


id: UI\Draw\Path::newFigure
type: function
doc:
<comment>Description:</comment>
  Draw Figure
  
  Shall map a new figure at the given point

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>  The point to begin mapping


id: UI\Draw\Path::newFigureWithArc
type: function
doc:
<comment>Description:</comment>
  Draw Figure with Arc

<comment>Param:</comment>
  <info>UI\Point</info>  <strong>$point</strong>     
  <info>float</info>     <strong>$radius</strong>    
  <info>float</info>     <strong>$angle</strong>     
  <info>float</info>     <strong>$sweep</strong>     
  <info>float</info>     <strong>$negative</strong>  


id: UI\Draw\Pen
type: class
doc:
<comment>Description:</comment>
  The Pen is passed to the Area Draw event handler, it is used for clipping, filling, stroking, and
  writing to Draw Paths.


id: UI\Draw\Pen::clip
type: function
doc:
<comment>Description:</comment>
  Clip a Path
  
  Shall clip the given Path

<comment>Param:</comment>
  <info>UI\Draw\Path</info>  <strong>$path</strong>  The path to clip


id: UI\Draw\Pen::fill
type: function
doc:
<comment>Description:</comment>
  Fill a Path
  
  Shall fill the given path

<comment>Param:</comment>
  <info>UI\Draw\Path</info>   <strong>$path</strong>  The path to fill
  <info>UI\Draw\Brush</info>  <strong>$with</strong>  The color or brush to fill with


id: UI\Draw\Pen::stroke
type: function
doc:
<comment>Description:</comment>
  Stroke a Path
  
  Shall stroke the given path

<comment>Param:</comment>
  <info>UI\Draw\Path</info>    <strong>$path</strong>    The path to stroke
  <info>UI\Draw\Brush</info>   <strong>$with</strong>    The color or brush to stroke with
  <info>UI\Draw\Stroke</info>  <strong>$stroke</strong>  The configuration of the stroke


id: UI\Draw\Pen::transform
type: function
doc:
<comment>Description:</comment>
  Matrix Transform
  
  Shall perform matrix transformation

<comment>Param:</comment>
  <info>UI\Draw\Matrix</info>  <strong>$matrix</strong>  The matrix to use


id: UI\Draw\Pen::write
type: function
doc:
<comment>Description:</comment>
  Draw Text at Point
  
  Shall draw the given text layout at the given point

<comment>Param:</comment>
  <info>UI\Point</info>             <strong>$point</strong>   The point to perform the drawing
  <info>UI\Draw\Text\Layout</info>  <strong>$layout</strong>  The layout of the text to draw


id: UI\Draw\Stroke::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Stroke
  
  Shall construct a new Stroke

<comment>Param:</comment>
  <info>int</info>    <strong>$cap</strong>         UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square
  <info>int</info>    <strong>$join</strong>        UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or
                      UI\Draw\Line\Join::Bevel
  <info>float</info>  <strong>$thickness</strong>   The thickness of the stroke
  <info>float</info>  <strong>$miterLimit</strong>  Miter limit (default is sensible for all supported platforms)


id: UI\Draw\Stroke::getCap
type: function
doc:
<comment>Description:</comment>
  Get Line Cap
  
  Shall retrieve the line cap setting of this Stroke

<comment>Return:</comment>
  <info>int</info>  UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


id: UI\Draw\Stroke::getJoin
type: function
doc:
<comment>Description:</comment>
  Get Line Join
  
  Shall retrieve the line join setting of this Stroke

<comment>Return:</comment>
  <info>int</info>  UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel


id: UI\Draw\Stroke::getMiterLimit
type: function
doc:
<comment>Description:</comment>
  Get Miter Limit
  
  Shall retrieve the miter limit of this Stroke

<comment>Return:</comment>
  <info>float</info>  The current miter limit


id: UI\Draw\Stroke::getThickness
type: function
doc:
<comment>Description:</comment>
  Get Thickness
  
  Shall retrieve the thickness of this Stroke

<comment>Return:</comment>
  <info>float</info>  The current thickness


id: UI\Draw\Stroke::setCap
type: function
doc:
<comment>Description:</comment>
  Set Line Cap
  
  Shall set the line cap setting for this Stroke

<comment>Param:</comment>
  <info>int</info>  <strong>$cap</strong>  UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


id: UI\Draw\Stroke::setJoin
type: function
doc:
<comment>Description:</comment>
  Set Line Join
  
  Shall set the line join setting for this Stroke

<comment>Param:</comment>
  <info>int</info>  <strong>$join</strong>  UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel


id: UI\Draw\Stroke::setMiterLimit
type: function
doc:
<comment>Description:</comment>
  Set Miter Limit
  
  Set the miter limit for this Stroke

<comment>Param:</comment>
  <info>float</info>  <strong>$limit</strong>  The new limit


id: UI\Draw\Stroke::setThickness
type: function
doc:
<comment>Description:</comment>
  Set Thickness
  
  Shall set the thickness for this Stroke

<comment>Param:</comment>
  <info>float</info>  <strong>$thickness</strong>  The new thickness


id: UI\Draw\Text\Font::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Font
  
  Shall construct a new Font using the given descriptor

<comment>Param:</comment>
  <info>UI\Draw\Text\Font\Descriptor</info>  <strong>$descriptor</strong>  The descriptor for the Font


id: UI\Draw\Text\Font\Descriptor::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Font Descriptor
  
  Shall construct a new Font Descriptor

<comment>Param:</comment>
  <info>string</info>  <strong>$family</strong>   The name of a valid family of fonts
  <info>float</info>   <strong>$size</strong>     The preferred size
  <info>int</info>     <strong>$weight</strong>   UI\Draw\Text\Font\Weight constant
  <info>int</info>     <strong>$italic</strong>   UI\Draw\Text\Font\Italic constant
  <info>int</info>     <strong>$stretch</strong>  UI\Draw\Text\Font\Stretch constant


id: UI\Draw\Text\Font\Descriptor::getFamily
type: function
doc:
<comment>Description:</comment>
  Get Font Family
  
  Shall return the requested font family

<comment>Return:</comment>
  <info>string</info>  


id: UI\Draw\Text\Font\Descriptor::getItalic
type: function
doc:
<comment>Description:</comment>
  Style Detection
  
  Shall return constant setting

<comment>Return:</comment>
  <info>int</info>  


id: UI\Draw\Text\Font\Descriptor::getSize
type: function
doc:
<comment>Description:</comment>
  Size Detection
  
  Shall return the requested size

<comment>Return:</comment>
  <info>float</info>  


id: UI\Draw\Text\Font\Descriptor::getStretch
type: function
doc:
<comment>Description:</comment>
  Style Detection
  
  Shall return requested stretch

<comment>Return:</comment>
  <info>int</info>  


id: UI\Draw\Text\Font\Descriptor::getWeight
type: function
doc:
<comment>Description:</comment>
  Weight Detection
  
  Shall return requested weight

<comment>Return:</comment>
  <info>int</info>  


id: UI\Draw\Text\Font\fontFamilies
type: function
doc:
<comment>Description:</comment>
  Retrieve Font Families
  
  Returns an array of valid font families for the current system

<comment>Return:</comment>
  <info>array</info>  Returns an <info>array</info> of valid font families for the current system.


id: UI\Draw\Text\Layout
type: class
doc:
<comment>Description:</comment>
  A Text Layout represents the layout of text which will be drawn by the Pen


id: UI\Draw\Text\Layout::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Text Layout
  
  Shall construct a new Text Layout

<comment>Param:</comment>
  <info>string</info>             <strong>$text</strong>   The text for the layout
  <info>UI\Draw\Text\Font</info>  <strong>$font</strong>   The font to use for writing
  <info>float</info>              <strong>$width</strong>  The width of the layout


id: UI\Draw\Text\Layout::setColor
type: function
doc:
<comment>Description:</comment>
  Set Color
  
  Shall set the Color for all of, or a range of the text in the Layout

<comment>Param:</comment>
  <info>UI\Draw\Color</info>  <strong>$color</strong>  The color to use
  <info>int</info>            <strong>$start</strong>  The starting character
  <info>int</info>            <strong>$end</strong>    The ending character, by default the end of the string


id: UI\Draw\Text\Layout::setWidth
type: function
doc:
<comment>Description:</comment>
  Set Width
  
  Shall set the width of this Text Layout

<comment>Param:</comment>
  <info>float</info>  <strong>$width</strong>  The new width


id: UI\Executor
type: class
doc:
<comment>Description:</comment>
  This facility schedules repetitive execution of a callback, useful for animations and other such
  activities.


id: UI\Executor::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Executor
  
  Shall construct an executor with the given interval, will not start executing until main loop is
  entered

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>       Seconds between executions
  <info>int</info>  <strong>$microseconds</strong>  Microseconds between executions


id: UI\Executor::kill
type: function
doc:
<comment>Description:</comment>
  Stop Executor
  
  Shall stop an executor, the executor cannot be restarted

<comment>Return:</comment>
  <info>void</info>  


id: UI\Executor::onExecute
type: function
doc:
<comment>Description:</comment>
  Execution Callback
  
  Shall be repetitively queued for execution in the main thread

<comment>Return:</comment>
  <info>void</info>  


id: UI\Executor::setInterval
type: function
doc:
<comment>Description:</comment>
  Interval Manipulation
  
  Shall set the new interval. An interval of 0 will pause the executor until a new interval has been
  set

<comment>Param:</comment>
  <info>int</info>  <strong>$seconds</strong>       
  <info>int</info>  <strong>$microseconds</strong>  

<comment>Return:</comment>
  <info>bool</info>  Indication of success


id: UI\Menu
type: class
doc:
<comment>Description:</comment>
  Menus must be constructed before the first Window, and can be shown on any Window


id: UI\Menu::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Menu
  
  Shall construct a new Menu

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name (text) for the menu


id: UI\Menu::append
type: function
doc:
<comment>Description:</comment>
  Append Menu Item
  
  Shall append a new Menu Item

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name (text) for the new item
  <info>string</info>  <strong>$type</strong>  The type for the new item

<comment>Return:</comment>
  <info>UI\MenuItem</info>  A constructed object of the given type


id: UI\Menu::appendAbout
type: function
doc:
<comment>Description:</comment>
  Append About Menu Item
  
  Shall append an About menu item

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>  The type for the new item

<comment>Return:</comment>
  <info>UI\MenuItem</info>  A constructed About menu item of the given type


id: UI\Menu::appendCheck
type: function
doc:
<comment>Description:</comment>
  Append Checkable Menu Item
  
  Shall append a checkable menu item

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name (text) for the new item
  <info>string</info>  <strong>$type</strong>  The type for the new item

<comment>Return:</comment>
  <info>UI\MenuItem</info>  A constructed checkable menu item of the given type


id: UI\Menu::appendPreferences
type: function
doc:
<comment>Description:</comment>
  Append Preferences Menu Item
  
  Shall append a Preferences menu item

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>  The type for the new item

<comment>Return:</comment>
  <info>UI\MenuItem</info>  A constructed Preferences menu item of the given type


id: UI\Menu::appendQuit
type: function
doc:
<comment>Description:</comment>
  Append Quit Menu Item
  
  Shall append a Quit menu item

<comment>Param:</comment>
  <info>string</info>  <strong>$type</strong>  The type for the new item

<comment>Return:</comment>
  <info>UI\MenuItem</info>  A constructed Quit menu item of the given type


id: UI\MenuItem::isChecked
type: function
doc:
<comment>Description:</comment>
  Detect Checked
  
  Shall detect if this Menu Item is checked

<comment>Return:</comment>
  <info>bool</info>  


id: UI\MenuItem::onClick
type: function
doc:
<comment>Description:</comment>
  On Click Callback
  
  Shall be executed when this Menu Item is clicked


id: UI\MenuItem::setChecked
type: function
doc:
<comment>Description:</comment>
  Set Checked
  
  Shall set the checked status of this Menu Item

<comment>Param:</comment>
  <info>bool</info>  <strong>$checked</strong>  The new status


id: UI\Point
type: class
doc:
<comment>Description:</comment>
  Points are used throughout UI to represent co-ordinates on a screen, control, or area.


id: UI\Point::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Point
  
  Construct a new Point using new co-ordinates

<comment>Param:</comment>
  <info>float</info>  <strong>$x</strong>  The new X co-ordinate
  <info>float</info>  <strong>$y</strong>  The new Y co-ordinate


id: UI\Point::at
type: function
doc:
<comment>Description:</comment>
  Size Coercion
  
  Shall return a UI\Point object where x and y are equal to those supplied, either in float or
  UI\Size form

<comment>Param:</comment>
  <info>float</info>    <strong>$point</strong>  The value for x and y
  <info>UI\Size</info>  <strong>$size</strong>   The Size to convert

<comment>Return:</comment>
  <info>UI\Point</info>  The resulting Point


id: UI\Point::getX
type: function
doc:
<comment>Description:</comment>
  Retrieves X
  
  Retrieves the X co-ordinate

<comment>Return:</comment>
  <info>float</info>  The current X co-ordinate


id: UI\Point::getY
type: function
doc:
<comment>Description:</comment>
  Retrieves Y
  
  Retrieves the Y co-ordinate

<comment>Return:</comment>
  <info>float</info>  The current Y co-ordinate


id: UI\Point::setX
type: function
doc:
<comment>Description:</comment>
  Set X
  
  Set the X co-ordinate

<comment>Param:</comment>
  <info>float</info>  <strong>$point</strong>  The new X co-ordinate


id: UI\Point::setY
type: function
doc:
<comment>Description:</comment>
  Set Y
  
  Set the Y co-ordinate

<comment>Param:</comment>
  <info>float</info>  <strong>$point</strong>  The new Y co-ordinate


id: UI\Size
type: class
doc:
<comment>Description:</comment>
  Sizes are used throughout UI to represent the size of a screen, control, or area.


id: UI\Size::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Size
  
  Construct a new Size using new width and height

<comment>Param:</comment>
  <info>float</info>  <strong>$width</strong>   The new width
  <info>float</info>  <strong>$height</strong>  The new height


id: UI\Size::getHeight
type: function
doc:
<comment>Description:</comment>
  Retrieves Height
  
  Retrieves the Height

<comment>Return:</comment>
  <info>float</info>  The current Height


id: UI\Size::getWidth
type: function
doc:
<comment>Description:</comment>
  Retrives Width
  
  Retrieves the Width

<comment>Return:</comment>
  <info>float</info>  The current Width


id: UI\Size::of
type: function
doc:
<comment>Description:</comment>
  Point Coercion
  
  Shall return a UI\Size object where width and height are equal to those supplied, either in float
  or UI\Point form

<comment>Param:</comment>
  <info>float</info>     <strong>$size</strong>   The value for width and height
  <info>UI\Point</info>  <strong>$point</strong>  The Point to convert

<comment>Return:</comment>
  <info>UI\Size</info>  The resulting Size


id: UI\Size::setHeight
type: function
doc:
<comment>Description:</comment>
  Set Height
  
  Set new Height

<comment>Param:</comment>
  <info>float</info>  <strong>$size</strong>  The new Height


id: UI\Size::setWidth
type: function
doc:
<comment>Description:</comment>
  Set Width
  
  Set new Width

<comment>Param:</comment>
  <info>float</info>  <strong>$size</strong>  The new Width


id: UI\Window::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new Window
  
  Shall construct a new Window

<comment>Param:</comment>
  <info>string</info>  <strong>$title</strong>  The title of the Window
  <info>Size</info>    <strong>$size</strong>   The size of the Window
  <info>bool</info>    <strong>$menu</strong>   Menu switch


id: UI\Window::add
type: function
doc:
<comment>Description:</comment>
  Add a Control
  
  Shall add a Control to this Window

<comment>Param:</comment>
  <info>UI\Control</info>  <strong>$control</strong>  The Control to add


id: UI\Window::error
type: function
doc:
<comment>Description:</comment>
  Show Error Box
  
  Shall show an error box

<comment>Param:</comment>
  <info>string</info>  <strong>$title</strong>  The title of the error box
  <info>string</info>  <strong>$msg</strong>    The message for the error box


id: UI\Window::getSize
type: function
doc:
<comment>Description:</comment>
  Get Window Size
  
  Shall return the size of this Window

<comment>Return:</comment>
  <info>UI\Size</info>  


id: UI\Window::getTitle
type: function
doc:
<comment>Description:</comment>
  Get Title
  
  Shall retrieve the title of this Window

<comment>Return:</comment>
  <info>string</info>  


id: UI\Window::hasBorders
type: function
doc:
<comment>Description:</comment>
  Border Detection
  
  Shall detect if borders are used on this Window

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Window::hasMargin
type: function
doc:
<comment>Description:</comment>
  Margin Detection
  
  Shall detect if margins are used on this Window

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Window::isFullScreen
type: function
doc:
<comment>Description:</comment>
  Full Screen Detection
  
  Shall detect if this Window us using the whole screen

<comment>Return:</comment>
  <info>bool</info>  


id: UI\Window::msg
type: function
doc:
<comment>Description:</comment>
  Show Message Box
  
  Shall show a message box

<comment>Param:</comment>
  <info>string</info>  <strong>$title</strong>  The title of the message box
  <info>string</info>  <strong>$msg</strong>    The message


id: UI\Window::onClosing
type: function
doc:
<comment>Description:</comment>
  Closing Callback
  
  Should gracefully destroy this Window

<comment>Return:</comment>
  <info>int</info>  


id: UI\Window::open
type: function
doc:
<comment>Description:</comment>
  Open Dialog
  
  Shall show an open file dialog

<comment>Return:</comment>
  <info>string</info>  Returns the name of the file selected for opening


id: UI\Window::save
type: function
doc:
<comment>Description:</comment>
  Save Dialog
  
  Shall show a save dialog

<comment>Return:</comment>
  <info>string</info>  Returns the file name selecting for saving


id: UI\Window::setBorders
type: function
doc:
<comment>Description:</comment>
  Border Use
  
  Shall enable or disable the use of borders on this Window

<comment>Param:</comment>
  <info>bool</info>  <strong>$borders</strong>  


id: UI\Window::setFullScreen
type: function
doc:
<comment>Description:</comment>
  Full Screen Use
  
  Shall enable or disable the use of the full screen for this Window
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>bool</info>  <strong>$full</strong>  


id: UI\Window::setMargin
type: function
doc:
<comment>Description:</comment>
  Margin Use
  
  Shall enable or disable the use of margins for this Window

<comment>Param:</comment>
  <info>bool</info>  <strong>$margin</strong>  


id: UI\Window::setSize
type: function
doc:
<comment>Description:</comment>
  Set Size
  
  Shall set the size of this Window

<comment>Param:</comment>
  <info>UI\Size</info>  <strong>$size</strong>  


id: UI\Window::setTitle
type: function
doc:
<comment>Description:</comment>
  Window Title
  
  Shall set the title for this Window

<comment>Param:</comment>
  <info>string</info>  <strong>$title</strong>  The new title


id: UI\quit
type: function
doc:
<comment>Description:</comment>
  Quit UI Loop
  
  Shall cause the main loop to be exited

<comment>Return:</comment>
  <info>void</info>  


id: UI\run
type: function
doc:
<comment>Description:</comment>
  Enter UI Loop
  
  Shall cause PHP to enter into the main loop, by default control will not be returned to the caller

<comment>Param:</comment>
  <info>int</info>  <strong>$flags</strong>  Set UI\Loop to return control, and UI\Wait to return control after waiting

<comment>Return:</comment>
  <info>void</info>  


id: UnitEnum
type: class
doc:
<comment>Description:</comment>
  引擎会自动应用 <class>UnitEnum</class> 接口到所有枚举。 用户自定义类不能实现该接口。 由于引擎已提供枚举的默认实
  现，因此不能重载它的接口。 主要将它用于类型检测。


id: UnitEnum::cases
type: function
doc:
<comment>Description:</comment>
  生成枚举的条目清单
  
  该方法返回打包后的 array，以声明的顺序，包含了枚举的所有条目。

<comment>Return:</comment>
  <info>array</info>  以语法中声明的顺序，返回该枚举中定义的所有条目数组。


id: V8Js
type: class
doc:
<comment>Description:</comment>
  This is the core class for V8Js extension. Each instance created from this class has own context
  in which all JavaScript is compiled and executed.
  
  See <strong>V8Js::__construct()</strong> for more information.


id: V8Js::__construct
type: function
doc:
<comment>Description:</comment>
  Construct a new V8Js object
  
  Constructs a new <class>V8Js</class> object.

<comment>Param:</comment>
  <info>string</info>  <strong>$object_name</strong>                 The name of the object passed to Javascript.
  <info>array</info>   <strong>$variables</strong>                   Map of PHP variables that will be available in Javascript.
                                       Must be an associative <info>array</info> in format <return>array("name-for-js"
                                       =&gt; "name-of-php-variable")</return>. Defaults to empty array.
  <info>array</info>   <strong>$extensions</strong>                  List of extensions registered using <strong>V8Js::registerExtension()</strong>
                                       which should be available  in the Javascript context of the
                                       created <class>V8Js</class> object.  Extensions registered to be enabled
                                       automatically do not need to be listed in this array. Also if
                                       an extension has dependencies, those dependencies can be
                                       omitted as well. Defaults to empty array.
                                       
                                       Extensions registered to be enabled automatically do not need
                                       to be listed in this array. Also if an extension has
                                       dependencies, those dependencies can be omitted as well.
                                       Defaults to empty array.
  <info>bool</info>    <strong>$report_uncaught_exceptions</strong>  Controls whether uncaught Javascript exceptions are reported
                                       immediately or not. Defaults to <info>true</info>. If set to <info>false</info> the
                                       uncaught exception can be accessed using
                                       <strong>V8Js::getPendingException()</strong>.


id: V8Js::executeString
type: function
doc:
<comment>Description:</comment>
  Execute a string as Javascript code
  
  Compiles and executes the string passed with <strong>$script</strong> as Javascript code.

<comment>Param:</comment>
  <info>string</info>  <strong>$script</strong>      The code string to be executed.
  <info>string</info>  <strong>$identifier</strong>  Identifier string for the executed code. Used for debugging.
  <info>int</info>     <strong>$flags</strong>       Execution flags. This value must be one of the <return>V8Js::FLAG_*</return> constants,
                       defaulting to <info>V8Js::FLAG_NONE</info>. <info>V8Js::FLAG_NONE</info>: no flags
                       <info>V8Js::FLAG_FORCE_ARRAY</info>: forces all Javascript objects passed to PHP to be
                       associative arrays
                       
                       <info>V8Js::FLAG_NONE</info>: no flags
                       
                       <info>V8Js::FLAG_FORCE_ARRAY</info>: forces all Javascript objects passed to PHP to be
                       associative arrays

<comment>Return:</comment>
  <info>mixed</info>  Returns the last variable instantiated in the Javascript code converted to matching PHP
         variable type.


id: V8Js::getExtensions
type: function
doc:
<comment>Description:</comment>
  Return an array of registered extensions
  
  This function returns array of Javascript extensions registered using <strong>V8Js::registerExtension()</strong>.

<comment>Return:</comment>
  <info>array</info>  Returns an array of registered extensions or an empty array if there are none.


id: V8Js::getPendingException
type: function
doc:
<comment>Description:</comment>
  Return pending uncaught Javascript exception
  
  Returns any pending uncaught Javascript exception as <class>V8JsException</class> left from earlier
  <strong>V8Js::executeString()</strong> call(s).

<comment>Return:</comment>
  <info>V8JsException</info>  Either <class>V8JsException</class> or <info>null</info>.


id: V8Js::registerExtension
type: function
doc:
<comment>Description:</comment>
  Register Javascript extensions for V8Js
  
  Registers passed Javascript <strong>$script</strong> as extension to be used in <class>V8Js</class> contexts.

<comment>Param:</comment>
  <info>string</info>  <strong>$extension_name</strong>  Name of the extension to be registered.
  <info>string</info>  <strong>$script</strong>          The Javascript code to be registered.
  <info>array</info>   <strong>$dependencies</strong>    Array of extension names the extension to be registered depends on. Any
                           such extension is enabled automatically when this extension is loaded.
                           All extensions, including the dependencies, must be registered before any
                           <class>V8Js</class> are created which use them.
                           
                           All extensions, including the dependencies, must be registered before any
                           <class>V8Js</class> are created which use them.
  <info>bool</info>    <strong>$auto_enable</strong>     If set to <info>true</info>, the extension will be enabled automatically in all <class>V8Js</class>
                           contexts.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if extension was registered successfully, <info>false</info> otherwise.


id: V8JsException::getJsFileName
type: function
doc:
<comment>Description:</comment>
  The getJsFileName purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string</info>  


id: V8JsException::getJsLineNumber
type: function
doc:
<comment>Description:</comment>
  The getJsLineNumber purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>int</info>  


id: V8JsException::getJsSourceLine
type: function
doc:
<comment>Description:</comment>
  The getJsSourceLine purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string</info>  


id: V8JsException::getJsTrace
type: function
doc:
<comment>Description:</comment>
  The getJsTrace purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>string</info>  


id: VARCMP_GT
type: constant
doc:
<comment>Description:</comment>
  The left <return>bstr</return> is greater than right  <return>bstr</return>.


id: VARCMP_LT
type: constant
doc:
<comment>Description:</comment>
  The left <return>bstr</return> is less than right  <return>bstr</return>.


id: VAR_REPRESENTATION_SINGLE_LINE
type: constant
doc:
<comment>Description:</comment>
  <strong>var_representation()</strong> flag indicating that newlines  should not be used for whitespace in variable
  representations.


id: VAR_REPRESENTATION_UNESCAPED
type: constant
doc:
<comment>Description:</comment>
  <strong>var_representation()</strong> flag indicating that strings should be encoded as single quoted strings with
  unescaped control characters.


id: VT_ARRAY
type: constant
doc:
<comment>Description:</comment>
  If the type indicator is combined with  <info>VT_ARRAY</info> by an OR operator, the value is a pointer to a
  <return>SAFEARRAY</return>. <info>VT_ARRAY</info>  can use the OR with the following data types: <info>VT_I1</info>,  <info>VT_UI1</info>, <info>VT_I2</info>, <info>VT_UI2</info>,
  <info>VT_I4</info>, <info>VT_UI4</info>, <info>VT_INT</info>,  <info>VT_UINT</info>, <info>VT_R4</info>, <info>VT_R8</info>,  <info>VT_BOOL</info>, <info>VT_DECIMAL</info>, <info>VT_ERROR</info>,  <info>VT_CY</info>, <info>VT_DATE</info>,
  <info>VT_BSTR</info>,  <info>VT_DISPATCH</info>, <info>VT_UNKNOWN</info> and  <info>VT_VARIANT</info>.


id: VT_BYREF
type: constant
doc:
<comment>Description:</comment>
  If the type indicator is combined with <info>VT_BYREF</info>  by an OR operator, the value is a reference.
  Reference types are  interpreted as a reference to data, similar to the reference type in  C++.


id: VT_DATE
type: constant
doc:
<comment>Description:</comment>
  A 64-bit floating point number representing the number of days  (not seconds) since December 31,
  1899. For example,  <return>January 1, 1900</return>, is 2.0, <return>January 2, 1900</return>,  is 3.0, and so on). This is stored
  in the same representation as  <info>VT_R8</info>.


id: VT_EMPTY
type: constant
doc:
<comment>Description:</comment>
  A property with a type indicator of <info>VT_EMPTY</info> has  no data associated with it; that is, the size of
  the value is zero.


id: VT_ERROR
type: constant
doc:
<comment>Description:</comment>
  Error code; containing the status code associated with the  error.


id: VT_I8
type: constant
doc:
<comment>Description:</comment>
  8-byte signed integer value.
  
  Available as of PHP 7.0.0 (x64 only).


id: VT_UI8
type: constant
doc:
<comment>Description:</comment>
  8-byte unsigned integer.
  
  Available as of PHP 7.0.0 (x64 only).


id: VT_VARIANT
type: constant
doc:
<comment>Description:</comment>
  A type indicator followed by the corresponding value.  <info>VT_VARIANT</info> can be used only with  <info>VT_BYREF</info>.


id: VarnishAdmin::__construct
type: function
doc:
<comment>Description:</comment>
  VarnishAdmin constructor

<comment>Param:</comment>
  <info>array</info>  <strong>$args</strong>  Configuration arguments. The possible keys are:
                


id: VarnishAdmin::auth
type: function
doc:
<comment>Description:</comment>
  Authenticate on a varnish instance

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: VarnishAdmin::ban
type: function
doc:
<comment>Description:</comment>
  Ban URLs using a VCL expression

<comment>Param:</comment>
  <info>string</info>  <strong>$vcl_regex</strong>  Varnish VCL expression. It's based on the varnish ban command.

<comment>Return:</comment>
  <info>int</info>  Returns the varnish command status.


id: VarnishAdmin::banUrl
type: function
doc:
<comment>Description:</comment>
  Ban an URL using a VCL expression

<comment>Param:</comment>
  <info>string</info>  <strong>$vcl_regex</strong>  URL regular expression in PCRE compatible syntax. It's based on the ban.url
                      varnish command.

<comment>Return:</comment>
  <info>int</info>  Returns the varnish command status.


id: VarnishAdmin::clearPanic
type: function
doc:
<comment>Description:</comment>
  Clear varnish instance panic messages

<comment>Return:</comment>
  <info>int</info>  Returns the varnish command status.


id: VarnishAdmin::connect
type: function
doc:
<comment>Description:</comment>
  Connect to a varnish instance administration interface

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: VarnishAdmin::disconnect
type: function
doc:
<comment>Description:</comment>
  Disconnect from a varnish instance administration interface

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: VarnishAdmin::getPanic
type: function
doc:
<comment>Description:</comment>
  Get the last panic message on a varnish instance

<comment>Return:</comment>
  <info>string</info>  Returns the last panic message on the current varnish instance.


id: VarnishAdmin::getParams
type: function
doc:
<comment>Description:</comment>
  Fetch current varnish instance configuration parameters

<comment>Return:</comment>
  <info>array</info>  Returns an array with the varnish configuration parameters.


id: VarnishAdmin::isRunning
type: function
doc:
<comment>Description:</comment>
  Check if the varnish slave process is currently running

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: VarnishAdmin::setCompat
type: function
doc:
<comment>Description:</comment>
  Set the class compat configuration param

<comment>Param:</comment>
  <info>int</info>  <strong>$compat</strong>  Varnish compatibility option.

<comment>Return:</comment>
  <info>void</info>  


id: VarnishAdmin::setHost
type: function
doc:
<comment>Description:</comment>
  Set the class host configuration param

<comment>Param:</comment>
  <info>string</info>  <strong>$host</strong>  Connection host configuration parameter.

<comment>Return:</comment>
  <info>void</info>  


id: VarnishAdmin::setIdent
type: function
doc:
<comment>Description:</comment>
  Set the class ident configuration param

<comment>Param:</comment>
  <info>string</info>  <strong>$ident</strong>  Connection ident configuration parameter.

<comment>Return:</comment>
  <info>void</info>  


id: VarnishAdmin::setParam
type: function
doc:
<comment>Description:</comment>
  Set configuration param on the current varnish instance

<comment>Param:</comment>
  <info>string</info>      <strong>$name</strong>   Varnish configuration param name.
  <info>string|int</info>  <strong>$value</strong>  Varnish configuration param value.

<comment>Return:</comment>
  <info>int</info>  Returns the varnish command status.


id: VarnishAdmin::setPort
type: function
doc:
<comment>Description:</comment>
  Set the class port configuration param

<comment>Param:</comment>
  <info>int</info>  <strong>$port</strong>  Connection port configuration parameter.

<comment>Return:</comment>
  <info>void</info>  


id: VarnishAdmin::setSecret
type: function
doc:
<comment>Description:</comment>
  Set the class secret configuration param

<comment>Param:</comment>
  <info>string</info>  <strong>$secret</strong>  Connection secret configuration parameter.

<comment>Return:</comment>
  <info>void</info>  


id: VarnishAdmin::setTimeout
type: function
doc:
<comment>Description:</comment>
  Set the class timeout configuration param

<comment>Param:</comment>
  <info>int</info>  <strong>$timeout</strong>  Connection timeout configuration parameter.

<comment>Return:</comment>
  <info>void</info>  


id: VarnishAdmin::start
type: function
doc:
<comment>Description:</comment>
  Start varnish worker process

<comment>Return:</comment>
  <info>int</info>  Returns the varnish command status.


id: VarnishAdmin::stop
type: function
doc:
<comment>Description:</comment>
  Stop varnish worker process

<comment>Return:</comment>
  <info>int</info>  Returns the varnish command status.


id: VarnishLog::__construct
type: function
doc:
<comment>Description:</comment>
  Varnishlog constructor

<comment>Param:</comment>
  <info>array</info>  <strong>$args</strong>  Configuration arguments. The possible keys are:
                


id: VarnishLog::getLine
type: function
doc:
<comment>Description:</comment>
  Get next log line

<comment>Return:</comment>
  <info>array</info>  Returns an array with the log line data.


id: VarnishLog::getTagName
type: function
doc:
<comment>Description:</comment>
  Get the log tag string representation by its index

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  Log tag index.

<comment>Return:</comment>
  <info>string</info>  Returns the log tag name as <info>string</info>.


id: VarnishStat::__construct
type: function
doc:
<comment>Description:</comment>
  VarnishStat constructor

<comment>Param:</comment>
  <info>array</info>  <strong>$args</strong>  Configuration arguments. The possible keys are:
                


id: VarnishStat::getSnapshot
type: function
doc:
<comment>Description:</comment>
  Get the current varnish instance statistics snapshot

<comment>Return:</comment>
  <info>array</info>  Array with the varnish statistic snapshot. The array keys are identical to that in the
         varnishstat tool.


id: Volatile
type: class
doc:
<comment>Description:</comment>
  The <class>Volatile</class> class is new to pthreads v3. Its introduction is a consequence of the new
  immutability semantics of <class>Threaded</class> members of <class>Threaded</class> classes. The <class>Volatile</class> class enables for
  mutability of its <class>Threaded</class> members, and is also used to store PHP arrays in <class>Threaded</class> contexts.


id: Vtiful\Kernel\Excel::__construct
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel constructor
  
  <class>Vtiful\Kernel\Excel</class> constructor, create a class object.

<comment>Param:</comment>
  <info>array</info>  <strong>$config</strong>  XLSX file export configuration


id: Vtiful\Kernel\Excel::addSheet
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel addSheet
  
  Create a new worksheet in the xlsx file.

<comment>Param:</comment>
  <info>string</info>  <strong>$sheetName</strong>  Worksheet name

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::autoFilter
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel autoFilter
  
  Add autofilter to a worksheet.

<comment>Param:</comment>
  <info>string</info>  <strong>$scope</strong>  Cell start and end coordinate string.

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::constMemory
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel constMemory
  
  Write a large file with constant memory usage.

<comment>Param:</comment>
  <info>string</info>  <strong>$fileName</strong>   XLSX file name
  <info>string</info>  <strong>$sheetName</strong>  Worksheet name

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::data
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel data
  
  Write a data in the worksheet.

<comment>Param:</comment>
  <info>array</info>  <strong>$data</strong>  worksheet data

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::fileName
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel fileName
  
  Create a brand new xlsx file and create a worksheet.

<comment>Param:</comment>
  <info>string</info>  <strong>$fileName</strong>   XLSX file name
  <info>string</info>  <strong>$sheetName</strong>  Worksheet name

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::getHandle
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel getHandle
  
  Get the xlsx text resource handle.

<comment>Return:</comment>
  <info>unknown</info>  Resource


id: Vtiful\Kernel\Excel::header
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel header
  
  Write a header in the worksheet.

<comment>Param:</comment>
  <info>array</info>  <strong>$headerData</strong>  worksheet header data

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::insertFormula
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel insertFormula
  
  Insert calculation formula.

<comment>Param:</comment>
  <info>int</info>     <strong>$row</strong>      cell row
  <info>int</info>     <strong>$column</strong>   cell column
  <info>string</info>  <strong>$formula</strong>  formula string

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::insertImage
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel insertImage
  
  Insert a local image into the cell.

<comment>Param:</comment>
  <info>int</info>     <strong>$row</strong>             cell row
  <info>int</info>     <strong>$column</strong>          cell column
  <info>string</info>  <strong>$localImagePath</strong>  local image path

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::insertText
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel insertText
  
  Write text in a cell.

<comment>Param:</comment>
  <info>int</info>               <strong>$row</strong>     cell row
  <info>int</info>               <strong>$column</strong>  cell column
  <info>int|float|string</info>  <strong>$data</strong>    data to be written
  <info>string</info>            <strong>$format</strong>  String format

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::mergeCells
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel mergeCells
  
  Merge Cells.

<comment>Param:</comment>
  <info>string</info>  <strong>$scope</strong>  cell start and end coordinate strings
  <info>string</info>  <strong>$data</strong>   string data

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::output
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel output
  
  Output xlsx file to disk.

<comment>Return:</comment>
  <info>unknown</info>  XLSX file path;


id: Vtiful\Kernel\Excel::setColumn
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel setColumn
  
  Set the format of the column.

<comment>Param:</comment>
  <info>string</info>    <strong>$range</strong>   cell start and end coordinate strings
  <info>float</info>     <strong>$width</strong>   column width
  <info>resource</info>  <strong>$format</strong>  cell format resource

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Excel::setRow
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Excel setRow
  
  Set the format of the column.

<comment>Param:</comment>
  <info>string</info>    <strong>$range</strong>   cell start and end coordinate strings
  <info>float</info>     <strong>$height</strong>  row height
  <info>resource</info>  <strong>$format</strong>  cell format resource

<comment>Return:</comment>
  <info>unknown</info>  <class>Vtiful\Kernel\Excel</class> instance


id: Vtiful\Kernel\Format::align
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Format align
  
  set cell align

<comment>Param:</comment>
  <info>resource</info>  <strong>$handle</strong>  xlsx file handle
  <info>int</info>       <strong>$style</strong>   <class>Vtiful\Kernel\Format</class> constant

<comment>Return:</comment>
  <info>unknown</info>  Resource


id: Vtiful\Kernel\Format::bold
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Format bold
  
  <class>Vtiful\Kernel\Format</class> bold format

<comment>Param:</comment>
  <info>resource</info>  <strong>$handle</strong>  xlsx file handle

<comment>Return:</comment>
  <info>unknown</info>  Resource


id: Vtiful\Kernel\Format::italic
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Format italic
  
  <class>Vtiful\Kernel\Format</class> italic format

<comment>Param:</comment>
  <info>resource</info>  <strong>$handle</strong>  xlsx file handle

<comment>Return:</comment>
  <info>unknown</info>  Resource


id: Vtiful\Kernel\Format::underline
type: function
doc:
<comment>Description:</comment>
  Vtiful\Kernel\Format underline
  
  <class>Vtiful\Kernel\Format</class> underline format

<comment>Param:</comment>
  <info>resource</info>  <strong>$handle</strong>  xlsx file handle
  <info>int</info>       <strong>$style</strong>   <class>Vtiful\Kernel\Format</class> constant

<comment>Return:</comment>
  <info>unknown</info>  Resource


id: WIN32_ABOVE_NORMAL_PRIORITY_CLASS
type: constant
doc:
<comment>Description:</comment>
  Process that has priority above WIN32_NORMAL_PRIORITY_CLASS but below WIN32_HIGH_PRIORITY_CLASS.


id: WIN32_BELOW_NORMAL_PRIORITY_CLASS
type: constant
doc:
<comment>Description:</comment>
  Process that has priority above WIN32_IDLE_PRIORITY_CLASS but below WIN32_NORMAL_PRIORITY_CLASS.


id: WIN32_ERROR_ACCESS_DENIED
type: constant
doc:
<comment>Description:</comment>
  The handle to the SCM database does not have the appropriate access rights.


id: WIN32_ERROR_DEPENDENT_SERVICES_RUNNING
type: constant
doc:
<comment>Description:</comment>
  0x0000041B
  
  The service cannot be stopped because other running services are dependent on it.


id: WIN32_ERROR_DUPLICATE_SERVICE_NAME
type: constant
doc:
<comment>Description:</comment>
  The display name already exists in the service control manager database either as a service name
  or as another display name.


id: WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT
type: constant
doc:
<comment>Description:</comment>
  This error is returned if the program is being run as a console application rather than as a
  service. If the program will be run as a console application for debugging purposes, structure it
  such that service-specific code is not called.


id: WIN32_ERROR_INSUFFICIENT_BUFFER
type: constant
doc:
<comment>Description:</comment>
  0x0000007A
  
  The buffer is too small for the service status structure. Nothing was written to the structure.


id: WIN32_ERROR_INVALID_DATA
type: constant
doc:
<comment>Description:</comment>
  0x0000000D
  
  The specified service status structure is invalid.


id: WIN32_ERROR_INVALID_HANDLE
type: constant
doc:
<comment>Description:</comment>
  The handle to the specified service control manager database is invalid.


id: WIN32_ERROR_INVALID_LEVEL
type: constant
doc:
<comment>Description:</comment>
  0x0000007C
  
  The InfoLevel parameter contains an unsupported value.


id: WIN32_ERROR_INVALID_SERVICE_ACCOUNT
type: constant
doc:
<comment>Description:</comment>
  The user account name specified in the <strong>$user</strong> parameter does not exist. See <strong>win32_create_service()</strong>.


id: WIN32_ERROR_INVALID_SERVICE_CONTROL
type: constant
doc:
<comment>Description:</comment>
  0x0000041C
  
  The requested control code is not valid, or it is unacceptable to the service.


id: WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL
type: constant
doc:
<comment>Description:</comment>
  The requested control code cannot be sent to the service because the state of the service is
  <info>WIN32_SERVICE_STOPPED</info>, <info>WIN32_SERVICE_START_PENDING</info>, or <info>WIN32_SERVICE_STOP_PENDING</info>.


id: WIN32_ERROR_SERVICE_DEPENDENCY_DELETED
type: constant
doc:
<comment>Description:</comment>
  The service depends on a service that does not exist or has been marked for deletion.


id: WIN32_ERROR_SERVICE_DEPENDENCY_FAIL
type: constant
doc:
<comment>Description:</comment>
  0x0000042C
  
  The service depends on another service that has failed to start.


id: WIN32_ERROR_SERVICE_LOGON_FAILED
type: constant
doc:
<comment>Description:</comment>
  0x0000042D
  
  The service did not start due to a logon failure. This error occurs if the service is configured
  to run under an account that does not have the "Log on as a service" right.


id: WIN32_ERROR_SERVICE_REQUEST_TIMEOUT
type: constant
doc:
<comment>Description:</comment>
  0x0000041D
  
  The process for the service was started, but it did not call StartServiceCtrlDispatcher, or the
  thread that called StartServiceCtrlDispatcher may be blocked in a control handler function.


id: WIN32_ERROR_SERVICE_SPECIFIC_ERROR
type: constant
doc:
<comment>Description:</comment>
  0x0000042A
  
  The service has returned a service-specific error code.


id: WIN32_ERROR_SHUTDOWN_IN_PROGRESS
type: constant
doc:
<comment>Description:</comment>
  0x0000045B
  
  The system is shutting down; this function cannot be called.


id: WIN32_HIGH_PRIORITY_CLASS
type: constant
doc:
<comment>Description:</comment>
  Process that performs time-critical tasks that must be executed immediately. The threads of the
  process preempt the threads of normal or idle priority class processes. An example is the Task
  List, which must respond quickly when called by the user, regardless of the load on the operating
  system. Use extreme care when using the high-priority class, because a high-priority class
  application can use nearly all available CPU time.


id: WIN32_IDLE_PRIORITY_CLASS
type: constant
doc:
<comment>Description:</comment>
  Process whose threads run only when the system is idle. The threads of the process are preempted
  by the threads of any process running in a higher priority class. An example is a screen saver.
  The idle-priority class is inherited by child processes.


id: WIN32_REALTIME_PRIORITY_CLASS
type: constant
doc:
<comment>Description:</comment>
  Process that has the highest possible priority. The threads of the process preempt the threads of
  all other processes, including operating system processes performing important tasks. For example,
  a real-time process that executes for more than a very brief interval can cause disk caches not to
  flush or cause the mouse to be unresponsive.


id: WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE
type: constant
doc:
<comment>Description:</comment>
  The service is notified when the computer's hardware profile has changed. This enables the system
  to send  <info>WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE</info>  notifications to the service.


id: WIN32_SERVICE_ACCEPT_NETBINDCHANGE
type: constant
doc:
<comment>Description:</comment>
  The service is a network component that can accept changes in its  binding without being stopped
  and restarted. This control code allows the service to receive  <info>WIN32_SERVICE_CONTROL_NETBINDADD</info>,
  <info>WIN32_SERVICE_CONTROL_NETBINDREMOVE</info>,  <info>WIN32_SERVICE_CONTROL_NETBINDENABLE</info>, and
  <info>WIN32_SERVICE_CONTROL_NETBINDDISABLE</info> notifications.


id: WIN32_SERVICE_ACCEPT_PARAMCHANGE
type: constant
doc:
<comment>Description:</comment>
  The service can reread its startup parameters without being stopped and restarted. This control
  code allows the service to receive  <info>WIN32_SERVICE_CONTROL_PARAMCHANGE</info> notifications.


id: WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE
type: constant
doc:
<comment>Description:</comment>
  The service can be paused and continued. This control code allows the service to receive
  <info>WIN32_SERVICE_CONTROL_PAUSE</info> and <info>WIN32_SERVICE_CONTROL_CONTINUE</info> notifications.


id: WIN32_SERVICE_ACCEPT_POWEREVENT
type: constant
doc:
<comment>Description:</comment>
  The service is notified when the computer's power status has changed. This enables the system to
  send  <info>WIN32_SERVICE_CONTROL_POWEREVENT</info> notifications  to the service.


id: WIN32_SERVICE_ACCEPT_PRESHUTDOWN
type: constant
doc:
<comment>Description:</comment>
  The service can perform preshutdown tasks. This control code enables the service to receive
  <info>WIN32_SERVICE_CONTROL_PRESHUTDOWN</info> notifications. This value is not supported by Windows Server
  2003 and Windows XP/2000.


id: WIN32_SERVICE_ACCEPT_SESSIONCHANGE
type: constant
doc:
<comment>Description:</comment>
  The service is notified when the computer's session status has changed. This enables the system to
  send  <info>WIN32_SERVICE_CONTROL_SESSIONCHANGE</info> notifications  to the service. Windows 2000:  This value
  is not supported


id: WIN32_SERVICE_ACCEPT_SHUTDOWN
type: constant
doc:
<comment>Description:</comment>
  The service is notified when system shutdown occurs. This control code allows the service to
  receive <info>WIN32_SERVICE_CONTROL_SHUTDOWN</info> notifications.


id: WIN32_SERVICE_ACCEPT_STOP
type: constant
doc:
<comment>Description:</comment>
  The service can be stopped. This control code allows the service to receive
  <info>WIN32_SERVICE_CONTROL_STOP</info> notifications.


id: WIN32_SERVICE_ACCEPT_TIMECHANGE
type: constant
doc:
<comment>Description:</comment>
  The service is notified when the system time has changed. This enables the system to send
  <info>WIN32_SERVICE_CONTROL_TIMECHANGE</info> notifications to the service. Windows Server 2008, Windows Vista,
  Windows Server 2003,  and Windows XP/2000:  This control code is not supported.


id: WIN32_SERVICE_ACCEPT_TRIGGEREVENT
type: constant
doc:
<comment>Description:</comment>
  The service is notified when an event for which the service has registered occurs. This enables
  the system to send  <info>WIN32_SERVICE_CONTROL_TRIGGEREVENT</info> notifications to the service. Windows
  Server 2008, Windows Vista, Windows Server 2003,  and Windows XP/2000:  This control code is not
  supported.


id: WIN32_SERVICE_AUTO_START
type: constant
doc:
<comment>Description:</comment>
  A service started automatically by the service control manager during system startup.


id: WIN32_SERVICE_BOOT_START
type: constant
doc:
<comment>Description:</comment>
  A device driver started by the system loader. This value is valid only for driver services.


id: WIN32_SERVICE_CONTROL_INTERROGATE
type: constant
doc:
<comment>Description:</comment>
  Notifies a service that it should report its current status information to the service control
  manager.


id: WIN32_SERVICE_CONTROL_NETBINDADD
type: constant
doc:
<comment>Description:</comment>
  Notifies a network service that there is a new component for binding.


id: WIN32_SERVICE_CONTROL_NETBINDDISABLE
type: constant
doc:
<comment>Description:</comment>
  0x0000000A
  
  Notifies a network service that one of its bindings has been disabled.


id: WIN32_SERVICE_CONTROL_NETBINDENABLE
type: constant
doc:
<comment>Description:</comment>
  Notifies a network service that a disabled binding has been enabled.


id: WIN32_SERVICE_CONTROL_NETBINDREMOVE
type: constant
doc:
<comment>Description:</comment>
  Notifies a network service that a component for binding has been removed.


id: WIN32_SERVICE_CONTROL_PRESHUTDOWN
type: constant
doc:
<comment>Description:</comment>
  0x0000000F
  
  Notifies a service that the system will be shutting down. A service that handles this notification
  blocks system shutdown until the service stops or the preshutdown time-out interval expires. This
  value is not supported by Windows Server 2003 and Windows XP/2000.


id: WIN32_SERVICE_CONTROL_SHUTDOWN
type: constant
doc:
<comment>Description:</comment>
  Notifies a service that the system is shutting down so the service can perform cleanup tasks. If a
  service accepts this control code, it must stop after it performs its cleanup tasks. After the SCM
  sends this control code, it will not send other control codes to the service.


id: WIN32_SERVICE_DEMAND_START
type: constant
doc:
<comment>Description:</comment>
  A service started by the service control manager when a process calls the StartService function.


id: WIN32_SERVICE_DISABLED
type: constant
doc:
<comment>Description:</comment>
  A service that cannot be started. Attempts to start the service result in the error code
  <info>WIN32_ERROR_SERVICE_DISABLED</info>.


id: WIN32_SERVICE_ERROR_CRITICAL
type: constant
doc:
<comment>Description:</comment>
  The startup program logs the error in the event log, if possible. If the last-known-good
  configuration is being started, the startup  operation fails. Otherwise, the system is restarted
  with the  last-known good configuration.


id: WIN32_SERVICE_ERROR_IGNORE
type: constant
doc:
<comment>Description:</comment>
  The startup program ignores the error and continues the startup operation.


id: WIN32_SERVICE_ERROR_NORMAL
type: constant
doc:
<comment>Description:</comment>
  The startup program logs the error in the event log but continues the startup operation.


id: WIN32_SERVICE_ERROR_SEVERE
type: constant
doc:
<comment>Description:</comment>
  The startup program logs the error in the event log. If the last-known-good configuration is being
  started, the startup  operation continues. Otherwise, the system is restarted with the
  last-known-good configuration.


id: WIN32_SERVICE_INTERACTIVE_PROCESS
type: constant
doc:
<comment>Description:</comment>
  The service can interact with the desktop. This option is not available on Windows Vista or later.


id: WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS
type: constant
doc:
<comment>Description:</comment>
  The service runs in a system process that must always be running.


id: WIN32_SERVICE_SYSTEM_START
type: constant
doc:
<comment>Description:</comment>
  A device driver started by the IoInitSystem function. This value is valid only for driver
  services.


id: WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE
type: constant
doc:
<comment>Description:</comment>
  The service runs in its own process and can interact with the desktop. This option is not
  available on Windows Vista or later.


id: WSDL_CACHE_BOTH
type: constant
doc:
<comment>Description:</comment>
  Specifies use of both on-disk and in-memory WSDL caches when used in the soap.wsdl_cache
  configuration option or the <return>wsdl_cache</return> option to SoapClient::__construct and
  SoapServer::__construct.


id: WSDL_CACHE_DISK
type: constant
doc:
<comment>Description:</comment>
  Specifies use of the on-disk WSDL cache only when used in the soap.wsdl_cache configuration option
  or the <return>wsdl_cache</return> option to SoapClient::__construct and SoapServer::__construct.


id: WSDL_CACHE_MEMORY
type: constant
doc:
<comment>Description:</comment>
  Specifies use of the in-memory WSDL cache only when used in the soap.wsdl_cache configuration
  option or the <return>wsdl_cache</return> option to SoapClient::__construct and SoapServer::__construct.


id: WSDL_CACHE_NONE
type: constant
doc:
<comment>Description:</comment>
  Disables the WSDL cache when used in the soap.wsdl_cache configuration option or the <return>wsdl_cache</return>
  option to SoapClient::__construct and SoapServer::__construct.


id: WeakMap
type: class
doc:
<comment>Description:</comment>
  <class>WeakMap</class> 是将对象作为 key 来访问的 map（或者说字典）。然而，与其它类似 <class>SplObjectStorage</class>  不同，
  <class>WeakMap</class> 中的对象 key 不影响对象的引用计数。也就是说，如果在任何时候对其唯一的剩余引用是  <class>WeakMap</class>
  key，那么该对象将会被垃圾收集并从 <class>WeakMap</class>  移除。它的主要用法是从对象中编译数据派生缓存，这种场景
  下不需要存活得比对象更久。
  
  <class>WeakMap</class> 实现了 ArrayAccess、 Iterator、Countable， 因此大多数情况下，它能和关联数组一样使用。


id: WeakMap::count
type: function
doc:
<comment>Description:</comment>
  统计 map 中存活实体的数量
  
  统计 map 中存活实体的数量。

<comment>Return:</comment>
  <info>int</info>  返回 map 中存活实体的数量。


id: WeakMap::getIterator
type: function
doc:
<comment>Description:</comment>
  接收一个外部迭代器
  
  返回一个外部迭代器.

<comment>Return:</comment>
  <info>Iterator</info>  一个实现了 <class>Iterator</class> 或者 <class>Traversable</class> 的类实例


id: WeakMap::offsetExists
type: function
doc:
<comment>Description:</comment>
  检测 map 中是否存在某个对象
  
  检查传入的对象在 map 中是否被引用。

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  要检查的对象。

<comment>Return:</comment>
  <info>bool</info>  如果 map 中包含该对象返回 <info>true</info>，否则返回 <info>false</info>。


id: WeakMap::offsetGet
type: function
doc:
<comment>Description:</comment>
  返回某个对象指向的值
  
  返回某个对象指向的值。

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  map 中包含的 key 对象。

<comment>Return:</comment>
  <info>mixed</info>  返回与作为参数传入对象关联的值， 否则返回 <info>null</info>。


id: WeakMap::offsetSet
type: function
doc:
<comment>Description:</comment>
  更新 map 新的键值对
  
  更新 map 新的键值对。如果 key 已经在 map 中存在， 新的值会替换老的值。

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  键值对中作为 key 的对象。
  <info>mixed</info>   <strong>$value</strong>   任意数据作为键值对的值。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: WeakMap::offsetUnset
type: function
doc:
<comment>Description:</comment>
  从 map 中移除一条
  
  从 map 中移除一项。

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  从 map 中移除的 key 对象。

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: WeakReference
type: class
doc:
<comment>Description:</comment>
  弱引用可以指向一个对象，并且不阻止对象的销毁。可以实现具有对象结构的缓存。
  
  <class>弱引用类</class>不能序列化。


id: WeakReference::__construct
type: function
doc:
<comment>Description:</comment>
  不允许实例化的构造函数
  
  这个方法的存在只是为了禁止实例化 <class>WeakReference</class> 类。 弱引用使用工厂方法 WeakReference::create 进行
  实例化。

<comment>See Also:</comment>
   * WeakReference::create


id: WeakReference::create
type: function
doc:
<comment>Description:</comment>
  创建新的弱引用
  
  创建新的 <class>WeakReference</class>。

<comment>Param:</comment>
  <info>object</info>  <strong>$object</strong>  要弱引用的对象。

<comment>Return:</comment>
  <info>WeakReference</info>  返回刚刚实例化的对象。


id: WeakReference::get
type: function
doc:
<comment>Description:</comment>
  获取弱引用对象
  
  获取弱引用对象。 如果对象已销毁，则返回 <info>null</info>。

<comment>Return:</comment>
  <info>object|null</info>  返回引用的 <info>object</info>，如果对象已销毁，则返回 <info>null</info>。


id: Worker
type: class
doc:
<comment>Description:</comment>
  Worker 是一个具有持久化上下文的线程对象，通常用来在多个线程中使用。
  
  当一个 Worker 对象开始之后，会执行它的 run 方法，但是即使 run 方法执行完毕，线程本身也不会消亡，除
  非遇到以下情况：
  
  Worker 对象超出作用范围（没有指向它的引用了）
  
  代码调用了 Worker 对象的 shutdown 方法
  
  整个脚本终止了
  
  这意味着程序员可以在程序执行过程中重用这个线程上下文： 在 Worker 对象的栈中添加对象会激活 Worker
  对象执行被加入对象的 run 方法。


id: Worker::collect
type: function
doc:
<comment>Description:</comment>
  Collect references to completed tasks
  
  Allows the worker to collect references determined to be garbage by the optionally given
  collector.

<comment>Param:</comment>
  <info>Callable</info>  <strong>$collector</strong>  A Callable collector that returns a boolean on whether the task can be
                        collected or not. Only in rare cases should a custom collector need to be
                        used.

<comment>Return:</comment>
  <info>int</info>  The number of remaining tasks on the worker's stack to be collected.


id: Worker::getStacked
type: function
doc:
<comment>Description:</comment>
  获取剩余的栈大小
  
  返回栈中剩余的任务数量

<comment>Return:</comment>
  <info>int</info>  返回 worker 中等待执行的任务数量


id: Worker::isShutdown
type: function
doc:
<comment>Description:</comment>
  状态检测
  
  Worker 对象是否被关闭

<comment>Return:</comment>
  <info>bool</info>  布尔值，表示 worker 是否已经被关闭


id: Worker::shutdown
type: function
doc:
<comment>Description:</comment>
  关闭 Worker 
  
  在执行完已入栈对象之后，关闭这个 Worker 对象

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: Worker::stack
type: function
doc:
<comment>Description:</comment>
  将要执行的任务入栈
  
  将要执行的任务入栈到 Worker 对象

<comment>Param:</comment>
  <info>Threaded</info>  <strong>$work</strong>  要被 Worker 执行的 <class>Threaded</class> 派生对象

<comment>Return:</comment>
  <info>int</info>  入栈之后，Worker 对象栈的大小。


id: Worker::unstack
type: function
doc:
<comment>Description:</comment>
  将要执行的任务出栈
  
  把 Worker 栈顶的（最老的那个）任务从栈中移除。

<comment>Return:</comment>
  <info>int</info>  出栈之后，Worker 栈的大小。


id: XATTR_DONTFOLLOW
type: constant
doc:
<comment>Description:</comment>
  Do not follow the symbolic link but operate on symbolic link itself.


id: XATTR_ROOT
type: constant
doc:
<comment>Description:</comment>
  Set attribute in root (trusted) namespace. Requires root privileges.


id: XDIFF_PATCH_NORMAL
type: constant
doc:
<comment>Description:</comment>
  This flag indicates that <strong>xdiff_string_patch()</strong> and <strong>xdiff_file_patch()</strong> functions should create
  result by applying patch to original content thus creating newer version of file. This is the
  default mode of operation.


id: XDIFF_PATCH_REVERSE
type: constant
doc:
<comment>Description:</comment>
  This flag indicated that <strong>xdiff_string_patch()</strong> and <strong>xdiff_file_patch()</strong> functions should create
  result by reversing patch changed from newer content thus creating original version.


id: XMLDiff\Base
type: class
doc:
<comment>Description:</comment>
  Base abstract class for all the comparsion classes in the extension.


id: XMLDiff\Base::__construct
type: function
doc:
<comment>Description:</comment>
  Constructor
  
  Base constructor for all the worker classes in the xmldiff extension.

<comment>Param:</comment>
  <info>string</info>  <strong>$nsname</strong>  Custom namespace name for the diff document. The default namespace is
                   http://www.locus.cz/diffmark and that's enough to avoid namespace conflicts. Use
                   this parameter if you want to change it for some reason.


id: XMLDiff\Base::diff
type: function
doc:
<comment>Description:</comment>
  Produce diff of two XML documents
  
  Abstract diff method to be implemented by inheriting classes.
  
  The basic purpose of this method is to produce diff of the two documents. The param order matters
  and will produce different output.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$from</strong>  Source XML document.
  <info>mixed</info>  <strong>$to</strong>    Target XML document.

<comment>Return:</comment>
  <info>mixed</info>  Implementation dependent.


id: XMLDiff\Base::merge
type: function
doc:
<comment>Description:</comment>
  Produce new XML document based on diff
  
  Abstract merge method to be implemented by inheriting classes.
  
  Basically the method purpose is to produce a new XML document based on the diff information.

<comment>Param:</comment>
  <info>mixed</info>  <strong>$src</strong>   Source XML document.
  <info>mixed</info>  <strong>$diff</strong>  Document produced by the diff method.

<comment>Return:</comment>
  <info>mixed</info>  Implementation dependent.


id: XMLDiff\DOM::diff
type: function
doc:
<comment>Description:</comment>
  Diff two DOMDocument objects
  
  Diff two DOMDocument instances and produce the new one containing the diff information.

<comment>Param:</comment>
  <info>DOMDocument</info>  <strong>$from</strong>  Source DOMDocument object.
  <info>DOMDocument</info>  <strong>$to</strong>    Target DOMDocument object.

<comment>Return:</comment>
  <info>DOMDocument</info>  DOMDocument with the diff information or NULL.


id: XMLDiff\DOM::merge
type: function
doc:
<comment>Description:</comment>
  Produce merged DOMDocument
  
  Create new DOMDocument based on the diff.

<comment>Param:</comment>
  <info>DOMDocument</info>  <strong>$src</strong>   Source DOMDocument object.
  <info>DOMDocument</info>  <strong>$diff</strong>  DOMDocument object containing the diff information.

<comment>Return:</comment>
  <info>DOMDocument</info>  Merged DOMDocument or NULL.


id: XMLDiff\File::diff
type: function
doc:
<comment>Description:</comment>
  Diff two XML files
  
  Diff two local XML files and produce string with the diff information.

<comment>Param:</comment>
  <info>string</info>  <strong>$from</strong>  Path to the source document.
  <info>string</info>  <strong>$to</strong>    Path to the target document.

<comment>Return:</comment>
  <info>string</info>  String with the XML document containing the diff information or NULL.


id: XMLDiff\File::merge
type: function
doc:
<comment>Description:</comment>
  Produce merged XML document
  
  Create new XML document based on diffs and source document.

<comment>Param:</comment>
  <info>string</info>  <strong>$src</strong>   Path to the source XML document.
  <info>string</info>  <strong>$diff</strong>  Path to the XML document with the diff information.

<comment>Return:</comment>
  <info>string</info>  String with the new XML document or NULL.


id: XMLDiff\Memory::diff
type: function
doc:
<comment>Description:</comment>
  Diff two XML documents
  
  Diff two strings containing XML documents and produce the diff information.

<comment>Param:</comment>
  <info>string</info>  <strong>$from</strong>  Source XML document.
  <info>string</info>  <strong>$to</strong>    Target XML document.

<comment>Return:</comment>
  <info>string</info>  String with the XML document containing the diff information or NULL.


id: XMLDiff\Memory::merge
type: function
doc:
<comment>Description:</comment>
  Produce merged XML document
  
  Create new XML document based on diffs and source document.

<comment>Param:</comment>
  <info>string</info>  <strong>$src</strong>   Source XML document.
  <info>string</info>  <strong>$diff</strong>  XML document containing diff information.

<comment>Return:</comment>
  <info>string</info>  String with the new XML document or NULL.


id: XMLReader
type: class
doc:
<comment>Description:</comment>
  The XMLReader extension is an XML Pull parser. The reader acts as a  cursor going forward on the
  document stream and stopping at each node  on the way.


id: XMLReader::XML
type: function
doc:
<comment>Description:</comment>
  Set the data containing the XML to parse
  
  Set the data containing the XML to parse.

<comment>Param:</comment>
  <info>string</info>       <strong>$source</strong>    String containing the XML to be parsed.
  <info>string|null</info>  <strong>$encoding</strong>  The document encoding or <info>null</info>.
  <info>int</info>          <strong>$flags</strong>     A bitmask of the LIBXML_*  constants.

<comment>Return:</comment>
  <info>bool|XMLReader</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 If called statically, returns an
                  <class>XMLReader</class> 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * XMLReader::open
   * XMLReader::close


id: XMLReader::close
type: function
doc:
<comment>Description:</comment>
  Close the XMLReader input
  
  Closes the input the XMLReader object is currently parsing.

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。

<comment>See Also:</comment>
   * XMLReader::open
   * XMLReader::xml


id: XMLReader::expand
type: function
doc:
<comment>Description:</comment>
  Returns a copy of the current node as a DOM object
  
  This method copies the current node and returns the appropriate DOM object.

<comment>Param:</comment>
  <info>DOMNode|null</info>  <strong>$baseNode</strong>  A <class>DOMNode</class> defining the target <class>DOMDocument</class> for the created DOM object.

<comment>Return:</comment>
  <info>DOMNode|false</info>  The resulting <class>DOMNode</class> or <info>false</info> on error.


id: XMLReader::getAttribute
type: function
doc:
<comment>Description:</comment>
  Get the value of a named attribute
  
  Returns the value of a named attribute or <info>null</info> if the attribute does not exist or not positioned
  on an element node.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name of the attribute.

<comment>Return:</comment>
  <info>string|null</info>  The value of the attribute, or <info>null</info> if no attribute with the given <strong>$name</strong> is found or
               not positioned on an element node.

<comment>See Also:</comment>
   * XMLReader::getAttributeNo
   * XMLReader::getAttributeNs


id: XMLReader::getAttributeNo
type: function
doc:
<comment>Description:</comment>
  Get the value of an attribute by index
  
  Returns the value of an attribute based on its position or an  empty string if attribute does not
  exist or not positioned on  an element node.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The position of the attribute.

<comment>Return:</comment>
  <info>string|null</info>  The value of the attribute, or <info>null</info> if no attribute exists at <strong>$index</strong> or is not
               positioned on the element.

<comment>See Also:</comment>
   * XMLReader::getAttribute
   * XMLReader::getAttributeNs


id: XMLReader::getAttributeNs
type: function
doc:
<comment>Description:</comment>
  Get the value of an attribute by localname and URI
  
  Returns the value of an attribute by name and namespace URI or an empty  string if attribute does
  not exist or not positioned on an element node.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>       The local name.
  <info>string</info>  <strong>$namespace</strong>  The namespace URI.

<comment>Return:</comment>
  <info>string|null</info>  The value of the attribute, or <info>null</info> if no attribute with the given <strong>$name</strong> and
               <strong>$namespace</strong> is found or not positioned of element.

<comment>See Also:</comment>
   * XMLReader::getAttribute
   * XMLReader::getAttributeNo


id: XMLReader::getParserProperty
type: function
doc:
<comment>Description:</comment>
  Indicates if specified property has been set
    
  
  Indicates if specified property has been set.

<comment>Param:</comment>
  <info>int</info>  <strong>$property</strong>  One of the parser option  constants.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::setParserProperty


id: XMLReader::isValid
type: function
doc:
<comment>Description:</comment>
  Indicates if the parsed document is valid
  
  Returns a boolean indicating if the document being parsed is currently valid.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::setParserProperty
   * XMLReader::setRelaxNGSchema
   * XMLReader::setRelaxNGSchemaSource
   * XMLReader::setSchema


id: XMLReader::lookupNamespace
type: function
doc:
<comment>Description:</comment>
  Lookup namespace for a prefix
  
  Lookup in scope namespace for a given prefix.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>  String containing the prefix.

<comment>Return:</comment>
  <info>string|null</info>  The value of the namespace, or <info>null</info> if no namespace exists.


id: XMLReader::moveToAttribute
type: function
doc:
<comment>Description:</comment>
  Move cursor to a named attribute
  
  Positions cursor on the named attribute.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  The name of the attribute.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::moveToElement
   * XMLReader::moveToAttributeNo
   * XMLReader::moveToAttributeNs
   * XMLReader::moveToFirstAttribute


id: XMLReader::moveToAttributeNo
type: function
doc:
<comment>Description:</comment>
  Move cursor to an attribute by index
  
  Positions cursor on attribute based on its position.

<comment>Param:</comment>
  <info>int</info>  <strong>$index</strong>  The position of the attribute.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::moveToElement
   * XMLReader::moveToAttribute
   * XMLReader::moveToAttributeNs
   * XMLReader::moveToFirstAttribute


id: XMLReader::moveToAttributeNs
type: function
doc:
<comment>Description:</comment>
  Move cursor to a named attribute
  
  Positions cursor on the named attribute in specified namespace.

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>       The local name.
  <info>string</info>  <strong>$namespace</strong>  The namespace URI.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::moveToElement
   * XMLReader::moveToAttribute
   * XMLReader::moveToAttributeNo
   * XMLReader::moveToFirstAttribute


id: XMLReader::moveToElement
type: function
doc:
<comment>Description:</comment>
  Position cursor on the parent Element of current Attribute
  
  Moves cursor to the parent Element of current Attribute.

<comment>Return:</comment>
  <info>bool</info>  Returns <info>true</info> if successful and <info>false</info> if it fails or not positioned on  Attribute when this
        method is called.

<comment>See Also:</comment>
   * XMLReader::moveToAttribute
   * XMLReader::moveToAttributeNo
   * XMLReader::moveToAttributeNs
   * XMLReader::moveToFirstAttribute


id: XMLReader::moveToFirstAttribute
type: function
doc:
<comment>Description:</comment>
  Position cursor on the first Attribute
  
  Moves cursor to the first Attribute.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::moveToElement
   * XMLReader::moveToAttribute
   * XMLReader::moveToAttributeNo
   * XMLReader::moveToAttributeNs
   * XMLReader::moveToNextAttribute


id: XMLReader::moveToNextAttribute
type: function
doc:
<comment>Description:</comment>
  Position cursor on the next Attribute
  
  Moves cursor to the next Attribute if positioned on an Attribute or  moves to first attribute if
  positioned on an Element.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::moveToElement
   * XMLReader::moveToAttribute
   * XMLReader::moveToAttributeNo
   * XMLReader::moveToAttributeNs
   * XMLReader::moveToFirstAttribute


id: XMLReader::next
type: function
doc:
<comment>Description:</comment>
  Move cursor to next node skipping all subtrees
  
  Positions cursor on the next node skipping all subtrees. If no such node exists, the cursor is
  moved to the end of the document.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$name</strong>  The name of the next node to move to.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::moveToNextAttribute
   * XMLReader::moveToElement
   * XMLReader::moveToAttribute


id: XMLReader::open
type: function
doc:
<comment>Description:</comment>
  Set the URI containing the XML to parse
  
  Set the URI containing the XML document to be parsed.

<comment>Param:</comment>
  <info>string</info>       <strong>$uri</strong>       URI pointing to the document.
  <info>string|null</info>  <strong>$encoding</strong>  The document encoding or <info>null</info>.
  <info>int</info>          <strong>$flags</strong>     A bitmask of the LIBXML_*  constants.

<comment>Return:</comment>
  <info>bool|XMLReader</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。 If called statically, returns an
                  <class>XMLReader</class> 或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * XMLReader::xml
   * XMLReader::close


id: XMLReader::read
type: function
doc:
<comment>Description:</comment>
  Move to next node in document
  
  Moves cursor to the next node in the document.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::moveToElement
   * XMLReader::moveToAttribute
   * XMLReader::next


id: XMLReader::readInnerXml
type: function
doc:
<comment>Description:</comment>
  Retrieve XML from current node
  
  Reads the contents of the current node, including child nodes and markup.

<comment>Return:</comment>
  <info>string</info>  Returns the contents of the current node as a string. Empty string on failure.

<comment>See Also:</comment>
   * <strong>XMLReader::readString()</strong>
   * <strong>XMLReader::readOuterXml()</strong>
   * <strong>XMLReader::expand()</strong>


id: XMLReader::readOuterXml
type: function
doc:
<comment>Description:</comment>
  Retrieve XML from current node, including itself
  
  Reads the contents of the current node, including the node itself.

<comment>Return:</comment>
  <info>string</info>  Returns the contents of current node, including itself, as a string. Empty string on
          failure.

<comment>See Also:</comment>
   * <strong>XMLReader::readString()</strong>
   * <strong>XMLReader::readInnerXml()</strong>
   * <strong>XMLReader::expand()</strong>


id: XMLReader::readString
type: function
doc:
<comment>Description:</comment>
  Reads the contents of the current node as a string
  
  Reads the contents of the current node as a string.

<comment>Return:</comment>
  <info>string</info>  Returns the content of the current node as a string. Empty string on failure.

<comment>See Also:</comment>
   * <strong>XMLReader::readOuterXml()</strong>
   * <strong>XMLReader::readInnerXml()</strong>
   * <strong>XMLReader::expand()</strong>


id: XMLReader::setParserProperty
type: function
doc:
<comment>Description:</comment>
  Set parser options
  
  Set parser options. The options must be set after XMLReader::open or  XMLReader::xml are called
  and before  the first XMLReader::read call.

<comment>Param:</comment>
  <info>int</info>   <strong>$property</strong>  One of the parser option  constants.
  <info>bool</info>  <strong>$value</strong>     If set to <info>true</info> the option will be enabled otherwise will  be disabled.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: XMLReader::setRelaxNGSchema
type: function
doc:
<comment>Description:</comment>
  Set the filename or URI for a RelaxNG Schema
  
  Set the filename or URI for the RelaxNG Schema to use for validation.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  filename or URI pointing to a RelaxNG Schema.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::setRelaxNGSchemaSource
   * XMLReader::setSchema
   * XMLReader::isValid


id: XMLReader::setRelaxNGSchemaSource
type: function
doc:
<comment>Description:</comment>
  Set the data containing a RelaxNG Schema
  
  Set the data containing a RelaxNG Schema to use for validation.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$source</strong>  String containing the RelaxNG Schema.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::setRelaxNGSchema
   * XMLReader::setSchema
   * XMLReader::isValid


id: XMLReader::setSchema
type: function
doc:
<comment>Description:</comment>
  Validate document against XSD
  
  Use W3C XSD schema to validate the document as it is processed. Activation is only possible before
  the first Read().

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  The filename of the XSD schema.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLReader::setRelaxNGSchema
   * XMLReader::setRelaxNGSchemaSource
   * XMLReader::isValid


id: XMLWriter::endAttribute
type: function
doc:
<comment>Description:</comment>
  End attribute
  
  面向对象风格
  
  过程化风格
  
  Ends the current attribute.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startAttribute
   * XMLWriter::startAttributeNs
   * XMLWriter::writeAttribute
   * XMLWriter::writeAttributeNs


id: XMLWriter::endCdata
type: function
doc:
<comment>Description:</comment>
  End current CDATA
  
  面向对象风格
  
  过程化风格
  
  Ends the current CDATA section.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startCdata
   * XMLWriter::writeCdata


id: XMLWriter::endComment
type: function
doc:
<comment>Description:</comment>
  Create end comment
  
  面向对象风格
  
  过程化风格
  
  Ends the current comment.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startComment
   * XMLWriter::writeComment


id: XMLWriter::endDocument
type: function
doc:
<comment>Description:</comment>
  End current document
  
  面向对象风格
  
  过程化风格
  
  Ends the current document.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDocument


id: XMLWriter::endDtd
type: function
doc:
<comment>Description:</comment>
  End current DTD
  
  面向对象风格
  
  过程化风格
  
  Ends the DTD of the document.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDtd
   * XMLWriter::writeDtd


id: XMLWriter::endDtdAttlist
type: function
doc:
<comment>Description:</comment>
  End current DTD AttList
  
  面向对象风格
  
  过程化风格
  
  Ends the current DTD attribute list.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDtdAttlist
   * XMLWriter::writeDtdAttlist


id: XMLWriter::endDtdElement
type: function
doc:
<comment>Description:</comment>
  End current DTD element
  
  面向对象风格
  
  过程化风格
  
  Ends the current DTD element.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDtdElement
   * XMLWriter::writeDtdElement


id: XMLWriter::endDtdEntity
type: function
doc:
<comment>Description:</comment>
  End current DTD Entity
  
  面向对象风格
  
  过程化风格
  
  Ends the current DTD entity.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDtdEntity
   * XMLWriter::writeDtdEntity


id: XMLWriter::endElement
type: function
doc:
<comment>Description:</comment>
  End current element
  
  面向对象风格
  
  过程化风格
  
  Ends the current element.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startElement
   * XMLWriter::writeElement


id: XMLWriter::endPi
type: function
doc:
<comment>Description:</comment>
  End current PI
  
  面向对象风格
  
  过程化风格
  
  Ends the current processing instruction.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startPi
   * XMLWriter::writePi


id: XMLWriter::flush
type: function
doc:
<comment>Description:</comment>
  Flush current buffer
  
  面向对象风格
  
  过程化风格
  
  Flushes the current buffer.

<comment>Param:</comment>
  <info></info>      <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong>
                    或
                    <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>bool</info>  <strong>$empty</strong>      Whether to empty the buffer or not. Default is <info>true</info>.

<comment>Return:</comment>
  <info>string|int</info>  If you opened the writer in memory, this function returns the generated XML buffer,
              Else, if using URI, this function will write the buffer and return the number of
              written bytes.


id: XMLWriter::fullEndElement
type: function
doc:
<comment>Description:</comment>
  End current element
  
  面向对象风格
  
  过程化风格
  
  End the current xml element. Writes an end tag even if the element is empty.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endElement


id: XMLWriter::openMemory
type: function
doc:
<comment>Description:</comment>
  Create new xmlwriter using memory for string output
  
  面向对象风格
  
  过程化风格
  
  Creates a new <class>XMLWriter</class> using memory for string output.

<comment>Return:</comment>
  <info>bool</info>  面向对象风格: 成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
        
        过程化风格: Returns a new <class>XMLWriter</class> for later use with the xmlwriter functions on success,
        或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * XMLWriter::openUri


id: XMLWriter::openUri
type: function
doc:
<comment>Description:</comment>
  Create new xmlwriter using source uri for output
  
  面向对象风格
  
  过程化风格
  
  Creates a new <class>XMLWriter</class> using  <strong>$uri</strong> for the output.

<comment>Param:</comment>
  <info>string</info>  <strong>$uri</strong>  The URI of the resource for the output.

<comment>Return:</comment>
  <info>bool</info>  面向对象风格: 成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。
        
        过程化风格: Returns a new <class>XMLWriter</class> instance for later use with the xmlwriter functions on
        success,  或者在失败时返回 <info>false</info>.

<comment>See Also:</comment>
   * XMLWriter::openMemory


id: XMLWriter::outputMemory
type: function
doc:
<comment>Description:</comment>
  Returns current buffer
  
  面向对象风格
  
  过程化风格
  
  Returns the current buffer.

<comment>Param:</comment>
  <info></info>      <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong>
                    或
                    <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>bool</info>  <strong>$flush</strong>      Whether to flush the output buffer or not. Default is <info>true</info>.

<comment>Return:</comment>
  <info>string</info>  Returns the current buffer as a string.

<comment>See Also:</comment>
   * XMLWriter::flush


id: XMLWriter::setIndent
type: function
doc:
<comment>Description:</comment>
  Toggle indentation on/off
  
  面向对象风格
  
  过程化风格
  
  Toggles indentation on or off.

<comment>Param:</comment>
  <info></info>      <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong>
                    或
                    <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>bool</info>  <strong>$enable</strong>     Whether indentation is enabled.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::setIndentString


id: XMLWriter::setIndentString
type: function
doc:
<comment>Description:</comment>
  Set string used for indenting
  
  面向对象风格
  
  过程化风格
  
  Sets the string which will be used to indent each element/attribute of the resulting xml.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>    仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                        <strong>xmlwriter_open_uri()</strong> 或
                        <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$indentation</strong>  The indentation string.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::setIndent


id: XMLWriter::startAttribute
type: function
doc:
<comment>Description:</comment>
  Create start attribute
  
  面向对象风格
  
  过程化风格
  
  Starts an attribute.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$name</strong>       The attribute name.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startAttributeNs
   * XMLWriter::endAttribute
   * XMLWriter::writeAttribute
   * XMLWriter::writeAttributeNs


id: XMLWriter::startAttributeNs
type: function
doc:
<comment>Description:</comment>
  Create start namespaced attribute
  
  面向对象风格
  
  过程化风格
  
  Starts a namespaced attribute.

<comment>Param:</comment>
  <info></info>             <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                           <strong>xmlwriter_open_uri()</strong> 或
                           <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string|null</info>  <strong>$prefix</strong>     The namespace prefix.
  <info>string</info>       <strong>$name</strong>       The attribute name.
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI. If <strong>$namespace</strong> is <info>null</info>, the namespace declaration will
                           be omitted.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startAttribute
   * XMLWriter::endAttribute
   * XMLWriter::writeAttribute
   * XMLWriter::writeAttributeNs


id: XMLWriter::startCdata
type: function
doc:
<comment>Description:</comment>
  Create start CDATA tag
  
  面向对象风格
  
  过程化风格
  
  Starts a CDATA.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endCdata
   * XMLWriter::writeCdata


id: XMLWriter::startComment
type: function
doc:
<comment>Description:</comment>
  Create start comment
  
  面向对象风格
  
  过程化风格
  
  Starts a comment.

<comment>Param:</comment>
  <info></info>  <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对 <strong>xmlwriter_open_uri()</strong> 或
                <strong>xmlwriter_open_memory()</strong> 的调用。

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endComment
   * XMLWriter::writeComment


id: XMLWriter::startDocument
type: function
doc:
<comment>Description:</comment>
  Create document tag
  
  面向对象风格
  
  过程化风格
  
  Starts a document.

<comment>Param:</comment>
  <info></info>             <strong>$xmlwriter</strong>   仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                            <strong>xmlwriter_open_uri()</strong> 或
                            <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string|null</info>  <strong>$version</strong>     The version number of the document as part of the XML declaration.
  <info>string|null</info>  <strong>$encoding</strong>    The encoding of the document as part of the XML declaration.
  <info>string|null</info>  <strong>$standalone</strong>  <return>yes</return> or <return>no</return>.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endDocument


id: XMLWriter::startDtd
type: function
doc:
<comment>Description:</comment>
  Create start DTD tag
  
  面向对象风格
  
  过程化风格
  
  Starts a DTD.

<comment>Param:</comment>
  <info></info>             <strong>$xmlwriter</strong>      仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                               <strong>xmlwriter_open_uri()</strong> 或
                               <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>       <strong>$qualifiedName</strong>  The qualified name of the document type to create.
  <info>string|null</info>  <strong>$publicId</strong>       The external subset public identifier.
  <info>string|null</info>  <strong>$systemId</strong>       The external subset system identifier.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endDtd
   * XMLWriter::writeDtd


id: XMLWriter::startDtdAttlist
type: function
doc:
<comment>Description:</comment>
  Create start DTD AttList
  
  面向对象风格
  
  过程化风格
  
  Starts a DTD attribute list.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$name</strong>       The attribute list name.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endDtdAttlist
   * XMLWriter::writeDtdAttlist


id: XMLWriter::startDtdElement
type: function
doc:
<comment>Description:</comment>
  Create start DTD element
  
  面向对象风格
  
  过程化风格
  
  Starts a DTD element.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>      仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                          <strong>xmlwriter_open_uri()</strong> 或
                          <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$qualifiedName</strong>  The qualified name of the document type to create.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endDtdElement
   * XMLWriter::writeDtdElement


id: XMLWriter::startDtdEntity
type: function
doc:
<comment>Description:</comment>
  Create start DTD Entity
  
  面向对象风格
  
  过程化风格
  
  Starts a DTD entity.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$name</strong>       The name of the entity.
  <info>bool</info>    <strong>$isParam</strong>    

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endDtdEntity
   * XMLWriter::writeDtdEntity


id: XMLWriter::startElement
type: function
doc:
<comment>Description:</comment>
  Create start element tag
  
  面向对象风格
  
  过程化风格
  
  Starts an element.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$name</strong>       The element name.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endElement
   * XMLWriter::writeElement


id: XMLWriter::startElementNs
type: function
doc:
<comment>Description:</comment>
  Create start namespaced element tag
  
  面向对象风格
  
  过程化风格
  
  Starts a namespaced element.

<comment>Param:</comment>
  <info></info>             <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                           <strong>xmlwriter_open_uri()</strong> 或
                           <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string|null</info>  <strong>$prefix</strong>     The namespace prefix. If <strong>$prefix</strong> is <info>null</info>, the namespace will be omitted.
  <info>string</info>       <strong>$name</strong>       The element name.
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI. If <strong>$namespace</strong> is <info>null</info>, the namespace declaration will
                           be omitted.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endElement
   * XMLWriter::writeElementNs


id: XMLWriter::startPi
type: function
doc:
<comment>Description:</comment>
  Create start PI tag
  
  面向对象风格
  
  过程化风格
  
  Starts a processing instruction tag.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$target</strong>     The target of the processing instruction.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::endPi
   * XMLWriter::writePi


id: XMLWriter::text
type: function
doc:
<comment>Description:</comment>
  Write text
  
  面向对象风格
  
  过程化风格
  
  Writes a text.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$content</strong>    The contents of the text. The characters <return>\<</return>, <return>&gt;</return>, <return>&</return> and <return>"</return> are written as entity references (i.e. , , and , respectively). All other characters including <return>'</return> are written literally. To write the special XML characters literally, or to write literal entity references, <strong>xmlwriter_write_raw()</strong> has to be used.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: XMLWriter::writeAttribute
type: function
doc:
<comment>Description:</comment>
  Write full attribute
  
  面向对象风格
  
  过程化风格
  
  Writes a full attribute.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$name</strong>       The name of the attribute.
  <info>string</info>  <strong>$value</strong>      The value of the attribute.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::writeAttributeNs
   * XMLWriter::startAttribute
   * XMLWriter::startAttributeNs
   * XMLWriter::endAttribute


id: XMLWriter::writeAttributeNs
type: function
doc:
<comment>Description:</comment>
  Write full namespaced attribute
  
  面向对象风格
  
  过程化风格
  
  Writes a full namespaced attribute.

<comment>Param:</comment>
  <info></info>             <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                           <strong>xmlwriter_open_uri()</strong> 或
                           <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string|null</info>  <strong>$prefix</strong>     The namespace prefix. If <strong>$prefix</strong> is <info>null</info>, the namespace will be omitted.
  <info>string</info>       <strong>$name</strong>       The attribute name.
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI. If <strong>$namespace</strong> is <info>null</info>, the namespace declaration will
                           be omitted.
  <info>string</info>       <strong>$value</strong>      The attribute value.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::writeAttribute
   * XMLWriter::startAttribute
   * XMLWriter::startAttributeNs
   * XMLWriter::endAttribute


id: XMLWriter::writeCdata
type: function
doc:
<comment>Description:</comment>
  Write full CDATA tag
  
  面向对象风格
  
  过程化风格
  
  Writes a full CDATA.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$content</strong>    The contents of the CDATA.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startCdata
   * XMLWriter::endCdata


id: XMLWriter::writeComment
type: function
doc:
<comment>Description:</comment>
  Write full comment tag
  
  面向对象风格
  
  过程化风格
  
  Writes a full comment.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$content</strong>    The contents of the comment.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startComment
   * XMLWriter::endComment


id: XMLWriter::writeDtd
type: function
doc:
<comment>Description:</comment>
  Write full DTD tag
  
  面向对象风格
  
  过程化风格
  
  Writes a full DTD.

<comment>Param:</comment>
  <info></info>             <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                           <strong>xmlwriter_open_uri()</strong> 或
                           <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>       <strong>$name</strong>       The DTD name.
  <info>string|null</info>  <strong>$publicId</strong>   The external subset public identifier.
  <info>string|null</info>  <strong>$systemId</strong>   The external subset system identifier.
  <info>string|null</info>  <strong>$content</strong>    The content of the DTD.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDtd
   * XMLWriter::endDtd


id: XMLWriter::writeDtdAttlist
type: function
doc:
<comment>Description:</comment>
  Write full DTD AttList tag
  
  面向对象风格
  
  过程化风格
  
  Writes a DTD attribute list.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$name</strong>       The name of the DTD attribute list.
  <info>string</info>  <strong>$content</strong>    The content of the DTD attribute list.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDtdAttlist
   * XMLWriter::endDtdAttlist


id: XMLWriter::writeDtdElement
type: function
doc:
<comment>Description:</comment>
  Write full DTD element tag
  
  面向对象风格
  
  过程化风格
  
  Writes a full DTD element.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$name</strong>       The name of the DTD element.
  <info>string</info>  <strong>$content</strong>    The content of the element.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDtdElement
   * XMLWriter::endDtdElement


id: XMLWriter::writeDtdEntity
type: function
doc:
<comment>Description:</comment>
  Write full DTD Entity tag
  
  面向对象风格
  
  过程化风格
  
  Writes a full DTD entity.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$name</strong>       The name of the entity.
  <info>string</info>  <strong>$content</strong>    The content of the entity.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startDtdEntity
   * XMLWriter::endDtdEntity


id: XMLWriter::writeElement
type: function
doc:
<comment>Description:</comment>
  Write full element tag
  
  面向对象风格
  
  过程化风格
  
  Writes a full element tag.

<comment>Param:</comment>
  <info></info>             <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                           <strong>xmlwriter_open_uri()</strong> 或
                           <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>       <strong>$name</strong>       The element name.
  <info>string|null</info>  <strong>$content</strong>    The element contents.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startElement
   * XMLWriter::endElement
   * XMLWriter::writeElementNs


id: XMLWriter::writeElementNs
type: function
doc:
<comment>Description:</comment>
  Write full namespaced element tag
  
  面向对象风格
  
  过程化风格
  
  Writes a full namespaced element tag.

<comment>Param:</comment>
  <info></info>             <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                           <strong>xmlwriter_open_uri()</strong> 或
                           <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string|null</info>  <strong>$prefix</strong>     The namespace prefix. If <strong>$prefix</strong> is <info>null</info>, the namespace will be omitted.
  <info>string</info>       <strong>$name</strong>       The element name.
  <info>string|null</info>  <strong>$namespace</strong>  The namespace URI. If <strong>$namespace</strong> is <info>null</info>, the namespace declaration will
                           be omitted.
  <info>string|null</info>  <strong>$content</strong>    The element contents.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startElementNs
   * XMLWriter::endElement
   * XMLWriter::writeElement


id: XMLWriter::writePi
type: function
doc:
<comment>Description:</comment>
  Writes a PI
  
  面向对象风格
  
  过程化风格
  
  Writes a processing instruction.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$target</strong>     The target of the processing instruction.
  <info>string</info>  <strong>$content</strong>    The content of the processing instruction.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::startPi
   * XMLWriter::endPi


id: XMLWriter::writeRaw
type: function
doc:
<comment>Description:</comment>
  Write a raw XML text
  
  面向对象风格
  
  过程化风格
  
  Writes a raw xml text.

<comment>Param:</comment>
  <info></info>        <strong>$xmlwriter</strong>  仅用于过程调用。被修改的 <class>XMLWriter</class> 实例对象。此资源来自于对
                      <strong>xmlwriter_open_uri()</strong> 或
                      <strong>xmlwriter_open_memory()</strong> 的调用。
  <info>string</info>  <strong>$content</strong>    The text string to write.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * XMLWriter::text


id: XSLTProcessor::__construct
type: function
doc:
<comment>Description:</comment>
  Creates a new XSLTProcessor object
  
  Creates a new <class>XSLTProcessor</class> object.


id: XSLTProcessor::getParameter
type: function
doc:
<comment>Description:</comment>
  Get value of a parameter
  
  Gets a parameter if previously set by <strong>XSLTProcessor::setParameter()</strong>.

<comment>Param:</comment>
  <info>string</info>  <strong>$namespace</strong>  The namespace URI of the XSLT parameter.
  <info>string</info>  <strong>$name</strong>       The local name of the XSLT parameter.

<comment>Return:</comment>
  <info>string|false</info>  The value of the parameter (as a string), or <info>false</info> if it's not set.

<comment>See Also:</comment>
   * <strong>XSLTProcessor::setParameter()</strong>
   * <strong>XSLTProcessor::removeParameter()</strong>


id: XSLTProcessor::getSecurityPrefs
type: function
doc:
<comment>Description:</comment>
  Get security preferences
  
  Gets the security preferences.

<comment>Return:</comment>
  <info>int</info>  A bitmask consisting of <info>XSL_SECPREF_READ_FILE</info>, <info>XSL_SECPREF_WRITE_FILE</info>,
       <info>XSL_SECPREF_CREATE_DIRECTORY</info>, <info>XSL_SECPREF_READ_NETWORK</info>, <info>XSL_SECPREF_WRITE_NETWORK</info>.


id: XSLTProcessor::hasExsltSupport
type: function
doc:
<comment>Description:</comment>
  Determine if PHP has EXSLT support
  
  This method determines if PHP was built with the EXSLT library.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: XSLTProcessor::importStylesheet
type: function
doc:
<comment>Description:</comment>
  Import stylesheet
  
  This method imports the stylesheet into the  <class>XSLTProcessor</class> for transformations.

<comment>Param:</comment>
  <info>object</info>  <strong>$stylesheet</strong>  The imported style sheet as a <class>DOMDocument</class> or <class>SimpleXMLElement</class> object.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。


id: XSLTProcessor::registerPHPFunctions
type: function
doc:
<comment>Description:</comment>
  Enables the ability to use PHP functions as XSLT functions
  
  This method enables the ability to use PHP functions as XSLT functions within XSL stylesheets.

<comment>Param:</comment>
  <info>array|string|null</info>  <strong>$functions</strong>  Use this parameter to only allow certain functions to be called
                                 from  XSLT.
                                 
                                 This parameter can be either a string (a function name) or an array
                                 of functions.

<comment>Return:</comment>
  <info>void</info>  没有返回值。


id: XSLTProcessor::removeParameter
type: function
doc:
<comment>Description:</comment>
  Remove parameter
  
  Removes a parameter, if set. This will make the processor use the default value for the parameter
  as specified in the stylesheet.

<comment>Param:</comment>
  <info>string</info>  <strong>$namespace</strong>  The namespace URI of the XSLT parameter.
  <info>string</info>  <strong>$name</strong>       The local name of the XSLT parameter.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>XSLTProcessor::setParameter()</strong>
   * <strong>XSLTProcessor::getParameter()</strong>


id: XSLTProcessor::setParameter
type: function
doc:
<comment>Description:</comment>
  Set value for a parameter
  
  Sets the value of one or more parameters to be used in subsequent  transformations with
  <class>XSLTProcessor</class>. If the  parameter doesn't exist in the stylesheet it will be ignored.

<comment>Param:</comment>
  <info>string</info>  <strong>$namespace</strong>  The namespace URI of the XSLT parameter.
  <info>string</info>  <strong>$name</strong>       The local name of the XSLT parameter.
  <info>string</info>  <strong>$value</strong>      The new value of the XSLT parameter.
  <info>array</info>   <strong>$options</strong>    An array of  <return>name =&gt; value</return> pairs.

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * <strong>XSLTProcessor::getParameter()</strong>
   * <strong>XSLTProcessor::removeParameter()</strong>


id: XSLTProcessor::setProfiling
type: function
doc:
<comment>Description:</comment>
  Sets profiling output file
  
  Sets the file to output profiling information when processing  a stylesheet.

<comment>Param:</comment>
  <info>string|null</info>  <strong>$filename</strong>  Path to the file to dump profiling information.

<comment>Return:</comment>
  <info>true</info>  总是返回 <info>true</info>。


id: XSLTProcessor::setSecurityPrefs
type: function
doc:
<comment>Description:</comment>
  Set security preferences
  
  Sets the security preferences.

<comment>Param:</comment>
  <info>int</info>  <strong>$preferences</strong>  The new security preferences. The following constants can be ORed:
                     <info>XSL_SECPREF_READ_FILE</info>, <info>XSL_SECPREF_WRITE_FILE</info>, <info>XSL_SECPREF_CREATE_DIRECTORY</info>,
                     <info>XSL_SECPREF_READ_NETWORK</info>, <info>XSL_SECPREF_WRITE_NETWORK</info>. Alternatively,
                     <info>XSL_SECPREF_NONE</info> or <info>XSL_SECPREF_DEFAULT</info> can be passed.

<comment>Return:</comment>
  <info>int</info>  Returns the old security preferences.


id: XSLTProcessor::transformToDoc
type: function
doc:
<comment>Description:</comment>
  Transform to a document
  
  Transforms the source node to a document (e.g. <class>DOMDocument</class>) applying the stylesheet given by the
  <strong>XSLTProcessor::importStylesheet()</strong> method.

<comment>Param:</comment>
  <info>object</info>       <strong>$document</strong>     The <class>DOMDocument</class> or <class>SimpleXMLElement</class> or libxml-compatible object to be
                             transformed.
  <info>string|null</info>  <strong>$returnClass</strong>  This optional parameter may be used so that
                             XSLTProcessor::transformToDoc will return an object of the specified
                             class. That class should either extend or be the same class as
                             <strong>$document</strong>'s class.

<comment>Return:</comment>
  <info>object|false</info>  The resulting document or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>XSLTProcessor::transformToUri()</strong>
   * <strong>XSLTProcessor::transformToXml()</strong>


id: XSLTProcessor::transformToUri
type: function
doc:
<comment>Description:</comment>
  Transform to URI
  
  Transforms the source node to an URI applying the stylesheet given by the
  <strong>XSLTProcessor::importStylesheet()</strong> method.

<comment>Param:</comment>
  <info>object</info>  <strong>$document</strong>  The <class>DOMDocument</class> or <class>SimpleXMLElement</class> object to be transformed.
  <info>string</info>  <strong>$uri</strong>       The target URI for the transformation.

<comment>Return:</comment>
  <info>int</info>  Returns the number of bytes written or <info>false</info> if an error occurred.

<comment>See Also:</comment>
   * <strong>XSLTProcessor::transformToDoc()</strong>
   * <strong>XSLTProcessor::transformToXml()</strong>


id: XSLTProcessor::transformToXml
type: function
doc:
<comment>Description:</comment>
  Transform to XML
  
  Transforms the source node to a string applying the stylesheet given by the
  <strong>xsltprocessor::importStylesheet()</strong> method.

<comment>Param:</comment>
  <info>object</info>  <strong>$document</strong>  The <class>DOMDocument</class> or <class>SimpleXMLElement</class> object to be transformed.

<comment>Return:</comment>
  <info>string|null|false</info>  The result of the transformation as a string or <info>false</info> on error.

<comment>See Also:</comment>
   * <strong>XSLTProcessor::transformToDoc()</strong>
   * <strong>XSLTProcessor::transformToUri()</strong>


id: XSL_SECPREF_DEFAULT
type: constant
doc:
<comment>Description:</comment>
  Disallows all write access, i.e. a bitmask of <info>XSL_SECPREF_WRITE_NETWORK</info> |
  <info>XSL_SECPREF_CREATE_DIRECTORY</info> | <info>XSL_SECPREF_WRITE_FILE</info>.


id: Yac::__construct
type: function
doc:
<comment>Description:</comment>
  Constructor
  
  prefix is used to prepended to keys, this could be used to avoiding conflicts between apps.

<comment>Param:</comment>
  <info>string</info>  <strong>$prefix</strong>  <info>string</info> prefix


id: Yac::__get
type: function
doc:
<comment>Description:</comment>
  Getter
  
  Retrieve values from cache

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  <info>string</info> key

<comment>Return:</comment>
  <info>mixed</info>  mixed on success, <info>null</info> on failure


id: Yac::__set
type: function
doc:
<comment>Description:</comment>
  Setter
  
  store a item into cache

<comment>Param:</comment>
  <info>string</info>  <strong>$keys</strong>   <info>string</info> key
  <info>mixed</info>   <strong>$value</strong>  mixed value, All php value type could be stored except resource

<comment>Return:</comment>
  <info>mixed</info>  Always return the value self


id: Yac::add
type: function
doc:
<comment>Description:</comment>
  Store into cache
  
  Added a item into cache.

<comment>Param:</comment>
  <info>string</info>  <strong>$keys</strong>   <info>string</info> key
  <info>mixed</info>   <strong>$value</strong>  mixed value, All php value type could be stored except resource
  <info>int</info>     <strong>$ttl</strong>    expire time

<comment>Return:</comment>
  <info>bool</info>  <info>bool</info>, <info>true</info> on success, <info>false</info> on failure  Yac::add may fail if cas lock could not obtain, so,
        if you need the value to be stored properly, you may write codes like: Make sure the item is
        storedset("key", "vale)); ]]>
        
        Yac::add may fail if cas lock could not obtain, so, if you need the value to be stored
        properly, you may write codes like: Make sure the item is storedset("key", "vale)); ]]>


id: Yac::delete
type: function
doc:
<comment>Description:</comment>
  Remove items from cache
  
  remove items from cache

<comment>Param:</comment>
  <info>string|array</info>  <strong>$keys</strong>  string key, or array of multiple keys to be removed
  <info>int</info>           <strong>$ttl</strong>   if delay is set, delete will mark the items to be invalid in ttl second.

<comment>Return:</comment>
  <info>bool</info>  


id: Yac::dump
type: function
doc:
<comment>Description:</comment>
  Dump cache
  
  Dump values stored in cache

<comment>Param:</comment>
  <info></info>  <strong>$num</strong>  Maximum number of items should be returned

<comment>Return:</comment>
  <info>mixed</info>  mixed


id: Yac::flush
type: function
doc:
<comment>Description:</comment>
  Flush the cache
  
  Remove all cached values

<comment>Return:</comment>
  <info>bool</info>  bool, always true


id: Yac::get
type: function
doc:
<comment>Description:</comment>
  Retrieve values from cache
  
  Retrieve values from cache

<comment>Param:</comment>
  <info>string|array</info>  <strong>$key</strong>  <info>string</info> keys, or <info>array</info> of multiple keys.
  <info>int</info>           <strong>$cas</strong>  if not <info>null</info>, it will be set to the retrieved item's cas.

<comment>Return:</comment>
  <info>mixed</info>  mixed on success, false on failure


id: Yac::info
type: function
doc:
<comment>Description:</comment>
  Status of cache
  
  Get status of cache system

<comment>Return:</comment>
  <info>array</info>  Return an array, consistent with: "memory_size", "slots_memory_size", "values_memory_size",
         "segment_size", "segment_num", "miss", "hits", "fails", "kicks", "recycles", "slots_size",
         "slots_used"


id: Yac::set
type: function
doc:
<comment>Description:</comment>
  Store into cache
  
  Add a item into cache, it the key is already exists, override it.

<comment>Param:</comment>
  <info>string</info>  <strong>$keys</strong>   <info>string</info> key
  <info>mixed</info>   <strong>$value</strong>  mixed value, All php value type could be stored except resource
  <info>int</info>     <strong>$ttl</strong>    expire time

<comment>Return:</comment>
  <info>bool</info>  the value self


id: Yaconf
type: class
doc:
<comment>Description:</comment>
  Yaconf is a configurations container, it parses INIT files, stores the result in PHP when PHP is
  started, the result lives  with the whole PHP lifecycle.


id: Yaconf::get
type: function
doc:
<comment>Description:</comment>
  Retrieve a item

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>           Configuration key, the key looks like "filename.key", or
                          "filename.sectionName,key".
  <info>mixed</info>   <strong>$default_value</strong>  if the key doesn't exists, Yaconf::get will return this as result.

<comment>Return:</comment>
  <info>mixed</info>  Returns configuration result(string or array) if the key exists, return default_value if
         not.


id: Yaconf::has
type: function
doc:
<comment>Description:</comment>
  Determine if a item exists

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Action_Abstract
type: class
doc:
<comment>Description:</comment>
  在 Yaf 中一个 action 可以采用单独定义 <class>Yaf_Action_Abstract</class> 来实现。 亦即，一个 action 方法也可以是
  一个 <class>Yaf_Action_Abstract</class> 的派生类。
  
  Yaf 需要一个可以被它所调用的入口点，所以在你自己的动作类里面必须要实现抽象方法
  Yaf_Action_Abstract::execute。


id: Yaf_Action_Abstract::execute
type: function
doc:
<comment>Description:</comment>
  动作入口点
  
  用户应该始终为动作定义此方法，这是动作的入口点。Yaf_Action_Abstract::execute 可能会有参数。  从请
  求中获取值不安全，在使用之前需要对其过滤。
  
  从请求中获取值不安全，在使用之前需要对其过滤。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$args</strong>  

<comment>Return:</comment>
  <info>mixed</info>  

<comment>See Also:</comment>
   * 


id: Yaf_Action_Abstract::getController
type: function
doc:
<comment>Description:</comment>
  检索控制器对象
  
  检索当前控制器对象。

<comment>Return:</comment>
  <info>Yaf_Controller_Abstract</info>  <class>Yaf_Controller_Abstract</class> 实例


id: Yaf_Action_Abstract::getControllerName
type: function
doc:
<comment>Description:</comment>
  Get controller name
  
  get the controller's name

<comment>Return:</comment>
  <info>string</info>  <info>string</info>, controller name


id: Yaf_Application
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Application</class> 为应用提供了一个辅助设施。 它提供了可重用的资源，常见的和模块化的引导类，还有依赖
  的检查。
  
  <class>Yaf_Application</class> 实现了单例模式。 <class>Yaf_Application</class> 不能够被序列化和反序列化， 因为当你尝试使用
  PHPUnit 来为 Yaf 写一些测试用例的时候会造成一些不必要的麻烦。  你可以使用 PHPUnit 的
  @backupGlobals 注释来控制全局变量的备份和恢复操作， 从而可以解决这个问题。
  
  <class>Yaf_Application</class> 实现了单例模式。 <class>Yaf_Application</class> 不能够被序列化和反序列化， 因为当你尝试使用
  PHPUnit 来为 Yaf 写一些测试用例的时候会造成一些不必要的麻烦。
  
  你可以使用 PHPUnit 的 @backupGlobals 注释来控制全局变量的备份和恢复操作， 从而可以解决这个问题。


id: Yaf_Application::__construct
type: function
doc:
<comment>Description:</comment>
  Yaf_Application 的构造函数
  
  初始化一个 <class>Yaf_Application</class>.

<comment>Param:</comment>
  <info>mixed</info>   <strong>$config</strong>   关联数组的配置, 或者一个指向 ini 格式的配置文件的路径的字符串。
                    
                    如果是一个 ini 配置文件，那配置文件中应该有一个定义了 yaf.environ 的配置节。这个
                    在生产环境中是默认的。  如果你使用了 ini 配置文件作为你应用配置的容器，你需要打
                    开 yaf.cache_config 来提升性能。
                    
                    如果你使用了 ini 配置文件作为你应用配置的容器，你需要打开 yaf.cache_config 来提
                    升性能。
                    
                    And the config entry(and there default value) list blow: A ini config file
                    example
  <info>string</info>  <strong>$envrion</strong>  Which section will be loaded as the final config

<comment>See Also:</comment>
   * <class>Yaf_Config_Ini</class>


id: Yaf_Application::app
type: function
doc:
<comment>Description:</comment>
  检索 Application 实例
  
  检索 <class>Yaf_Application</class> 实例。也可以使用 Yaf_Dispatcher::getApplication。

<comment>Return:</comment>
  <info>mixed</info>  <class>Yaf_Application</class> 实例，Yaf_Application 没有初始化之前，返回 <info>null</info>。

<comment>See Also:</comment>
   * Yaf_Dispatcher::getApplication


id: Yaf_Application::bootstrap
type: function
doc:
<comment>Description:</comment>
  调用 bootstrap
  
  运行 Bootstrap，所有在 Bootstrap 中定义并以“_init”前缀命名的方法都将按照声明的顺序调用，如果没有提
  供参数 bootstrap，Yaf 将在 application.directory 下寻找 Bootstrap。

<comment>Param:</comment>
  <info>Yaf_Bootstrap_Abstract</info>  <strong>$bootstrap</strong>  <class>Yaf_Bootstrap_Abstract</class> 实例

<comment>Return:</comment>
  <info>void</info>  <class>Yaf_Application</class> 实例

<comment>See Also:</comment>
   * <class>Yaf_Bootstrap_Abstract</class>


id: Yaf_Application::clearLastError
type: function
doc:
<comment>Description:</comment>
  清除最后的错误信息

<comment>Return:</comment>
  <info>Yaf_Application</info>  


id: Yaf_Application::environ
type: function
doc:
<comment>Description:</comment>
  检索环境名
  
  返回在 yaf.environ 定义的环境值，默认值为“product”。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Application::execute
type: function
doc:
<comment>Description:</comment>
  运行回调
  
  这个方法通常用于在 cron 任务中运行 Yaf_Application。 在 cron 任务中也可以使用 autoloader 和
  Bootstrap 机制。

<comment>Param:</comment>
  <info>callable</info>  <strong>$entry</strong>  一个有效的回调函数
  <info></info>          <strong>$...</strong>    要传递给函数的参数

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Application::getAppDirectory
type: function
doc:
<comment>Description:</comment>
  获取应用的目录

<comment>Param:</comment>
  <info></info>  <strong>$directory</strong>  

<comment>Return:</comment>
  <info>Yaf_Application</info>  


id: Yaf_Application::getConfig
type: function
doc:
<comment>Description:</comment>
  获取 Yaf_Config_Abstract 的实例

<comment>Return:</comment>
  <info>Yaf_Config_Abstract</info>  <class>Yaf_Config_Abstract</class> 的实例


id: Yaf_Application::getDispatcher
type: function
doc:
<comment>Description:</comment>
  获取 Yaf_Dispatcher 的实例

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Application::getLastErrorMsg
type: function
doc:
<comment>Description:</comment>
  获取最近产生的错误的错误信息

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_Application::getModules
type: function
doc:
<comment>Description:</comment>
  获取定义的模块名
  
  获取在配置文件中声明的模块名，如果没有声明，它的默认值将是“Index”。

<comment>Return:</comment>
  <info>array</info>  


id: Yaf_Application::run
type: function
doc:
<comment>Description:</comment>
  运行 Yaf_Application
  
  运行一个 Yaf_Application，开始接受并处理请求，分发路由，做出相应的响应。最终将响应返回给客户端。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Application::setAppDirectory
type: function
doc:
<comment>Description:</comment>
  改变应用目录

<comment>Param:</comment>
  <info>string</info>  <strong>$directory</strong>  

<comment>Return:</comment>
  <info>Yaf_Application</info>  


id: Yaf_Bootstrap_Abstract
type: class
doc:
<comment>Description:</comment>
  Bootstrap 是用来在 Application 运行（run）之前做一些初始化工作的机制。
  
  可以通过继承 <class>Yaf_Bootstrap_Abstract</class> 来定义自己的 Bootstrap 类.
  
  在 Bootstrap 类中所有以“_init”开头的公有的方法, 都会被按照定义顺序依次在
  Yaf_Application::bootstrap 被调用的时刻调用.


id: Yaf_Config_Abstract::get
type: function
doc:
<comment>Description:</comment>
  Getter
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>mixed</info>  


id: Yaf_Config_Abstract::readonly
type: function
doc:
<comment>Description:</comment>
  寻找只读配置
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Config_Abstract::set
type: function
doc:
<comment>Description:</comment>
  Setter
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>Yaf_Config_Abstract</info>  


id: Yaf_Config_Abstract::toArray
type: function
doc:
<comment>Description:</comment>
  转换为数组
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>array</info>  


id: Yaf_Config_Ini
type: class
doc:
<comment>Description:</comment>
  Yaf_Config_Ini 允许开发者通过嵌套的对象属性语法在应用程序中用熟悉的INI格式存储和读取配置数据。
  INI格式在提供拥有配置数据键的等级结构和配置数据节之间的继承能力方面具有专长。 配置数据等级结构通过
  用点或者句号（“.”）分离键值。 一个节可以扩展或者通过在节的名称之后带一个冒号（“:”）和被继承的配置
  数据的节的名称来从另一个节继承。  Yaf_Config_Ini 利用 PHP 的函数 parse_ini_file() 来解析配置文件
  的。 请仔细查看这个函数的文档，注意它的一些特殊用途。以及它传递给 Yaf_Config_Ini 的一些比如
  “<info>true</info>”、“<info>false</info>”、“yes”、“no”和“<info>null</info>”的特殊值的处理方式。
  
  Yaf_Config_Ini 利用 PHP 的函数 parse_ini_file() 来解析配置文件的。 请仔细查看这个函数的文档，注意
  它的一些特殊用途。以及它传递给 Yaf_Config_Ini 的一些比如 “<info>true</info>”、“<info>false</info>”、“yes”、“no”和“<info>null</info>”的特
  殊值的处理方式。


id: Yaf_Config_Ini::__construct
type: function
doc:
<comment>Description:</comment>
  Yaf_Config_Ini 构造方法
  
  <class>Yaf_Config_Ini</class> 构造方法

<comment>Param:</comment>
  <info>string</info>  <strong>$config_file</strong>  INI 配置文件的路径
  <info>string</info>  <strong>$section</strong>      INI 文件中想要解析的 section


id: Yaf_Config_Ini::__get
type: function
doc:
<comment>Description:</comment>
  检索元素
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::__isset
type: function
doc:
<comment>Description:</comment>
  检查节点是否存在
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::__set
type: function
doc:
<comment>Description:</comment>
  The __set purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>mixed</info>   <strong>$value</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::count
type: function
doc:
<comment>Description:</comment>
  Yaf_Config.ini 中所有元素的数量
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::current
type: function
doc:
<comment>Description:</comment>
  检索当前值
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::key
type: function
doc:
<comment>Description:</comment>
  返回当前元素的键
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::next
type: function
doc:
<comment>Description:</comment>
  向前移动到下一个元素
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::offsetExists
type: function
doc:
<comment>Description:</comment>
  检查一个偏移位置是否存在
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::offsetGet
type: function
doc:
<comment>Description:</comment>
  获取一个偏移位置的值
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::offsetSet
type: function
doc:
<comment>Description:</comment>
  设置一个偏移位置的值
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::offsetUnset
type: function
doc:
<comment>Description:</comment>
  复位一个偏移位置的值
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::readonly
type: function
doc:
<comment>Description:</comment>
  检查配置是否只读
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::rewind
type: function
doc:
<comment>Description:</comment>
  检查当前位置是否有效
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::toArray
type: function
doc:
<comment>Description:</comment>
  配置作为数组返回
  
  从 <class>Yaf_Config_Ini</class> 中返回 PHP 数组
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Ini::valid
type: function
doc:
<comment>Description:</comment>
  检查迭代器是否有效
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Simple
type: class
doc:
<comment>Description:</comment>
  Yaf_Config_Simple 是 Yad_Config_ini 的简洁版本，只允许传入数组进行初始化，并提供了设置 readonly 的
  参数。


id: Yaf_Config_Simple::__construct
type: function
doc:
<comment>Description:</comment>
  构造函数
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>array</info>  <strong>$configs</strong>   
  <info>bool</info>   <strong>$readonly</strong>  


id: Yaf_Config_Simple::__get
type: function
doc:
<comment>Description:</comment>
  读取节点配置
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Simple::__set
type: function
doc:
<comment>Description:</comment>
  设置节点配置
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Simple::count
type: function
doc:
<comment>Description:</comment>
  返回配置的节数量
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Simple::current
type: function
doc:
<comment>Description:</comment>
  返回当前节点
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Config_Simple::toArray
type: function
doc:
<comment>Description:</comment>
  返回 PHP 数组
  
  从 <class>Yaf_Config_Simple</class> 中返回 PHP 数组

<comment>Return:</comment>
  <info>array</info>  


id: Yaf_Controller_Abstract
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Controller_Abstract</class> 是 Yaf 系统的 MVC 体系的核心部分。MVC 是指 Model-View-Controller，是一个用
  于分离应用逻辑和表现逻辑的设计模式。
  
  每个自定义 controller 都应当继承 <class>Yaf_Controller_Abstract</class>。
  
  自定义 controller 中无法定义 __construct 方法。因此，<class>Yaf_Controller_Abstract</class> 提供了一个魔术方法
  Yaf_Controller_Abstract::init。
  
  如果自定义 controller 里已经定义了 init() 方法，当实例化 controller 的时候，它将被调用。
  
  Action 可能需要参数，当请求来到的时候，在路由中如果请求的参数有相同名称的变量（例如：
  Yaf_Request_Abstract::getParam），Yaf 将把他们传递给 action 方法（参阅
  Yaf_Action_Abstract::execute）。  这些参数是直接获取的，没有过滤，使用他们之前应该仔细处理。
  
  这些参数是直接获取的，没有过滤，使用他们之前应该仔细处理。


id: Yaf_Controller_Abstract::__construct
type: function
doc:
<comment>Description:</comment>
  Yaf_Controller_Abstract 构造方法
  
  Yaf_Controller_Abstract::__construct 是 final，这意味着不能重写。可以考虑查看
  Yaf_Controller_Abstract::init。

<comment>See Also:</comment>
   * Yaf_Controller_Abstract::init


id: Yaf_Controller_Abstract::display
type: function
doc:
<comment>Description:</comment>
  The display purpose

<comment>Param:</comment>
  <info>string</info>  <strong>$tpl</strong>         
  <info>array</info>   <strong>$parameters</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Controller_Abstract::forward
type: function
doc:
<comment>Description:</comment>
  转发到另一个动作
  
  转发当前处理过程到其他动作。  此方法不会立即切换到目标操作，而是会在当前流程结束后发生。 
  
  此方法不会立即切换到目标操作，而是会在当前流程结束后发生。

<comment>Param:</comment>
  <info>string</info>  <strong>$module</strong>      目标模块名称，如果是 NULL，则采用默认模块名
  <info>string</info>  <strong>$controller</strong>  目标控制器名称
  <info>string</info>  <strong>$action</strong>      目标动作名称
  <info>array</info>   <strong>$paramters</strong>   调用参数

<comment>Return:</comment>
  <info>bool</info>  成功时返回 <info>true</info>， 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * Yaf_Request_Abstrace::getParam


id: Yaf_Controller_Abstract::getInvokeArg
type: function
doc:
<comment>Description:</comment>
  The getInvokeArg purpose

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Controller_Abstract::getInvokeArgs
type: function
doc:
<comment>Description:</comment>
  The getInvokeArgs purpose

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Controller_Abstract::getModuleName
type: function
doc:
<comment>Description:</comment>
  获取当前控制器所属的模块名
  
  获取当前控制器所属的模块名

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_Controller_Abstract::getName
type: function
doc:
<comment>Description:</comment>
  Get self name
  
  get the controller's name

<comment>Return:</comment>
  <info>string</info>  <info>string</info>, controller name


id: Yaf_Controller_Abstract::getRequest
type: function
doc:
<comment>Description:</comment>
  检索当前请求对象
  
  检索当前请求对象

<comment>Return:</comment>
  <info>Yaf_Request_Abstract</info>  <class>Yaf_Request_Abstract</class> 实例


id: Yaf_Controller_Abstract::getResponse
type: function
doc:
<comment>Description:</comment>
  检索当前响应对象
  
  检索当前响应对象

<comment>Return:</comment>
  <info>Yaf_Response_Abstract</info>  <class>Yaf_Response_Abstract</class> 实例


id: Yaf_Controller_Abstract::getView
type: function
doc:
<comment>Description:</comment>
  获取当前的视图引擎
  
  获取当前的视图引擎

<comment>Return:</comment>
  <info>Yaf_View_Interface</info>  


id: Yaf_Controller_Abstract::getViewpath
type: function
doc:
<comment>Description:</comment>
  The getViewpath purpose

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_Controller_Abstract::init
type: function
doc:
<comment>Description:</comment>
  控制器初始化
  
  Yaf_Controller_Abstract::__construct 是 final 类型，所以用户不能重载它。但是用户可以定义
  Yaf_Controller_Abstract::init，该函数会在控制器对象实例化之后被调用。

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_Controller_Abstract::__construct


id: Yaf_Controller_Abstract::initView
type: function
doc:
<comment>Description:</comment>
  The initView purpose

<comment>Param:</comment>
  <info>array</info>  <strong>$options</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Controller_Abstract::redirect
type: function
doc:
<comment>Description:</comment>
  重定向到 URL
  
  通过发送 302 标头重定向到 URL

<comment>Param:</comment>
  <info>string</info>  <strong>$url</strong>  位置 URL

<comment>Return:</comment>
  <info>bool</info>  bool


id: Yaf_Controller_Abstract::render
type: function
doc:
<comment>Description:</comment>
  渲染视图模板

<comment>Param:</comment>
  <info>string</info>  <strong>$tpl</strong>         
  <info>array</info>   <strong>$parameters</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_Controller_Abstract::setViewpath
type: function
doc:
<comment>Description:</comment>
  The setViewpath purpose

<comment>Param:</comment>
  <info>string</info>  <strong>$view_directory</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Dispatcher
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Dispatcher</class>用于初始化处理请求的运行环境,  它协调路由来的请求, 并分发和执行发现的动作,  然后收集
  动作产生的响应, 输出响应给请求者, 并在整个过程完成以后返回响应.
  
  <class>Yaf_Dispatcher</class>是单例模式运行的,  也就是说自始至终只生成一个<class>Yaf_Dispatcher</class>实例,  因此, 可以把它看成
  是在分发过程中生成的对象的注册表, 可以从中获取到分发过程中产生的对象.


id: Yaf_Dispatcher::autoRender
type: function
doc:
<comment>Description:</comment>
  开启/关闭自动渲染
  
  <class>Yaf_Dispatcher</class> 将会在分发到来的请求后自动渲染，可以带 <strong>$flag</strong> <info>true</info> 调用此方法来阻止渲染。  也可以在
  操作中简单的返回 <info>false</info> 来阻止动作的自动渲染
  
  也可以在操作中简单的返回 <info>false</info> 来阻止动作的自动渲染

<comment>Param:</comment>
  <info>bool</info>  <strong>$flag</strong>  bool  自 2.2.0 起。如果没有指定此参数，则会返回当前状态 
               
               自 2.2.0 起。如果没有指定此参数，则会返回当前状态

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::catchException
type: function
doc:
<comment>Description:</comment>
  开启/关闭自动异常捕获
  
  当 application.dispatcher.throwException 开启的时候（也可以通过调用
  Yaf_Dispatcher::throwException(TRUE) 来开启），Yaf 会在错误发生时抛出 Exception 而不是触发错误。
  
  如果开启了 Yaf_Dispatcher::catchException （可以通过设置 application.dispatcher.catchException 来
  开启），如果已经定义，所有未捕获的 Exception 都将被 ErrorController::error 捕获。

<comment>Param:</comment>
  <info>bool</info>  <strong>$flag</strong>  bool

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  

<comment>See Also:</comment>
   * Yaf_Dispatcher::throwException
   * Yaf_Dispatcher::setErrorHandler


id: Yaf_Dispatcher::disableView
type: function
doc:
<comment>Description:</comment>
  关闭视图渲染
  
  禁用视图引擎，用于一些需要用户自己输出的应用程序  也可以在操作中简单的返回 <info>false</info> 来阻止动作的自动
  渲染
  
  也可以在操作中简单的返回 <info>false</info> 来阻止动作的自动渲染

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Dispatcher::dispatch
type: function
doc:
<comment>Description:</comment>
  分发请求
  
  <class>Yaf_Dispatcher</class> 的这个方法做的工作很繁重.它需要 request 对象。
  
  分发过程有三个不同的事件： 路由分发响应 当调用 <strong>Yaf_Dispatcher::dispatch()</strong> 时，路由只发生一次，使用
  请求对象中的值。分发发生在循环中；一个请求可能会分发出多个动作，或者 controller 或 plugin 可能重置
  请求对象来强制分发其它动作（参见 <class>Yaf_Plugin_Abstract</class>）。当所有都执行完毕，<class>Yaf_Dispatcher</class> 返回响
  应。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>  <strong>$request</strong>  

<comment>Return:</comment>
  <info>Yaf_Response_Abstract</info>  


id: Yaf_Dispatcher::enableView
type: function
doc:
<comment>Description:</comment>
  开启视图渲染

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::flushInstantly
type: function
doc:
<comment>Description:</comment>
  打开/关闭即时刷新

<comment>Param:</comment>
  <info>bool</info>  <strong>$flag</strong>  bool  自 2.2.0 起，如果未指定参数，然后返回当前状态 
               
               自 2.2.0 起，如果未指定参数，然后返回当前状态

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::getApplication
type: function
doc:
<comment>Description:</comment>
  检索应用程序
  
  检索 <class>Yaf_Application</class> 实例，等同于 Yaf_Application::app。

<comment>Return:</comment>
  <info>Yaf_Application</info>  

<comment>See Also:</comment>
   * Yaf_Application::app


id: Yaf_Dispatcher::getDefaultAction
type: function
doc:
<comment>Description:</comment>
  Retrive the default action name
  
  get the default action name

<comment>Return:</comment>
  <info>string</info>  <info>string</info>, default action name, default is "index"


id: Yaf_Dispatcher::getDefaultController
type: function
doc:
<comment>Description:</comment>
  Retrive the default controller name
  
  get the default controller name

<comment>Return:</comment>
  <info>string</info>  <info>string</info>, default controller name, default is "Index"


id: Yaf_Dispatcher::getDefaultModule
type: function
doc:
<comment>Description:</comment>
  Retrive the default module name
  
  get the default module name

<comment>Return:</comment>
  <info>string</info>  <info>string</info>, module name, default is "Index"


id: Yaf_Dispatcher::getInstance
type: function
doc:
<comment>Description:</comment>
  获取当前的Yaf_Dispatcher实例

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::getRequest
type: function
doc:
<comment>Description:</comment>
  检索请求实例

<comment>Return:</comment>
  <info>Yaf_Request_Abstract</info>  


id: Yaf_Dispatcher::initView
type: function
doc:
<comment>Description:</comment>
  初始化视图并返回

<comment>Param:</comment>
  <info>string</info>  <strong>$templates_dir</strong>  
  <info>array</info>   <strong>$options</strong>        

<comment>Return:</comment>
  <info>Yaf_View_Interface</info>  


id: Yaf_Dispatcher::registerPlugin
type: function
doc:
<comment>Description:</comment>
  注册插件
  
  注册插件（参见 <class>Yaf_Plugin_Abstract</class>）。通常在 Bootstrap 中注册插件（参见 <class>Yaf_Bootstrap_Abstract</class>）。

<comment>Param:</comment>
  <info>Yaf_Plugin_Abstract</info>  <strong>$plugin</strong>  

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  

<comment>See Also:</comment>
   * <class>Yaf_Plugin_Abstract</class>
   * <class>Yaf_Bootstrap_Abstract</class>


id: Yaf_Dispatcher::returnResponse
type: function
doc:
<comment>Description:</comment>
  The returnResponse purpose

<comment>Param:</comment>
  <info>bool</info>  <strong>$flag</strong>  

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::setDefaultAction
type: function
doc:
<comment>Description:</comment>
  设置默认动作名

<comment>Param:</comment>
  <info>string</info>  <strong>$action</strong>  

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::setDefaultController
type: function
doc:
<comment>Description:</comment>
  设置默认控制器名

<comment>Param:</comment>
  <info>string</info>  <strong>$controller</strong>  

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::setDefaultModule
type: function
doc:
<comment>Description:</comment>
  设置默认模块名

<comment>Param:</comment>
  <info>string</info>  <strong>$module</strong>  

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::setErrorHandler
type: function
doc:
<comment>Description:</comment>
  设置错误处理
  
  为 Yaf 设置错误处理程序，当 application.dispatcher.throwException 关闭时，Yaf 将在发生意外错误时触
  发可捕获错误。
  
  因此，将在错误出现时调用该错误处理程序。

<comment>Param:</comment>
  <info>call</info>  <strong>$callback</strong>     可调用的回调
  <info>int</info>   <strong>$error_types</strong>  

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  

<comment>See Also:</comment>
   * Yaf_Dispatcher::throwException
   * Yaf_Application::getLastErrorNo
   * Yaf_Application::getLastErrorMsg


id: Yaf_Dispatcher::setRequest
type: function
doc:
<comment>Description:</comment>
  The setRequest purpose

<comment>Param:</comment>
  <info></info>  <strong>$plugin</strong>  

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  


id: Yaf_Dispatcher::setView
type: function
doc:
<comment>Description:</comment>
  设置自定义视图引擎
  
  如果想使用自定义视图引擎而不是 <class>Yaf_View_Simple</class>，此方法会帮你解决这个问题。

<comment>Param:</comment>
  <info>Yaf_View_Interface</info>  <strong>$view</strong>  <class>Yaf_View_Interface</class> 实例

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  

<comment>See Also:</comment>
   * <class>Yaf_View_Interface</class>
   * <class>Yaf_View_Simple</class>


id: Yaf_Dispatcher::throwException
type: function
doc:
<comment>Description:</comment>
  开启/关闭异常抛出
  
  当意外的错误发生的时候，开启/关闭异常抛出。当开启的时候，Yaf 将会抛出异常而不是触发可捕捉的错误。
  
  你也可以使用  application.dispatcher.throwException 来达到相同的目的。

<comment>Param:</comment>
  <info>bool</info>  <strong>$flag</strong>  bool

<comment>Return:</comment>
  <info>Yaf_Dispatcher</info>  

<comment>See Also:</comment>
   * Yaf_Dispatcher::catchException
   * <class>Yaf_Exception</class>


id: Yaf_Exception::getPrevious
type: function
doc:
<comment>Description:</comment>
  The getPrevious purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Loader
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Loader</class> 为 Yaf 提供了自动加载功能的全面解决方案。
  
  在第一次检索 <class>Yaf_Application</class> 实例时，<class>Yaf_Loader</class> 将实例化一个单例，并使用 spl_autoload 注册自己。通
  过 Yaf_Loader::getInstance 检索实例
  
  <class>Yaf_Loader</class> 加载类时仅仅尝试一次，如果失败了，取决于 yaf.use_spl_auload，如果配置是 On，
  Yaf_Loader::autoload 将会返回 <info>false</info>，从而给其它自动加载提供机会。如果为 Off（默认），
  Yaf_Loader::autoload 将会返回 <info>true</info>，更重要的是将会抛出非常有用的警告（对于找出类无法加载的原因非常
  有用）。  请保持 yaf.use_spl_autoload 为 Off，除非有一些 library 有自己的自动加载机制，并且是无法
  重写的。
  
  请保持 yaf.use_spl_autoload 为 Off，除非有一些 library 有自己的自动加载机制，并且是无法重写的。
  
  默认情况下，<class>Yaf_Loader</class> 假设所有 library（类定义的脚本）储存进在 php.ini（yaf.library）定义的全局库
  目录中。
  
  如果使用 <class>Yaf_Loader</class> 在本地库目录（在 application.ini 中定义，默认是 application.directory .
  "/library"）搜索一些类（库），需要使用 Yaf_Loader::registerLocalNameSpace 注册本地类前缀
  
  看看一些示例（假设 APPLICATION_PATH 是 application.directory）： Config example
   假设以下本地名称空间已注册： 注册本地命名空间registerLocalNameSpace(array("Foo", "Bar")); }
  ?>
  ]]> 自动加载示例： 加载类示例 // APPLICATION_PATH/library/Foo/Bar/Test.php 
  class GLO_Name  => // /global_dir/Glo/Name.php 
  class BarNon_Test // /global_dir/Barnon/Test.php
  ]]>
   加载命名空间类示例 // APPLICATION_PATH/library/Foo/Bar/Dummy.php
  
  class \FooBar\Bar\Dummy => // /global_dir/FooBar/Bar/Dummy.php
  ]]>
  
  可能会注意到所有文件夹名字的首字母是大写的，可以通过在 php.ini 中设置 yaf.lowcase_path = On 来将它
  们设为小写。
  
  <class>Yaf_Loader</class> 也是设计来加载 MVC 类，响应的规则如下： MVC 类加载示例
  // APPLICATION_PATH/controllers/
  
  Model Classes =>
  // APPLICATION_PATH/models/
  
  Plugin Classes =>
  // APPLICATION_PATH/plugins/
  ]]>
   Yaf 通过识别类的后缀（这个是默认的，也可以通过改变配置项 yaf.name_suffix 来更改为前缀）来决定它是
  否是 MVC 类： MVC 类区别 // ***Controller
  
  Model Classes => // ***Model
  
  Plugin Classes => // ***Plugin
  ]]>
   一些示例： MVC 加载示例 // APPLICATION_PATH/models/Data.php
  
  class DummyPlugin => // APPLICATION_PATH/plugins/Dummy.php
  
  class A_B_TestModel => // APPLICATION_PATH/models/A/B/Test.php
  ]]>
    自 2.1.18 起，Yaf 支持用户脚本端的 Controller 自动加载（这意味着由用户 php 脚本触发自动加载，例
  如：访问 Bootstrap 或 Plugins 中的控制器静态属性），但自动加载器仅尝试在控制器类脚本下定位默认模块
  文件夹，即“APPLICATION_PATH/controllers/”。  此外，该目录将受 yaf.lowcase_path 的影响。
  
  自 2.1.18 起，Yaf 支持用户脚本端的 Controller 自动加载（这意味着由用户 php 脚本触发自动加载，例
  如：访问 Bootstrap 或 Plugins 中的控制器静态属性），但自动加载器仅尝试在控制器类脚本下定位默认模块
  文件夹，即“APPLICATION_PATH/controllers/”。


id: Yaf_Loader::autoload
type: function
doc:
<comment>Description:</comment>
  The autoload purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Loader::clearLocalNamespace
type: function
doc:
<comment>Description:</comment>
  The clearLocalNamespace purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Loader::getInstance
type: function
doc:
<comment>Description:</comment>
  The getInstance purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Loader::getLibraryPath
type: function
doc:
<comment>Description:</comment>
  获取库路径
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>Yaf_Loader</info>  


id: Yaf_Loader::getLocalNamespace
type: function
doc:
<comment>Description:</comment>
  Retrive all register namespaces info
  
  get registered namespaces info

<comment>Return:</comment>
  <info>array</info>  <info>array</info>


id: Yaf_Loader::getNamespacePath
type: function
doc:
<comment>Description:</comment>
  Retieve path of a registered namespace
  
  retrieve path of a registered namespace

<comment>Param:</comment>
  <info></info>  <strong>$namespace</strong>  a string of namespace.

<comment>Return:</comment>
  <info>string</info>  <info>string</info> path, if the namespace is not registered, then <info>null</info> default library will be
          returned


id: Yaf_Loader::import
type: function
doc:
<comment>Description:</comment>
  The import purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Loader::isLocalName
type: function
doc:
<comment>Description:</comment>
  The isLocalName purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Loader::registerLocalNamespace
type: function
doc:
<comment>Description:</comment>
  注册本地类前缀
  
  注册本地类前缀，<class>Yaf_Loader</class> 在两个库目录下搜索类，一个是通过 application.library.directory（在
  application.ini 中）配置，称为本地库目录；另一个是通过 yaf.library（在 php.ini 中），成为全局库目
  录，因为它可以在同一个服务器中的许多应用程序共享。
  
  当触发自动加载时，<class>Yaf_Loader</class> 将通过检查丢失类名的前缀来确定应该在哪个库目录中去搜索。
   如果前缀名注册为 localnamespack，则在本地库目录中查找，否则在全局库目录中查找。  如果未配置
  yaf.library，则假定全局库目录为本地库目录。在这种情况下，所有自动加载都将查找本地库目录。
   但如果希望 Yaf 应用程序更加健壮，那么请始终将类注册为本地类。 
  
  如果未配置 yaf.library，则假定全局库目录为本地库目录。在这种情况下，所有自动加载都将查找本地库目
  录。
   但如果希望 Yaf 应用程序更加健壮，那么请始终将类注册为本地类。

<comment>Param:</comment>
  <info>mixed</info>  <strong>$prefix</strong>  字符串或者是数组格式的类名前缀，所有拥有和这些前缀相同前缀的类将被加载到本地
                  library 路径。

<comment>Return:</comment>
  <info>void</info>  bool


id: Yaf_Loader::registerNamespace
type: function
doc:
<comment>Description:</comment>
  Register namespace with searching path
  
  Register a namespace with searching path, <class>Yaf_Loader</class> searchs classes under this namespace in path,
  the one is also could be  configureded via  application.library.directory.namespace(in
  application.ini);
  
   Yaf still think underline as folder separator. 
  
  Yaf still think underline as folder separator.

<comment>Param:</comment>
  <info></info>        <strong>$namespace</strong>  a string of namespace, or a array of namespaces with paths.
  <info>string</info>  <strong>$path</strong>       a string of path, it is better to use abosolute path here for performance

<comment>Return:</comment>
  <info>bool</info>  bool


id: Yaf_Loader::setLibraryPath
type: function
doc:
<comment>Description:</comment>
  改变 library 路径
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>Yaf_Loader</info>  


id: Yaf_Plugin_Abstract
type: class
doc:
<comment>Description:</comment>
  Plugins 允许轻松地定制和扩展框架。
  
  插件（Plugin）是类。实际定义的类将会基于组件变化——需要实现这些接口，但该插件（Plugin）本身就是一个
  类。
  
  插件（plugin）通过使用 Yaf_Dispatcher::registerPlugin 加载到 Yaf 中，在框架注册后，插件根据接口实
  现的所有方法将会在恰当的时间被调用。


id: Yaf_Plugin_Abstract::dispatchLoopShutdown
type: function
doc:
<comment>Description:</comment>
  The dispatchLoopShutdown purpose
  
  这个方式是 Yaf 插件钩子系统中最后的一个钩子，如果一个用户插件实现了这个方法，它将在分发循环结束之
  后触发。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>   <strong>$request</strong>   
  <info>Yaf_Response_Abstract</info>  <strong>$response</strong>  

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_Plugin_Abstract::routerStartup
   * Yaf_Plugin_Abstract::routerShutdown
   * Yaf_Plugin_Abstract::dispatchLoopStartup
   * Yaf_Plugin_Abstract::preDispatch
   * Yaf_Plugin_Abstract::postDispatch


id: Yaf_Plugin_Abstract::dispatchLoopStartup
type: function
doc:
<comment>Description:</comment>
  在调度循环之前的 Hook
  
  这个钩子将在分发循环开始之前触发。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>   <strong>$request</strong>   
  <info>Yaf_Response_Abstract</info>  <strong>$response</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Plugin_Abstract::postDispatch
type: function
doc:
<comment>Description:</comment>
  The postDispatch purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>   <strong>$request</strong>   
  <info>Yaf_Response_Abstract</info>  <strong>$response</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Plugin_Abstract::preDispatch
type: function
doc:
<comment>Description:</comment>
  The preDispatch purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>   <strong>$request</strong>   
  <info>Yaf_Response_Abstract</info>  <strong>$response</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Plugin_Abstract::preResponse
type: function
doc:
<comment>Description:</comment>
  The preResponse purpose
  
  这个钩子在响应(Yaf_Response)前被触发
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>   <strong>$request</strong>   
  <info>Yaf_Response_Abstract</info>  <strong>$response</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Plugin_Abstract::routerShutdown
type: function
doc:
<comment>Description:</comment>
  The routerShutdown purpose
  
  这个钩子在路由结束之后触发，通常被用于登陆检查。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>   <strong>$request</strong>   
  <info>Yaf_Response_Abstract</info>  <strong>$response</strong>  

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_Plugin_Abstract::routerStartup
   * Yaf_Plugin_Abstract::dispatchLoopStartup
   * Yaf_Plugin_Abstract::preDispatch
   * Yaf_Plugin_Abstract::postDispatch
   * Yaf_Plugin_Abstract::dispatchLoopShutdown


id: Yaf_Plugin_Abstract::routerStartup
type: function
doc:
<comment>Description:</comment>
  RouterStartup hook
  
  这个是 Yaf 插件的勾子系统最早被触发的的一个方法，如果一个用户插件实现了这个方法，它将在路由之前触
  发。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>   <strong>$request</strong>   
  <info>Yaf_Response_Abstract</info>  <strong>$response</strong>  

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_Plugin_Abstract::routerShutdown
   * Yaf_Plugin_Abstract::dispatchLoopStartup
   * Yaf_Plugin_Abstract::preDispatch
   * Yaf_Plugin_Abstract::postDispatch
   * Yaf_Plugin_Abstract::dispatchLoopShutdown


id: Yaf_Registry
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Registry</class> 的所有方法都声明为静态，使其可以随地访问。这提供了根据需要从代码中获取/设置任何自定义
  数据的能力。
   对象注册表（或称对象仓库）是一个用于在整个应用空间（application space）内存储对象和值的容器. 通过
  把对象存储在其中,我们可以在整个项目的任何地方使用同一个对象。这种机制相当于一种全局存储。另外，由
  于该类是一个数组对象，你可以使用数组形式来访问其中的类方法。


id: Yaf_Registry::del
type: function
doc:
<comment>Description:</comment>
  从注册表中移除条目
  
  从注册表中移除条目

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Registry::get
type: function
doc:
<comment>Description:</comment>
  从注册表中检索条目
  
  从注册表中检索条目

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>mixed</info>  


id: Yaf_Registry::has
type: function
doc:
<comment>Description:</comment>
  检测条目是否存在
  
  检测条目是否存在

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Registry::set
type: function
doc:
<comment>Description:</comment>
  向注册表添加条目
  
  向注册表添加条目

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Request_Abstract::clearParams
type: function
doc:
<comment>Description:</comment>
  Remove all params
  
  Remove all params set by router, or Yaf_Request_Abstract::setParam

<comment>Return:</comment>
  <info>bool</info>  <info>bool</info>

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isHead
   * Yaf_Request_Abstract::isGet
   * Yaf_Request_Abstract::isPost
   * Yaf_Request_Abstract::isPut
   * Yaf_Request_Abstract::isOptions
   * Yaf_Request_Abstract::isXmlHTTPRequest


id: Yaf_Request_Abstract::getActionName
type: function
doc:
<comment>Description:</comment>
  The getActionName purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::getBaseUri
type: function
doc:
<comment>Description:</comment>
  The getBaseUri purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::getControllerName
type: function
doc:
<comment>Description:</comment>
  The getControllerName purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::getEnv
type: function
doc:
<comment>Description:</comment>
  检索 ENV 变量
  
  检索 ENV 变量

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>     变量名
  <info>string</info>  <strong>$default</strong>  如果这个参数被提供了，当参数找不到的时候它将被返回

<comment>Return:</comment>
  <info>void</info>  返回字符串

<comment>See Also:</comment>
   * Yaf_Request_Abstract::getServer
   * Yaf_Request_Abstract::getParam


id: Yaf_Request_Abstract::getException
type: function
doc:
<comment>Description:</comment>
  The getException purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::getLanguage
type: function
doc:
<comment>Description:</comment>
  检索客户端的首选语言

<comment>Return:</comment>
  <info>void</info>  返回字符串


id: Yaf_Request_Abstract::getMethod
type: function
doc:
<comment>Description:</comment>
  检索请求方法

<comment>Return:</comment>
  <info>string</info>  返回字符串，像“POST”、“GET”等。

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isHead
   * Yaf_Request_Abstract::isCli
   * Yaf_Request_Abstract::isPost
   * Yaf_Request_Abstract::isPut
   * Yaf_Request_Abstract::isOptions
   * Yaf_Request_Abstract::isXmlHTTPRequest


id: Yaf_Request_Abstract::getModuleName
type: function
doc:
<comment>Description:</comment>
  The getModuleName purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::getParam
type: function
doc:
<comment>Description:</comment>
  检索调用的参数

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>     
  <info>string</info>  <strong>$default</strong>  

<comment>Return:</comment>
  <info>mixed</info>  

<comment>See Also:</comment>
   * Yaf_Request_Abstract::setParam


id: Yaf_Request_Abstract::getParams
type: function
doc:
<comment>Description:</comment>
  获取所有调用的参数

<comment>Return:</comment>
  <info>array</info>  

<comment>See Also:</comment>
   * Yaf_Request_Abstract::setParam


id: Yaf_Request_Abstract::getRequestUri
type: function
doc:
<comment>Description:</comment>
  The getRequestUri purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::getServer
type: function
doc:
<comment>Description:</comment>
  检索 SERVER 变量
  
  检索 SERVER 变量

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>     变量名
  <info>string</info>  <strong>$default</strong>  如果提供这个参数，在没找到变量值时候此参数的值将被返回

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_Request_Abstract::getParam
   * Yaf_Request_Abstract::getEnv


id: Yaf_Request_Abstract::isCli
type: function
doc:
<comment>Description:</comment>
  判断请求是否是 CLI 请求

<comment>Return:</comment>
  <info>bool</info>  bolean

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isHead
   * Yaf_Request_Abstract::isGet
   * Yaf_Request_Abstract::isPost
   * Yaf_Request_Abstract::isPut
   * Yaf_Request_Abstract::isOptions
   * Yaf_Request_Abstract::isXmlHTTPRequest


id: Yaf_Request_Abstract::isDispatched
type: function
doc:
<comment>Description:</comment>
  判断请求是否已发送

<comment>Return:</comment>
  <info>bool</info>  boolean

<comment>See Also:</comment>
   * Yaf_Dispatcher::dispatch


id: Yaf_Request_Abstract::isGet
type: function
doc:
<comment>Description:</comment>
  判断请求是否是 GET 请求

<comment>Return:</comment>
  <info>bool</info>  boolean

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isHead
   * Yaf_Request_Abstract::isCli
   * Yaf_Request_Abstract::isPost
   * Yaf_Request_Abstract::isPut
   * Yaf_Request_Abstract::isOptions
   * Yaf_Request_Abstract::isXmlHTTPRequest


id: Yaf_Request_Abstract::isHead
type: function
doc:
<comment>Description:</comment>
  判断请求是否是 HEAD 请求

<comment>Return:</comment>
  <info>bool</info>  boolean

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isGet
   * Yaf_Request_Abstract::isCli
   * Yaf_Request_Abstract::isPost
   * Yaf_Request_Abstract::isPut
   * Yaf_Request_Abstract::isOptions
   * Yaf_Request_Abstract::isXmlHTTPRequest


id: Yaf_Request_Abstract::isOptions
type: function
doc:
<comment>Description:</comment>
  判断请求是否是 OPTIONS 请求

<comment>Return:</comment>
  <info>bool</info>  boolean


id: Yaf_Request_Abstract::isPost
type: function
doc:
<comment>Description:</comment>
  判断请求是否是 POST 请求

<comment>Return:</comment>
  <info>bool</info>  boolean

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isGet
   * Yaf_Request_Abstract::isCli
   * Yaf_Request_Abstract::isHead
   * Yaf_Request_Abstract::isPut
   * Yaf_Request_Abstract::isOptions
   * Yaf_Request_Abstract::isXmlHTTPRequest


id: Yaf_Request_Abstract::isPut
type: function
doc:
<comment>Description:</comment>
  判断请求是否是 PUT 请求

<comment>Return:</comment>
  <info>bool</info>  boolean

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isHead
   * Yaf_Request_Abstract::isCli
   * Yaf_Request_Abstract::isPost
   * Yaf_Request_Abstract::isGet
   * Yaf_Request_Abstract::isOptions
   * Yaf_Request_Abstract::isXmlHTTPRequest


id: Yaf_Request_Abstract::isRouted
type: function
doc:
<comment>Description:</comment>
  判断请求是否已路由

<comment>Return:</comment>
  <info>bool</info>  boolean


id: Yaf_Request_Abstract::isXmlHttpRequest
type: function
doc:
<comment>Description:</comment>
  判断请求是否是 AJAX 请求

<comment>Return:</comment>
  <info>bool</info>  boolean

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isHead
   * Yaf_Request_Abstract::isCli
   * Yaf_Request_Abstract::isPost
   * Yaf_Request_Abstract::isPut
   * Yaf_Request_Abstract::isOptions
   * Yaf_Request_Abstract::isGet


id: Yaf_Request_Abstract::setActionName
type: function
doc:
<comment>Description:</comment>
  设置 action 名
  
  set action name to request, this is usually used by custom router to set route result action name.

<comment>Param:</comment>
  <info>string</info>  <strong>$action</strong>       <info>string</info>，action 名，应该是小写的，比如“index”或“foo_bar”
  <info>bool</info>    <strong>$format_name</strong>  在 Yaf 3.2.0 中引入，Yaf 默认会将名称格式化为小写样式，如果设置为 <info>false</info>，Yaf
                        将设置原始名称来请求。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::setBaseUri
type: function
doc:
<comment>Description:</comment>
  设置基础 URI
  
  设置基础 URI，在路由时使用基础 URI，在路由阶段，请求 URI 用于路由请求，而基础 URI 用户跳过请求 URI
  的前置部分（基础 URI）。
   也就是说，如果请求 URI 是 a/b/c，然后设置基础 URI 为 “a/b”，则路由阶段只会使用“/c”  一般不需要设
  置，Yaf 会自动判断。
  
  一般不需要设置，Yaf 会自动判断。

<comment>Param:</comment>
  <info>string</info>  <strong>$uir</strong>  基础 URI

<comment>Return:</comment>
  <info>bool</info>  bool


id: Yaf_Request_Abstract::setControllerName
type: function
doc:
<comment>Description:</comment>
  设置控制器名
  
  set controller name to request, this is usually used by custom router to set route result
  controller name.

<comment>Param:</comment>
  <info>string</info>  <strong>$controller</strong>   <info>string</info>，controller 名，应该是骆驼样式，比如“Index”或“Foo_Bar”
  <info>bool</info>    <strong>$format_name</strong>  在 Yaf 3.2.0 中引入，Yaf 默认会将名称格式化为骆驼样式，如果设置为 <info>false</info>，Yaf
                        将设置原始名称来请求。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::setDispatched
type: function
doc:
<comment>Description:</comment>
  The setDispatched purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::setModuleName
type: function
doc:
<comment>Description:</comment>
  设置模块名
  
  set module name to request, this is usually used by custom router to set route result module name.

<comment>Param:</comment>
  <info>string</info>  <strong>$module</strong>       <info>string</info>，module 名，应该是骆驼样式，比如“Index”或“Foo_Bar”
  <info>bool</info>    <strong>$format_name</strong>  在 Yaf 3.2.0 中引入，Yaf 默认会将名称格式化为骆驼样式，如果设置为 <info>false</info>，Yaf
                        将设置原始名称来请求。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::setParam
type: function
doc:
<comment>Description:</comment>
  设置调用参数到请求
  
  设置参数到请求，可以由 Yaf_Request_Abstract::getParam 检索

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yaf_Request_Abstract::getParam
   * Yaf_Request_Abstract::getParams


id: Yaf_Request_Abstract::setRequestUri
type: function
doc:
<comment>Description:</comment>
  The setRequestUri purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$uir</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Abstract::setRouted
type: function
doc:
<comment>Description:</comment>
  The setRouted purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$flag</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Http
type: class
doc:
<comment>Description:</comment>
  来自客户端的任何请求都会初始化为 <class>Yaf_Request_Http</class>。可以通过该类的方法获取请求信息，像是 uri query
  和 post 参数等。  为了安全，$_GET/$_POST 在 Yaf 中为只读，这意味着如果在全局变量中设置了值，将无法
  从 Yaf_Request_Http::getQuery 或 Yaf_Request_Http::getPost 获取。  但确实有些用途需要这些功能，比
  如单元测试。因此 Yaf 可以使用 --enable-yaf-debug 编译，这将允许 Yaf 通过脚本读取用户设置的值。  在
  这种情况下，Yaf 将会抛出 E_STRICT 警告来提醒：正在调试模式下运行 yaf。
  
  为了安全，$_GET/$_POST 在 Yaf 中为只读，这意味着如果在全局变量中设置了值，将无法从
  Yaf_Request_Http::getQuery 或 Yaf_Request_Http::getPost 获取。
  
  但确实有些用途需要这些功能，比如单元测试。因此 Yaf 可以使用 --enable-yaf-debug 编译，这将允许 Yaf
  通过脚本读取用户设置的值。
  
  在这种情况下，Yaf 将会抛出 E_STRICT 警告来提醒：正在调试模式下运行 yaf。


id: Yaf_Request_Http::get
type: function
doc:
<comment>Description:</comment>
  从客户端检索变量
  
  从客户端检索变量，该方法将从请求参数中搜索 <strong>$name</strong>，如果没有找到，将从 POST、GET、Cookie、Server 中
  寻找

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>     变量名
  <info>string</info>  <strong>$default</strong>  如果提供了此参数，当没有找到此变量时，将返回此参数

<comment>Return:</comment>
  <info>mixed</info>  

<comment>See Also:</comment>
   * Yaf_Request_Http::getQuery
   * Yaf_Request_Http::getPost
   * Yaf_Request_Http::getCookie
   * Yaf_Request_Http::getRaw
   * Yaf_Request_Abstract::getServer
   * Yaf_Request_Abstract::getParam


id: Yaf_Request_Http::getCookie
type: function
doc:
<comment>Description:</comment>
  检索 Cookie 变量
  
  检索 Cookie 变量

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>     cookie 变量
  <info>string</info>  <strong>$default</strong>  如果提供了此参数，当没有找到此变量时，将返回此参数

<comment>Return:</comment>
  <info>mixed</info>  

<comment>See Also:</comment>
   * Yaf_Request_Http::get
   * Yaf_Request_Http::getQuery
   * Yaf_Request_Http::getPost
   * Yaf_Request_Http::getRaw
   * Yaf_Request_Abstract::getServer
   * Yaf_Request_Abstract::getParam


id: Yaf_Request_Http::getFiles
type: function
doc:
<comment>Description:</comment>
  The getFiles purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Http::getPost
type: function
doc:
<comment>Description:</comment>
  检索 POST 变量
  
  检索 POST 变量

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>     变量名
  <info>string</info>  <strong>$default</strong>  如果提供了此参数，当没有找到此变量时，将返回此参数

<comment>Return:</comment>
  <info>mixed</info>  

<comment>See Also:</comment>
   * Yaf_Request_Http::get
   * Yaf_Request_Http::getQuery
   * Yaf_Request_Http::getCookie
   * Yaf_Request_Http::getRaw
   * Yaf_Request_Abstract::getServer
   * Yaf_Request_Abstract::getParam


id: Yaf_Request_Http::getQuery
type: function
doc:
<comment>Description:</comment>
  获取 query 参数
  
  返回 GET 变量

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>     变量名
  <info>string</info>  <strong>$default</strong>  如果提供了此参数，当没有找到此变量时，将返回此参数

<comment>Return:</comment>
  <info>mixed</info>  

<comment>See Also:</comment>
   * Yaf_Request_Http::get
   * Yaf_Request_Http::getPost
   * Yaf_Request_Http::getCookie
   * Yaf_Request_Http::getRaw
   * Yaf_Request_Abstract::getServer
   * Yaf_Request_Abstract::getParam


id: Yaf_Request_Http::getRaw
type: function
doc:
<comment>Description:</comment>
  Retrieve Raw request body
  
  Retrieve Raw request body

<comment>Return:</comment>
  <info>mixed</info>  Return string on success, FALSE on failure.

<comment>See Also:</comment>
   * Yaf_Request_Http::get
   * Yaf_Request_Http::getPost
   * Yaf_Request_Http::getCookie
   * Yaf_Request_Http::getQuery
   * Yaf_Request_Abstract::getServer
   * Yaf_Request_Abstract::getParam


id: Yaf_Request_Http::getRequest
type: function
doc:
<comment>Description:</comment>
  The getRequest purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Http::isXmlHttpRequest
type: function
doc:
<comment>Description:</comment>
  是否为Ajax请求
  
  检查请求是否是 Ajax 请求。  此方法依赖于请求标头：HTTP_X_REQUESTED_WITH，某些 Javascript 库在执行
  Ajax 请求时不会设置此 header
  
  此方法依赖于请求标头：HTTP_X_REQUESTED_WITH，某些 Javascript 库在执行 Ajax 请求时不会设置此 header

<comment>Return:</comment>
  <info>bool</info>  boolean


id: Yaf_Request_Simple::get
type: function
doc:
<comment>Description:</comment>
  The get purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Simple::getCookie
type: function
doc:
<comment>Description:</comment>
  The getCookie purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Simple::getPost
type: function
doc:
<comment>Description:</comment>
  The getPost purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Simple::getQuery
type: function
doc:
<comment>Description:</comment>
  The getQuery purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Request_Simple::isXmlHttpRequest
type: function
doc:
<comment>Description:</comment>
  判断请求是否是 Ajax 请求

<comment>Return:</comment>
  <info>void</info>  <class>Yaf_Request_Simple</class> 始终返回 false

<comment>See Also:</comment>
   * Yaf_Request_Abstract::isXmlHTTPRequest
   * Yaf_Request_Http::isXmlHTTPRequest


id: Yaf_Response_Abstract::__toString
type: function
doc:
<comment>Description:</comment>
  获取字符串形式的所有 body

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_Response_Abstract::appendBody
type: function
doc:
<comment>Description:</comment>
  向响应 body 追加内容
  
  追加内容到已有的内存块

<comment>Param:</comment>
  <info></info>        <strong>$body</strong>  内容字符串
  <info>string</info>  <strong>$key</strong>   响应内容的 key，可以使用 key 设置内容，如果没有指定，然后默认使用
                 Yaf_Response_Abstract::DEFAULT_BODY  此参数自 2.2.0 起引入
                 
                 此参数自 2.2.0 起引入

<comment>Return:</comment>
  <info>bool</info>  bool

<comment>See Also:</comment>
   * <class>Yaf_Config_Ini</class>
   * Yaf_Response_Abstract::getBody
   * Yaf_Response_Abstract::setBody
   * Yaf_Response_Abstract::prependBody
   * Yaf_Response_Abstract::clearBody


id: Yaf_Response_Abstract::clearBody
type: function
doc:
<comment>Description:</comment>
  丢弃所有已存在的响应 body
  
  清除已存在的内容

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  内容 key，如果没有指定，将会清除所有内容。  此参数自 2.2.0 起引入 
                
                此参数自 2.2.0 起引入

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yaf_Response_Abstract::setBody
   * Yaf_Response_Abstract::appendBody
   * Yaf_Response_Abstract::prependBody
   * Yaf_Response_Abstract::getBody


id: Yaf_Response_Abstract::clearHeaders
type: function
doc:
<comment>Description:</comment>
  丢弃所有设置的 header

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_Response_Abstract::getHeader
   * Yaf_Response_Abstract::setHeader


id: Yaf_Response_Abstract::getBody
type: function
doc:
<comment>Description:</comment>
  获取已存在的内容
  
  获取已存在的内容

<comment>Param:</comment>
  <info>string</info>  <strong>$key</strong>  内容 key，如果未指定，然后默认使用 Yaf_Response_Abstract::DEFAULT_BODY。如果传入
                <info>null</info>，所有的内容将会以数组形式被返回。  此参数自 2.2.0 起引入
                
                此参数自 2.2.0 起引入

<comment>Return:</comment>
  <info>mixed</info>  

<comment>See Also:</comment>
   * Yaf_Response_Abstract::setBody
   * Yaf_Response_Abstract::appendBody
   * Yaf_Response_Abstract::prependBody
   * Yaf_Response_Abstract::clearBody


id: Yaf_Response_Abstract::getHeader
type: function
doc:
<comment>Description:</comment>
  The getHeader purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_Response_Abstract::setHeader
   * Yaf_Response_Abstract::cleanHeaders


id: Yaf_Response_Abstract::prependBody
type: function
doc:
<comment>Description:</comment>
  The prependBody purpose
  
  往已有的内容块前插入内容

<comment>Param:</comment>
  <info></info>        <strong>$body</strong>  内容字符串
  <info>string</info>  <strong>$key</strong>   内容 key，可以使用 key 设置内容，如果未指定，然后默认使用
                 Yaf_Response_Abstract::DEFAULT_BODY。  此参数自 2.2.0 起引入
                 
                 此参数自 2.2.0 起引入

<comment>Return:</comment>
  <info>bool</info>  bool

<comment>See Also:</comment>
   * Yaf_Response_Abstract::getBody
   * Yaf_Response_Abstract::setBody
   * Yaf_Response_Abstract::appendBody
   * Yaf_Response_Abstract::clearBody


id: Yaf_Response_Abstract::response
type: function
doc:
<comment>Description:</comment>
  发送响应
  
  发送响应

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_Response_Abstract::setBody
   * Yaf_Response_Abstract::clearBody


id: Yaf_Response_Abstract::setAllHeaders
type: function
doc:
<comment>Description:</comment>
  The setAllHeaders purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Response_Abstract::setBody
type: function
doc:
<comment>Description:</comment>
  设置内容到响应
  
  设置内容到响应

<comment>Param:</comment>
  <info></info>        <strong>$body</strong>  内容字符串
  <info>string</info>  <strong>$key</strong>   内容 key，可以使用 key 设置内容，如果未指定，然后默认使用
                 Yaf_Response_Abstract::DEFAULT_BODY。  此参数自 2.2.0 起引入
                 
                 此参数自 2.2.0 起引入

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yaf_Response_Abstract::getBody
   * Yaf_Response_Abstract::appendBody
   * Yaf_Response_Abstract::prependBody
   * Yaf_Response_Abstract::clearBody


id: Yaf_Response_Abstract::setHeader
type: function
doc:
<comment>Description:</comment>
  设置响应 header
  
  用于发送 HTTP header

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yaf_Response_Abstract::getHeader
   * Yaf_Response_Abstract::cleanHeaders


id: Yaf_Response_Abstract::setRedirect
type: function
doc:
<comment>Description:</comment>
  The setRedirect purpose

<comment>Param:</comment>
  <info>string</info>  <strong>$url</strong>  要跳转到的地址

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Route_Interface
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Route_Interface</class> 是 Yaf 路由协议的标准接口, 它的存在使得开发者可以自定义路由协议


id: Yaf_Route_Interface::assemble
type: function
doc:
<comment>Description:</comment>
  将指定路由规则组合成一个 url
  
  此方法根据参数 info 返回 url，并根据参数 query 向 url 追加查询字符串。
  
  路由应该根据自己的路由规则来实现这个方法，做一个逆向的过程。

<comment>Param:</comment>
  <info>array</info>  <strong>$info</strong>   
  <info>array</info>  <strong>$query</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_Route_Interface::route
type: function
doc:
<comment>Description:</comment>
  路由请求
  
  Yaf_Route_Interface::route 是用户自定义路由唯一需要实现的方法。  自 2.3.0 起，还应该实现另外一个方
  法，参阅 Yaf_Route_Interface::assemble。
  
  自 2.3.0 起，还应该实现另外一个方法，参阅 Yaf_Route_Interface::assemble。
  
  如果此方法返回 <info>true</info>，那么路由过程将会中止。否则，<class>Yaf_Router</class> 将会调用路由栈中的下一个路由来路由请
  求。
  
  此方法通过调用 Yaf_Request_Abstract::setControllerName、Yaf_Request_Abstract::setActionName 和
  Yaf_Request_Abstract::setModuleName 将路由结果设置为参数请求。
  
  这个方法还应该调用 Yaf_Request_Abstract::setRouted 做最后的请求路由。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>  <strong>$request</strong>  <class>Yaf_Request_Abstract</class> 实例。

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Route_Map
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Route_Map</class> 是内置路由，它只是将 URI 端点（位于基础 URI 之后的 URI 部分：参阅
  Yaf_Request_Abstract::setBaseUri）转换为 controller 名或 action 名（取决于传递给
  Yaf_Route_Map::__construct 的参数），遵循以下规则： A =&gt; controller A。 A/B/C =&gt; controller
  A_B_C。 A/B/C/D/E =&gt; controller A_B_C_D_E。
  
  如果指定 Yaf_Route_Map::__construct 的第二个参数，则只有 URI 之前的部分用于路由，URI 之后的部分用
  于路由请求参数（参考 Yaf_Route_Map::__construct 的示例部分）。


id: Yaf_Route_Map::__construct
type: function
doc:
<comment>Description:</comment>
  The __construct purpose

<comment>Param:</comment>
  <info>string</info>  <strong>$controller_prefer</strong>  结果是否应该考虑作为 controller 或 action
  <info>string</info>  <strong>$delimiter</strong>          

<comment>See Also:</comment>
   * Yaf_Router::addRoute
   * <class>Yaf_Route_Static</class>
   * <class>Yaf_Route_Supervar</class>
   * <class>Yaf_Route_Simple</class>
   * <class>Yaf_Route_Regex</class>
   * <class>Yaf_Route_Rewrite</class>


id: Yaf_Route_Map::assemble
type: function
doc:
<comment>Description:</comment>
  组合url
  
  根据指定参数和自定义参数将 map 这个 route 组合成一个 url

<comment>Param:</comment>
  <info>array</info>  <strong>$info</strong>   需要传入一个数组，数组的 key 可以为 :a 或者 :c，:a 表示 action，:c 表示
                 controller。
                 
                 当 map route 初始化时，controller_prefer 为 <info>false</info> 时，这个参数需要传入 :c。当
                 controller_prefer 为 <info>true</info> 时，这个参数需要传入 :a。
  <info>array</info>  <strong>$query</strong>  用户自定义的 query 字符串，将根据此路由规则拼接在url中

<comment>Return:</comment>
  <info>string</info>  成功时返回 <info>string</info>，失败时为 <info>null</info>。


id: Yaf_Route_Map::route
type: function
doc:
<comment>Description:</comment>
  The route purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>  <strong>$request</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Route_Regex::__construct
type: function
doc:
<comment>Description:</comment>
  Yaf_Route_Regex 构造方法

<comment>Param:</comment>
  <info>string</info>  <strong>$match</strong>    完整的正则表达式，用来匹配请求的 uri，如果不能匹配，<class>Yaf_Route_Regex</class> 将返回
                    <info>false</info>。
  <info>array</info>   <strong>$route</strong>    当路由正则匹配成功请求 uri 时，<class>Yaf_Route_Regex</class> 将会用它来决定哪一个 m/c/a 被路
                    由。
                    
                    数组中的 m/c/a 是可选的，如果没有分配特定的值，将路由到默认值。
  <info>array</info>   <strong>$map</strong>      数组，用于为匹配结果中捕获的名称分配名称。
  <info>array</info>   <strong>$verify</strong>   
  <info>string</info>  <strong>$reverse</strong>  字符串，用于组合 url，参阅 Yaf_Route_Regex::assemble。  2.3.0 起引入该参数 
                    
                    2.3.0 起引入该参数

<comment>See Also:</comment>
   * Yaf_Router::addRoute
   * Yaf_Router::addConfig
   * <class>Yaf_Route_Static</class>
   * <class>Yaf_Route_Supervar</class>
   * <class>Yaf_Route_Simple</class>
   * <class>Yaf_Route_Rewrite</class>
   * <class>Yaf_Route_Map</class>


id: Yaf_Route_Regex::assemble
type: function
doc:
<comment>Description:</comment>
  组合 url
  
  根据指定参数和自定义参数将 regex 这个 route 组合成一个 url
  
  在 regex route 使用 assemble 需要在初始化时指定 reverse 参数，否则将不能正常工作

<comment>Param:</comment>
  <info>array</info>  <strong>$info</strong>   需要传入一个数组，数组的 key 可以为 :a、:c、:m，:a 表示 action，:c 表示
                 controller，:m 表示 module。
  <info>array</info>  <strong>$query</strong>  用户自定义的 query 字符串，将根据此路由规则拼接在 url 中

<comment>Return:</comment>
  <info>string|null</info>  成功时返回 <info>string</info>，失败时为 <info>null</info>。


id: Yaf_Route_Regex::route
type: function
doc:
<comment>Description:</comment>
  The route purpose
  
  路由一个传进来的请求。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>  <strong>$request</strong>  

<comment>Return:</comment>
  <info>bool</info>  如果 Yaf_Route_Regex::_construct 的第一个参数给出的模式与请求 uri 匹配，则返回 <info>true</info>，否则返
        回 <info>false</info>。


id: Yaf_Route_Rewrite::__construct
type: function
doc:
<comment>Description:</comment>
  Yaf_Route_Rewrite 构造方法

<comment>Param:</comment>
  <info>string</info>  <strong>$match</strong>   正则表达式，用于匹配请求 uri，如果没有匹配到，<class>Yaf_Route_Rewrite</class> 会返回 <info>false</info>。
                   
                   可以使用 :name 样式来命名要匹配的段，并使用 * 匹配剩余的 URL 段。
  <info>array</info>   <strong>$route</strong>   当匹配模式与请求 uri 匹配时，<class>Yaf_Route_Rewrite</class> 将会用它来决定哪个
                   module/controller/action 作为目标。
                   
                   数组中的 module/controller/action 是可选的，如果没有分配特定的值，将路由到默认
                   值。
  <info>array</info>   <strong>$verify</strong>  

<comment>See Also:</comment>
   * Yaf_Router::addRoute
   * Yaf_Router::addConfig
   * <class>Yaf_Route_Static</class>
   * <class>Yaf_Route_Supervar</class>
   * <class>Yaf_Route_Simple</class>
   * <class>Yaf_Route_Regex</class>
   * <class>Yaf_Route_Map</class>


id: Yaf_Route_Rewrite::assemble
type: function
doc:
<comment>Description:</comment>
  组合 url
  
  根据指定参数和自定义参数将 rewrite 这个 route 组合成一个 url

<comment>Param:</comment>
  <info>array</info>  <strong>$info</strong>   需要传入一个数组，数组中每个 key 必须和初始化 rewrite route 时 $match 参数中的带冒
                 号的参数名一致
  <info>array</info>  <strong>$query</strong>  用户自定义的 query 字符串，将根据此路由规则拼接在 url 中

<comment>Return:</comment>
  <info>string</info>  返回 <info>string</info>。


id: Yaf_Route_Rewrite::route
type: function
doc:
<comment>Description:</comment>
  The route purpose

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>  <strong>$request</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Route_Simple
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Route_Simple</class> 会匹配 query 字符串，然后找到路由信息。
  
  需要做的只是告诉 <class>Yaf_Route_Simple</class>，在 $_GET 中哪个键是 Module，哪个键是 Controller，哪个键是
  Action。
  
  Yaf_Route_Simple::route 始终返回 <info>true</info>，所以把 <class>Yaf_Route_Simple</class> 放在路由栈前面很重要，否则不会调用
  所有其它路由。


id: Yaf_Route_Simple::__construct
type: function
doc:
<comment>Description:</comment>
  Yaf_Route_Simple 构造方法
  
  <class>Yaf_Route_Simple</class> 将从 query 字符串中获得路由信息。这个构造方法的参数会被作为键到 $_GET 中去寻找路
  由信息。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$module_name</strong>      module 信息的键名。
  <info>string</info>  <strong>$controller_name</strong>  controller 信息的键名。
  <info>string</info>  <strong>$action_name</strong>      action 信息的键名。

<comment>Return:</comment>
  <info>unknown</info>  总是返回 <info>true</info>。

<comment>See Also:</comment>
   * Yaf_Route_Supervar::route
   * Yaf_Route_Static::route
   * Yaf_Route_Regex::route
   * Yaf_Route_Rewrite::route
   * Yaf_Route_Map::route


id: Yaf_Route_Simple::assemble
type: function
doc:
<comment>Description:</comment>
  组合url
  
  根据指定参数和自定义参数将simple这个route组合成一个url

<comment>Param:</comment>
  <info>array</info>  <strong>$info</strong>   需要传入一个数组，数组中每个 key 可为 :m、:c、:a，:m 代表 module，:c 代表
                 controller, :a 代表 action
  <info>array</info>  <strong>$query</strong>  用户自定义的 query string，将根据此路由规则拼接在 url 中

<comment>Return:</comment>
  <info>string</info>  返回 <info>string</info>。


id: Yaf_Route_Simple::route
type: function
doc:
<comment>Description:</comment>
  路由请求
  
  参阅 Yaf_Route_Simple::__construct
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>  <strong>$request</strong>  

<comment>Return:</comment>
  <info>bool</info>  始终为 <info>true</info>

<comment>See Also:</comment>
   * Yaf_Route_Supervar::route
   * Yaf_Route_Static::route
   * Yaf_Route_Regex::route
   * Yaf_Route_Rewrite::route
   * Yaf_Route_Map::route


id: Yaf_Route_Static
type: class
doc:
<comment>Description:</comment>
  默认的情况下，<class>Yaf_Router</class> 只将 <class>Yaf_Route_Static</class> 作为默认路由。
  
  <class>Yaf_Route_Static</class> 旨在处理 80% 的需求。
  
  请注意：没有必要实例化 <class>Yaf_Route_Static</class>，也没必要将其加入到 <class>Yaf_Router</class> 的路由栈，因为在 <class>Yaf_Router</class>
  的路由堆栈中始终存在它的实例，并且总是在最后调用。


id: Yaf_Route_Static::assemble
type: function
doc:
<comment>Description:</comment>
  组合 url
  
  根据指定参数和自定义参数将 static 这个 route 组合成一个 url

<comment>Param:</comment>
  <info>array</info>  <strong>$info</strong>   需要传入一个数组，数组中每个 key 可为 :m、:c、:a，:m 代表 module，:c 代表
                 controller, :a 代表 action
  <info>array</info>  <strong>$query</strong>  用户自定义的 query string，将根据此路由规则拼接在 url 中

<comment>Return:</comment>
  <info>string</info>  返回 <info>string</info>。


id: Yaf_Route_Static::match
type: function
doc:
<comment>Description:</comment>
  The match purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$uri</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Route_Static::route
type: function
doc:
<comment>Description:</comment>
  路由请求
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>  <strong>$request</strong>  

<comment>Return:</comment>
  <info>bool</info>  总是返回 <info>true</info>

<comment>See Also:</comment>
   * Yaf_Route_Supervar::route
   * Yaf_Route_Simple::route
   * Yaf_Route_Regex::route
   * Yaf_Route_Rewrite::route
   * Yaf_Route_Map::route


id: Yaf_Route_Supervar::__construct
type: function
doc:
<comment>Description:</comment>
  The __construct purpose
  
  <class>Yaf_Route_Supervar</class> 类似于 <class>Yaf_Route_Static</class>，不同的是 <class>Yaf_Route_Supervar</class> 在 query 字符串中寻找路径
  信息，参数 supervar_name 是键。

<comment>Param:</comment>
  <info>string</info>  <strong>$supervar_name</strong>  键名

<comment>See Also:</comment>
   * Yaf_Router::addRoute
   * Yaf_Router::addConfig
   * <class>Yaf_Route_Static</class>
   * <class>Yaf_Route_Regex</class>
   * <class>Yaf_Route_Simple</class>
   * <class>Yaf_Route_Rewrite</class>
   * <class>Yaf_Route_Map</class>


id: Yaf_Route_Supervar::assemble
type: function
doc:
<comment>Description:</comment>
  组合 url
  
  根据指定参数和自定义参数将 supervar 这个 route 组合成 url

<comment>Param:</comment>
  <info>array</info>  <strong>$info</strong>   需要传入一个数组，数组中每个 key 可为 :m、:c、:a，:m 代表 module，:c 代表
                 controller, :a 代表 action
  <info>array</info>  <strong>$query</strong>  用户自定义的 query string，将根据此路由规则拼接在 url 中

<comment>Return:</comment>
  <info>string</info>  返回 <info>string</info>。


id: Yaf_Route_Supervar::route
type: function
doc:
<comment>Description:</comment>
  The route purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>Yaf_Request_Abstract</info>  <strong>$request</strong>  

<comment>Return:</comment>
  <info>bool</info>  如果在 $_GET 中有键（在 Yaf_Route_Supervar::__construct 中定义），返回 <info>true</info>，否则返回
        <info>false</info>。


id: Yaf_Router
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_Router</class> 是标准的框架路由。路由是获取 URI 端点（位于基本 URI 之后的 URI 部分：参考
  Yaf_Request_Abstract::setBaseUri）并将其分解为参数得到哪个 module、controller 和 action 需要接收请
  求。module、controller、action 和其它参数打包到 <class>Yaf_Request_Abstract</class> 对象中，然后由 <class>Yaf_Dispatcher</class>
  处理。路由只发生一次：最初接到请求和在第一个 controller 分发之前。
   <class>Yaf_Router</class> 是设计来允许使用纯 PHP 结构的类似 mod_rewrite 的功能。它非常松散的基于 Ruby on Rails
  的路由，并且不需要提前知悉 webserver URL 重写的相关知识。它设计为跟单个 Apache mod_rewrite（或其中
  之一个） 规则一起使用： Apache 重写规则 或者（首选）： Apache 重写规则 如果使用 Lighttpd，以下重写
  规则有效： Lighttpd 重写规则 "/index.php?$1", ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0", "" =>
  "/index.php"
  )
  ]]> 如果使用 Nginx，以下重写规则有效： Nginx 重写规则


id: Yaf_Router::addConfig
type: function
doc:
<comment>Description:</comment>
  向 Router 中添加配置文件中定义的路由
  
  将 application.ini 配置中定义的路由规则添加到 <class>Yaf_Router</class> 的路由栈中
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  <class>Yaf_Config_Abstract</class> 实例，包含一个或多个有效的路由配置

<comment>See Also:</comment>
   * Yaf_Router::addRoute
   * <class>Yaf_Route_Static</class>
   * <class>Yaf_Route_Supervar</class>
   * <class>Yaf_Route_Simple</class>
   * <class>Yaf_Route_Regex</class>
   * <class>Yaf_Route_Rewrite</class>
   * <class>Yaf_Route_Map</class>


id: Yaf_Router::addRoute
type: function
doc:
<comment>Description:</comment>
  往 Router 中添加新的路由
  
  默认地，Yaf_Router 使用 <class>Yaf_Route_Static</class> 作为它的默认的路由。可以通过调用此方法往 Router 的堆栈中
  添加新的路由
  
  在路由栈中，新的路由规则会比老的规则先调用，如果新路由规则返回 <info>true</info>，那么路由进程将会结束。否则，
  老的规则将会被调用。
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yaf_Router::addConfig
   * <class>Yaf_Route_Static</class>
   * <class>Yaf_Route_Supervar</class>
   * <class>Yaf_Route_Simple</class>
   * <class>Yaf_Route_Regex</class>
   * <class>Yaf_Route_Rewrite</class>
   * <class>Yaf_Route_Map</class>


id: Yaf_Router::getCurrentRoute
type: function
doc:
<comment>Description:</comment>
  取得当前有效的路由名
  
  获取当前路由进程中正在起作用的路由名  需要在路由进程结束之后调用此方法，在这之前，这个方法会一直返
  回 <info>null</info>。
  
  需要在路由进程结束之后调用此方法，在这之前，这个方法会一直返回 <info>null</info>。

<comment>Return:</comment>
  <info>string</info>  字符串，当前起效的路由的名字。

<comment>See Also:</comment>
   * <class>Yaf_Bootstrap_Abstract</class>
   * <class>Yaf_Plugin_Abstract</class>
   * Yaf_Router::addRoute


id: Yaf_Router::getRoute
type: function
doc:
<comment>Description:</comment>
  通过名称检索路由
  
  通过名字检索路由，参阅 Yaf_Router::getCurrentRoute

<comment>Return:</comment>
  <info>Yaf_Route_Interface</info>  

<comment>See Also:</comment>
   * <class>Yaf_Bootstrap_Abstract</class>
   * <class>Yaf_Plugin_Abstract</class>
   * Yaf_Router::addRoute
   * Yaf_Router::getCurrentRoute


id: Yaf_Router::getRoutes
type: function
doc:
<comment>Description:</comment>
  检索已注册的路由
  
  检索已注册的路由

<comment>Return:</comment>
  <info>mixed</info>  


id: Yaf_Router::route
type: function
doc:
<comment>Description:</comment>
  The route purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_Session::__get
type: function
doc:
<comment>Description:</comment>
  The __get purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::__isset
type: function
doc:
<comment>Description:</comment>
  The __isset purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::__set
type: function
doc:
<comment>Description:</comment>
  The __set purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::__unset
type: function
doc:
<comment>Description:</comment>
  The __unset purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::count
type: function
doc:
<comment>Description:</comment>
  The count purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::current
type: function
doc:
<comment>Description:</comment>
  The current purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::del
type: function
doc:
<comment>Description:</comment>
  The del purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::has
type: function
doc:
<comment>Description:</comment>
  The has purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::key
type: function
doc:
<comment>Description:</comment>
  The key purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::next
type: function
doc:
<comment>Description:</comment>
  The next purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::offsetExists
type: function
doc:
<comment>Description:</comment>
  The offsetExists purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::offsetGet
type: function
doc:
<comment>Description:</comment>
  The offsetGet purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::offsetSet
type: function
doc:
<comment>Description:</comment>
  The offsetSet purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::offsetUnset
type: function
doc:
<comment>Description:</comment>
  The offsetUnset purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::rewind
type: function
doc:
<comment>Description:</comment>
  The rewind purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::start
type: function
doc:
<comment>Description:</comment>
  The start purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_Session::valid
type: function
doc:
<comment>Description:</comment>
  The valid purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_View_Interface
type: class
doc:
<comment>Description:</comment>
  Yaf 为开发人员提供了使用自定义视图而不是内置引擎 <class>Yaf_View_Simple</class> 的能力。有个例子可以解释如何做到
  这一点，参阅 Yaf_Dispatcher::setView。


id: Yaf_View_Interface::assign
type: function
doc:
<comment>Description:</comment>
  为视图引擎分配模板变量
  
  为视图引擎分配变量, 在视图模板中可以直接通过 ${$name} 获取模板变量值
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   
  <info>string</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_View_Interface::display
type: function
doc:
<comment>Description:</comment>
  渲染并输出模板
  
  渲染模板并立即输出结果
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$tpl</strong>       
  <info>array</info>   <strong>$tpl_vars</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_View_Interface::getScriptPath
type: function
doc:
<comment>Description:</comment>
  The getScriptPath purpose
  
  本函数还未编写文档，仅有参数列表。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_View_Interface::render
type: function
doc:
<comment>Description:</comment>
  渲染模板
  
  渲染视图模板并返回结果
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$tpl</strong>       
  <info>array</info>   <strong>$tpl_vars</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_View_Interface::setScriptPath
type: function
doc:
<comment>Description:</comment>
  The setScriptPath purpose
  
  设置模板的基目录，这通常通过 <class>Yaf_Dispatcher</class> 调用。
  
  本函数还未编写文档，仅有参数列表。

<comment>Param:</comment>
  <info>string</info>  <strong>$template_dir</strong>  模板目录的绝对路径，默认的 <class>Yaf_Dispatcher</class> 会设置此目录为
                         application.directory . "/views"。

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_View_Simple
type: class
doc:
<comment>Description:</comment>
  <class>Yaf_View_Simple</class> 这是 Yaf 内建的模板引擎，是个简单而快速的模板引擎，只支持 PHP 脚本模板。


id: Yaf_View_Simple::__construct
type: function
doc:
<comment>Description:</comment>
  Yaf_View_Simple 的构造方法

<comment>Param:</comment>
  <info>string</info>  <strong>$template_dir</strong>  模板的基本路径，Yaf 默认为 APPLICATOIN . "/views"。
  <info>array</info>   <strong>$options</strong>       


id: Yaf_View_Simple::__get
type: function
doc:
<comment>Description:</comment>
  获取视图引擎的一个模板变量值
  
  获取视图引擎的一个模板变量值  从 2.1.11 以后，参数可以为空 
  
  从 2.1.11 以后，参数可以为空

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  分配的变量名
                 
                 如果为空，所有传递的变量都会被返回

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_View_Simple::__isset
type: function
doc:
<comment>Description:</comment>
  The __isset purpose

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  

<comment>Return:</comment>
  <info>void</info>  


id: Yaf_View_Simple::__set
type: function
doc:
<comment>Description:</comment>
  为视图引擎分配一个模板变量
  
  这是一个更简单并且用来替代 Yaf_View_Simple::assign 的方法

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   一个字符串值的名字
  <info>mixed</info>   <strong>$value</strong>  Mixed value.

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yaf_View_Simple::assignRef
   * Yaf_View_Interface::assign


id: Yaf_View_Simple::assign
type: function
doc:
<comment>Description:</comment>
  为视图引擎分配一个模板变量
  
  为视图引擎分配一个模板变量

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   字符串或者数组
                  
                  如果为字符串, 则下一个参数 $value 不能为空
  <info>mixed</info>   <strong>$value</strong>  混合值

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yaf_View_Simple::assignRef
   * Yaf_View_Interface::clear
   * Yaf_View_Simple::__set


id: Yaf_View_Simple::assignRef
type: function
doc:
<comment>Description:</comment>
  The assignRef purpose
  
  不同于 Yaf_View_Simple::assign，这个方法传递一个引用变量给模板引擎。

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>   字符串名，被用来传递值给模板。
  <info>mixed</info>   <strong>$value</strong>  混合值

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yaf_View_Simple::assign
   * Yaf_View_Simple::__set


id: Yaf_View_Simple::clear
type: function
doc:
<comment>Description:</comment>
  清除分配的值
  
  清除分配的变量

<comment>Param:</comment>
  <info>string</info>  <strong>$name</strong>  分配的变量名
                 
                 如果为空，将会清除所有分配的变量

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yaf_View_Simple::assignRef
   * Yaf_View_Interface::assign
   * Yaf_View_Simple::__set


id: Yaf_View_Simple::display
type: function
doc:
<comment>Description:</comment>
  渲染一个视图模板, 并直接输出给请求端
  
  渲染视图模板, 并直接输出给请求端。

<comment>Param:</comment>
  <info>string</info>  <strong>$tpl</strong>       
  <info>array</info>   <strong>$tpl_vars</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yaf_View_Simple::eval
type: function
doc:
<comment>Description:</comment>
  渲染模板
  
  渲染一个字符串模板，然后返回结果。

<comment>Param:</comment>
  <info>string</info>  <strong>$tpl_content</strong>  字符串模板
  <info>array</info>   <strong>$tpl_vars</strong>     

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_View_Simple::render
type: function
doc:
<comment>Description:</comment>
  渲染模板
  
  渲染模板并返回结果

<comment>Param:</comment>
  <info>string</info>  <strong>$tpl</strong>       
  <info>array</info>   <strong>$tpl_vars</strong>  

<comment>Return:</comment>
  <info>string</info>  


id: Yaf_View_Simple::setScriptPath
type: function
doc:
<comment>Description:</comment>
  设置模板的目录

<comment>Param:</comment>
  <info>string</info>  <strong>$template_dir</strong>  

<comment>Return:</comment>
  <info>bool</info>  


id: Yar_Client::__call
type: function
doc:
<comment>Description:</comment>
  调用远程服务
  
  发起一个 RPC 调用, 并且得到返回值. 如果服务端的远程调用抛出异常, 那么本地也会相应的抛出一个
  <class>Yar_Server_Exception</class> 异常。

<comment>Param:</comment>
  <info>string</info>  <strong>$method</strong>      远程服务的名字.
  <info>array</info>   <strong>$parameters</strong>  调用参数.

<comment>Return:</comment>
  <info>void</info>  

<comment>See Also:</comment>
   * Yar_Client::setOpt


id: Yar_Client::__construct
type: function
doc:
<comment>Description:</comment>
  创建一个客户端实例
  
  创建一个 <class>Yar_Client</class> 到一个 <class>Yar_Server</class> 的实例.

<comment>Param:</comment>
  <info>string</info>  <strong>$url</strong>  服务端的 HTTP URL 路径.

<comment>Return:</comment>
  <info>unknown</info>  <class>Yar_Client</class> 实例.

<comment>See Also:</comment>
   * Yar_Client::__call
   * Yar_Client::setOpt


id: Yar_Client::setOpt
type: function
doc:
<comment>Description:</comment>
  设置调用的配置
  
  设置调用远程服务的一些配置，比如超时值、打包类型等。

<comment>Param:</comment>
  <info>int</info>    <strong>$name</strong>   可以是： <info>YAR_OPT_PACKAGER</info>、 <info>YAR_OPT_PERSISTENT</info>（需要服务端支持）、
                 <info>YAR_OPT_TIMEOUT</info>、 <info>YAR_OPT_CONNECT_TIMEOUT</info>、 <info>YAR_OPT_HEADER</info>（自 2.0.4 起）、
                 <info>YAR_OPT_PROXY</info>（自 2.2.0 起）
  <info>mixed</info>  <strong>$value</strong>  

<comment>Return:</comment>
  <info>Yar_Client|false</info>  成功时返回 $this 或者在失败时返回 <info>false</info>。

<comment>See Also:</comment>
   * Yar_Client::__call


id: Yar_Client_Exception::getType
type: function
doc:
<comment>Description:</comment>
  检索异常的类型

<comment>Return:</comment>
  <info>string</info>  返回 <return>"Yar_Exception_Client"</return>。

<comment>See Also:</comment>
   * Yaf_Server_Exception::getType


id: Yar_Concurrent_Client::call
type: function
doc:
<comment>Description:</comment>
  注册一个并行的服务调用
  
  注册一个并行的(异步的)远程服务调用, 不过这个调用请求不会被立即发出, 而是会在接下来调用
  Yar_Concurrent_Client::loop的时候才真正的发送出去.

<comment>Param:</comment>
  <info>string</info>    <strong>$uri</strong>         RPC 服务的 URI(http 或 tcp).
  <info>string</info>    <strong>$method</strong>      调用的服务名字(也就是服务方法名).
  <info>array</info>     <strong>$parameters</strong>  调用的参数.
  <info>callable</info>  <strong>$callback</strong>    回调函数, 在远程服务的返回到达的时候被Yar调用, 从而可以处理返回内容.

<comment>Return:</comment>
  <info>int</info>  唯一 ID， 可用于区分到底是那个调用的返回.

<comment>See Also:</comment>
   * Yar_Concurrent_Client::loop
   * Yar_Concurrent_Client::reset
   * Yar_Server::__construct
   * Yar_Server::handle


id: Yar_Concurrent_Client::loop
type: function
doc:
<comment>Description:</comment>
  发送所有注册的并行调用
  
  发送所有的已经通过 Yar_Concurrent_Client::call 注册的并行调用, 并且等待返回.

<comment>Param:</comment>
  <info>callable</info>  <strong>$callback</strong>        如果这个回掉函数被设置, 那么 Yar 在发送出所有的请求之后立即调用一次这个
                             回掉函数(此时还没有任何请求返回), 调用的时候 $callinfo 参数是 NULL。
                             
                             如果在注册并行调用的时候制定了 callback, 那么那个 callback 有更高的优先
                             级.
  <info>callable</info>  <strong>$error_callback</strong>  错误回掉函数, 如果设置了, 那么 Yar 在出错的时候会调用这个回掉函数.

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yar_Concurrent_Client::call
   * Yar_Concurrent_Client::reset
   * Yar_Server::__construct
   * Yar_Server::handle


id: Yar_Concurrent_Client::reset
type: function
doc:
<comment>Description:</comment>
  Clean all registered calls
  
  Clean all registered calls

<comment>Return:</comment>
  <info>bool</info>  

<comment>See Also:</comment>
   * Yar_Concurrent_Client::call
   * Yar_Concurrent_Client::loop
   * Yar_Server::__construct
   * Yar_Server::handle


id: Yar_Server::__construct
type: function
doc:
<comment>Description:</comment>
  注册 HTTP RPC Server
  
  创建一个 Yar 的 HTTP RPC 服务，参数 $obj 对象的所有公开方法都会被注册为服务函数， 可以被 RPC 调
  用。

<comment>Param:</comment>
  <info>Object</info>  <strong>$obj</strong>  一个对象实例, 这个对象的所有公开方法都会被注册为服务函数.

<comment>Return:</comment>
  <info>unknown</info>  返回一个 <class>Yar_Server</class> 的实例。

<comment>See Also:</comment>
   * Yar_Server::handle


id: Yar_Server::handle
type: function
doc:
<comment>Description:</comment>
  启动HTTP RPC Server
  
  启动服务, 开始接受客户端的调用请求.  来自客户端的调用, 都是通过 POST 请求发送过来的. 如果一个 GET
  请求访问到这个 Server, 那在 yar.expose_info 开启的情况下, 这个服务的 Server Info 信息会被展现.
  
  来自客户端的调用, 都是通过 POST 请求发送过来的. 如果一个 GET 请求访问到这个 Server, 那在
  yar.expose_info 开启的情况下, 这个服务的 Server Info 信息会被展现.

<comment>Return:</comment>
  <info>bool</info>  boolean

<comment>See Also:</comment>
   * Yar_Server::__construct


id: Yar_Server_Exception::getType
type: function
doc:
<comment>Description:</comment>
  检索异常的原始类型
  
  当服务端的服务函数抛出异常的时候, 客户端本地会响应的抛出一个 <class>Yar_Server_Exception</class> 异常. 有一个属
  性, 标明了服务端异常的类型. 这个方法就是获取这个异常类型.

<comment>Return:</comment>
  <info>string</info>  string

<comment>See Also:</comment>
   * 


id: ZEND_ACC_CLASS
type: constant
doc:
<comment>Description:</comment>
  Dummy registered for consistency, the default kind of class entry. Removed as of uopz 5.0.0.


id: ZEND_ADD_INTERFACE
type: constant
doc:
<comment>Description:</comment>
  Invoked upon composure, receives the class the interface is being added to as the first argument,
  and the name of the interface as the second argument


id: ZEND_ADD_TRAIT
type: constant
doc:
<comment>Description:</comment>
  Invoked upon composure, receives the class the trait is being added to as the first argument, and
  the name of the trait as the second argument


id: ZEND_EXIT
type: constant
doc:
<comment>Description:</comment>
  Invoked by exit() and die(), receives no arguments. Return boolean <info>true</info> to exit, <info>false</info> to continue


id: ZEND_FETCH_CLASS
type: constant
doc:
<comment>Description:</comment>
  Invoked upon composure, receives the class the name of the class being fetched as the only
  argument


id: ZEND_INSTANCEOF
type: constant
doc:
<comment>Description:</comment>
  Invoked by instanceof operator, receives the object being verified as the first argument, and the
  name of the class which that object should be as the second argument


id: ZEND_NEW
type: constant
doc:
<comment>Description:</comment>
  Invoked by object construction, receives the class of object being created as the only argument


id: ZEND_THROW
type: constant
doc:
<comment>Description:</comment>
  Invoked by the throw construct, receives the class of exception being thrown as the only argument


id: ZMQ::CTXOPT_MAX_SOCKETS
type: constant
doc:
<comment>Description:</comment>
  The socket limit for this context. Available if compiled against ZeroMQ 3.x or higher (Value: <info>int</info>)


id: ZMQ::ERR_EAGAIN
type: constant
doc:
<comment>Description:</comment>
  Implies that the operation would block when ZMQ::MODE_DONTWAIT is used


id: ZMQ::ERR_EFSM
type: constant
doc:
<comment>Description:</comment>
  The operation can not be executed because the socket is not in correct state


id: ZMQ::MODE_NOBLOCK
type: constant
doc:
<comment>Description:</comment>
  Non-blocking operation. Deprecated, use ZMQ::MODE_DONTWAIT instead


id: ZMQ::SOCKET_STREAM
type: constant
doc:
<comment>Description:</comment>
  Used to send and receive TCP data from a non-ØMQ peer. Available if compiled against ZeroMQ 4.x or
  higher (Value: <info>int</info>).


id: ZMQ::SOCKET_XPUB
type: constant
doc:
<comment>Description:</comment>
  Similar to SOCKET_PUB, except you can receive subscriptions as messages. The subscription message
  is 0 (unsubscribe) or 1 (subscribe) followed by the topic.


id: ZMQ::SOCKET_XSUB
type: constant
doc:
<comment>Description:</comment>
  Similar to SOCKET_SUB, except you can send subscriptions as messages. See SOCKET_XPUB for format.


id: ZMQ::SOCKOPT_BACKLOG
type: constant
doc:
<comment>Description:</comment>
  The SOCKOPT_BACKLOG option shall set the maximum length of the queue of outstanding peer
  connections for the specified socket; this only applies to connection-oriented transports. (Value:
  <info>int</info>)


id: ZMQ::SOCKOPT_DELAY_ATTACH_ON_CONNECT
type: constant
doc:
<comment>Description:</comment>
  Set a CIDR string to match against incoming TCP connections. Available if compiled against ZeroMQ
  3.x or higher (Value: <info>string</info>)


id: ZMQ::SOCKOPT_HWM
type: constant
doc:
<comment>Description:</comment>
  The high water mark for inbound and outbound messages is a hard limit on the maximum number of
  outstanding messages ØMQ shall queue in memory for any single peer that the specified socket is
  communicating with. Setting this option on a socket will only affect connections made after the
  option has been set. On ZeroMQ 3.x this is a wrapper for setting both SNDHWM and RCVHWM. (Value:
  <info>int</info>).


id: ZMQ::SOCKOPT_IPV4ONLY
type: constant
doc:
<comment>Description:</comment>
  Disable IPV6 support if 1. Available if compiled against ZeroMQ 3.x (Value: <info>int</info>)


id: ZMQ::SOCKOPT_IPV6
type: constant
doc:
<comment>Description:</comment>
  Enable IPV6. Available if compiled against ZeroMQ 4.0 or higher (Value: <info>string</info>)


id: ZMQ::SOCKOPT_LAST_ENDPOINT
type: constant
doc:
<comment>Description:</comment>
  Retrieve the last connected endpoint - for use with * wildcard ports. Available if compiled
  against ZeroMQ 3.x or higher (Value: <info>string</info>)


id: ZMQ::SOCKOPT_LINGER
type: constant
doc:
<comment>Description:</comment>
  The linger value of the socket. Specifies how long the socket blocks trying flush messages after
  it has been closed (Value: <info>int</info>)


id: ZMQ::SOCKOPT_MAXMSGSIZE
type: constant
doc:
<comment>Description:</comment>
  Limits the maximum size of the inbound message. Value -1 means no limit. Available if compiled
  against ZeroMQ 3.x or higher (Value: <info>int</info>)


id: ZMQ::SOCKOPT_RATE
type: constant
doc:
<comment>Description:</comment>
  Set rate for multicast sockets (pgm) (Value: <info>int</info> &gt;= 0)


id: ZMQ::SOCKOPT_RCVHWM
type: constant
doc:
<comment>Description:</comment>
  The SOCKOPT_RCVHWM option shall set the high water mark for inbound messages on the specified
  socket. Available if compiled against ZeroMQ 3.x or higher (Value: <info>int</info>).


id: ZMQ::SOCKOPT_RCVTIMEO
type: constant
doc:
<comment>Description:</comment>
  Sets the timeout for receive operation on the socket. Value -1 means no limit. Available if
  compiled against ZeroMQ 3.x or higher (Value: <info>int</info>)


id: ZMQ::SOCKOPT_RECONNECT_IVL
type: constant
doc:
<comment>Description:</comment>
  Set the initial reconnection interval (Value: <info>int</info> &gt;= 0)


id: ZMQ::SOCKOPT_RECONNECT_IVL_MAX
type: constant
doc:
<comment>Description:</comment>
  Set the max reconnection interval (Value: <info>int</info> &gt;= 0)


id: ZMQ::SOCKOPT_RECOVERY_IVL
type: constant
doc:
<comment>Description:</comment>
  Set multicast recovery interval (Value: <info>int</info> &gt;= 0)


id: ZMQ::SOCKOPT_ROUTER_RAW
type: constant
doc:
<comment>Description:</comment>
  Sets the raw mode on the ROUTER, when set to 1. In raw mode when using tcp:// transport the socket
  will read and write without ZeroMQ framing. Available if compiled against ZeroMQ 4.0 or higher
  (Value: <info>string</info>)


id: ZMQ::SOCKOPT_SNDBUF
type: constant
doc:
<comment>Description:</comment>
  Set kernel transmit buffer size (Value: <info>int</info> &gt;= 0)


id: ZMQ::SOCKOPT_SNDHWM
type: constant
doc:
<comment>Description:</comment>
  The ZMQ_SNDHWM option shall set the high water mark for outbound messages on the specified socket.
  Available if compiled against ZeroMQ 3.x or higher (Value: <info>int</info>).


id: ZMQ::SOCKOPT_SNDTIMEO
type: constant
doc:
<comment>Description:</comment>
  Sets the timeout for send operation on the socket. Value -1 means no limit. Available if compiled
  against ZeroMQ 3.x or higher (Value: <info>int</info>)


id: ZMQ::SOCKOPT_SUBSCRIBE
type: constant
doc:
<comment>Description:</comment>
  Establish message filter. Valid for subscriber socket (Value: <info>string</info>)


id: ZMQ::SOCKOPT_TCP_KEEPALIVE_CNT
type: constant
doc:
<comment>Description:</comment>
  Count time for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: <info>int</info>)


id: ZMQ::SOCKOPT_TCP_KEEPALIVE_IDLE
type: constant
doc:
<comment>Description:</comment>
  Idle time for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: <info>int</info>)


id: ZMQ::SOCKOPT_TCP_KEEPALIVE_INTVL
type: constant
doc:
<comment>Description:</comment>
  Interval for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: <info>int</info>)


id: ZMQ::SOCKOPT_TYPE
type: constant
doc:
<comment>Description:</comment>
  Get the socket type. Valid for getSockOpt (Value: <info>int</info>)


id: ZMQ::SOCKOPT_UNSUBSCRIBE
type: constant
doc:
<comment>Description:</comment>
  Remove message filter. Valid for subscriber socket (Value: <info>string</info>)


id: ZMQ::SOCKOPT_XPUB_VERBOSE
type: constant
doc:
<comment>Description:</comment>
  Set the XPUB to receive an application message on each instance of a subscription. Available if
  compiled against ZeroMQ 3.x or higher (Value: <info>string</info>)


