<< Click to Read >>

Next\Components\Debug\Exception
- Changed the default HTTP Response Code from 200 (OK) to 500 (Internal
Server Error)

Next\Components\Debug\Handler
- The send of our ErrorDocument equivalent was conditioned to whether or
not headers can still be sent, reducing the chances of infinite loops
- Added one more catch() block with suppressed action to complement the
previous addition

Next\DB\Query\Builder
- Extended Builder::select() doc-block to fully qualify all
possibilities of its argument
- Added a resetting method as complement for new Entity Repository (see
below)

Next\DB\Table\AbstractDataGateway
- Removed AbstractDataGateway::init() and invoked __construct() from
parent context as part of auto-initializable feature
- Removed AbstractDataGateway::delete() because the Entity Repositories
requires more to delete records

Next\DB\Table\AbstractTable
- Removed the "not null" condition in AbstractTable::getFields() in
order to have a way to list the valid table columns for UPDATE
Statements executed from Entities Repositories
- Adjusted associated doc-block

Next\DB\Table\Manager
- Table object is now optional, allowing delayed aggregation when in
specific Entities Repositories
- The "not null" condition removed from AbstractTable::getFields() (see
above) was added here in order to not have an empty source for INSERT
Statement
- Manager::rowCount(), Manager::fetch() and Manager::fetchAll() are
"flushed" (see below) after executed.
- Added a "flushing" mechanism in order to not have SQL Query parts
accumulated, resulting in wrong statements. Currently the "flushing"
only invokes Next\Db\Query\Builder::reset() to reset all query parts
- Added Manager::setTable() as counterpart needed for delayed
aggregation of Table Object
- Added manual bridges to Next\DB\Entity\Repositories Collection to
self-inject the Manager object
- Fixed doc-blocks in Manager::fetchAll() and Manager::reset()

Next\Db\Table\Row
- Implemented Next\DB\Table\Table::delete() method removed from
Next\Db\Table\AbstractDataGateway
- Modified Table::update() and Table::delete() to include only the valid
Table columns.
  For Table::update() not all the valid columns are included. The
columns being updated are removed from this list in order to provide a
valid statement

Next\Db\Table\Rowset
- Implemented Next\DB\Table\Table::delete() method removed from
Next\Db\Table\AbstractDataGateway just like Rowset::update(): iterate,
invoke, count and return

Next\DB\Table\TableException
- Added an exception method for Invalid Repositories
- Adjusted the alignment of equal signs (=) in the class constants
definitions

Next\File\Upload\Methods\Post
- Fixed wrongly camel-cased variable name in Post::proccess()
- Adjusted the alignment of equal signs (=) in error messages array

Next\HTTP\Stream\Adapter\Socket
- Added support for reading modes x, x+, x and c+
- Improved constants doc-blocks

Next\HTTP\Stream\Adapter\AdapterException
- Added an exception method for exclusive reading/writing of streams (x
or x+)
- Fixed doc-block typo

Next\HTTP\Stream\Reader
- Removed condition to FALSE in Reader::readLine() because fgets() seems
to consider empty lines as FALSE, almost always throwing the Exception

<< New Features >>

Next\Components\Interfaces\Plugin
- New interface with basic Plugin infrastructure with methods to execute
routines before and after the Plugin is enabled, disabled, modified or
needs to run an ordinary action

Entities Repositories
- Implemented a basic Entity Repository system with three new classes:

Next\DB\Entity\EntityException
- The Exception Class

Next\DB\Entity\Repositories
- A pseudo-Collection of Repositories.
  Currently not a real Collection (as child of
Next\Components\Iterator\Lists) because it requires a better way to find
items in the Collection.
  And although this is a basic feature for Lists::find(), such feature
was not yet implemented.

Next\DB\Entity\Repository
- The base Repository class with basic methods for data retrieval using
the self-injected Table Manager.
  Specific Repositories MUST extends this class, otherwise they will be
rejected by Next\DB\Entity\Repositores Collection

JSON Reader/Writer Wrapper (Next\File\Tools\JSON\Reader,
Next\File\Tools\JSON\Writer, Next\File\Tools\JSON\Descriptor)
- This makes easier reading and writing of JSON files using Stream
Sockets without need of manual implementation.