Skip to content

Releases: darya/framework

0.5.0

24 Jun 11:57
Compare
Choose a tag to compare

SQLite support, relation attachment and detachment for ORM\Records, delegate Service\Containers, other bug fixes and clean up.

General

  • Improved readme files for each component
  • Cleaned up trailing whitespace and unused imports

Database

  • Implemented SQLite adapter
  • Implemented SQL Server ANSI offset (#49)
  • Fixed a bug when using null in array filter values
  • Fixed use of deprecated MYSQL_ASSOC constant
  • Implemented SQLite support for Database\Factory

ORM

  • Ensured that records loaded through find() and findOrNew() are reinstated (no
    changed attributes)
  • Updated Record::save() to skip saving if no data has changed
  • Implemented Record::attach() and Record::detach(), which are now used for
    magic setters on relation attributes, instead of saving (associating) them
    immediately (#46)
  • Improved belongs-to consistency issues
  • Added JsonSerializable interface to Model
  • Updated Record::call() to be more strict; avoids unexpected behavior such
    as any method call on a Record being valid
  • Implemented Relation::query() support - allows opening relation queries
    from a relation object
  • Fixed an issue when associating has-many relations with empty ID values

Storage

  • Renamed Queryable::execute() and Query\Builder::execute() methods to run() (#51)
  • Improved in-memory storage when updating and deleting
  • Added @mixin Query annotation for Storage\Query\Builder (#53)

Service

  • Fixed strict standards issue with Facade
  • Implemented delegate service containers

0.5.0-beta3

19 Nov 13:50
Compare
Choose a tag to compare
0.5.0-beta3 Pre-release
Pre-release

Database and ORM package improvements and fixes, new Darya\Foundation package for application setup, separate package readmes and HTTP response improvements.

Changelog:

General

  • Added readmes for all packages, apart from Foundation
  • Simplified the framework readme
  • PSR-2 code style for all packages
  • PSR-4 namespacing for all unit tests

Database

  • Implemented a database-specific query object that provides table joins,
    subqueries, GROUP BY and HAVING, which database query translators now
    support
  • Fixed MySQL connection query issues that occurred without the mysqlnd
    extension
  • Added missing error check after preparing MySQL query statement result -
    Catches syntax or logical errors with queries, e.g. 'Subquery returns more
    than 1 row' for column subqueries

Foundation

  • Implemented a new Foundation namespace to house classes that aid the set up
    of an application, including a configuration interface with implementations
    and a handful of default service providers
  • Moved the autoloader to this namespace

HTTP

  • Improved HTTP response
    • Changed response to prepare content as a string when sent instead of when
      the content is set
    • Changed content type to application/json instead of text/json for array
      content
    • Implemented Response::body() for retrieving content as a string
    • Removed old cookie methods
    • Refactored and added more dynamic properties such as status, headers,
      cookies, content and redirected
    • Unit tested

ORM

  • Lots of general improvements and refactoring for Model and Record
  • Implemented querying parameters (filter, order, limit) to relations and eager
    loading in Record
  • Model::data() now returns transformed (non-raw attributes)
    • Raw attribute access has moved to Model::rawData()
    • The toArray(), toJson() and getIterator() methods now utilise the
      transformed attributes
  • Implemented Model::convertToJson() - allows converting plain array of models
    to JSON
  • Added unique() method to Query objects and Query\Builder executor methods

0.5.0-beta2

06 Mar 00:10
Compare
Choose a tag to compare
0.5.0-beta2 Pre-release
Pre-release

ORM, Database and HTTP features and improvements.

Changelog:

ORM

  • Implemented relation constraints
  • Improved model hydration, generation and reinstatement
  • Tested relations and records more thoroughly
  • Implemented dot notation for Records for accessing relation attributes
  • Refactored relation naming and factory method
    • Allows string keys in relation definitions, which call methods on the
      relation when it is built, such as 'foreignKey', 'localKey' and
      'constrain'

Database

  • Refactored abstract SQL translator
  • Fixed null and boolean comparisons for MySQL queries
  • Refactored database/storage results
  • Implemented iterable storage results (includes database results)
  • Updated database connections to accept Query objects for their query()
    methods
  • Database factory throws an exception if it fails, instead of returning null

HTTP

  • Fixed and refactored Request creation, path retrieval and optionally setting
    status code
  • Implemented default value parameters for Request data retrieval methods
  • Implemented content() method for Request objects

0.5.0-beta

13 Nov 10:34
Compare
Choose a tag to compare
0.5.0-beta Pre-release
Pre-release

Database and ORM fixes and improvements, as well as InMemory storage for testing.

Changelog:

  • Updated MySQL connection to work without the mysqlnd driver
  • Implemented InMemory storage for unit tests; includes in-memory filtering,
    sorting, limiting etc
  • Implemented many-to-many eager loading and counting
  • Refactored, tested and fixed ORM relations and other ORM & database classes

0.5.0-alpha2

18 Sep 15:51
Compare
Choose a tag to compare
0.5.0-alpha2 Pre-release
Pre-release

Database fixes, prepared statements, SQL server support, query builder, reverse routing.

Changelog:

  • Implemented SQL Server database connection
  • Implemented prepared queries for MySQL connection
  • Implemented dedicated Query class to represent database queries
  • Implemented Transformer classes for Model attribute access and mutation
  • Implemented fluent query builder with queryable storage and dedicated
    translator classes
  • Implemented reverse routing, or route URL/path generation
  • Added event dispatchment to database connections
  • Extracted handling of Response cookies to a Cookies class
  • Removed escape() methods from database connections.
  • Many database-related bug fixes.

0.5.0-alpha

22 Jul 13:35
Compare
Choose a tag to compare
0.5.0-alpha Pre-release
Pre-release

Introduction of Database, ORM and Storage packages, as well as separating the MVC components into other existing packages. Also sees the implementation of recursive service resolution.

Changelog:

  • Implemented Database, ORM and Storage packages
  • Removed use of global DEBUG constant
  • Made Response content optional
  • Wrote lots of unit tests
  • Removed Interface suffix for many interfaces
  • Implemented recursive service/alias resolution for Container.
  • Renamed abstract View class to AbstractView

0.4.0

25 Feb 19:06
Compare
Choose a tag to compare

API improvements and refactoring.

Changelog:

  • Minor Autoloader improvement
  • Major Router refactoring using method extraction
  • Session objects can now be accessed like arrays, and as a result through
    their parent Request objects in the same way as other request data.
  • Response refactoring, also removed Response::addContent()
  • Removed redundant Tools::processPost()
  • Added ContainerInterface::all() and SessionInterface::has()
  • Container now automatically injects itself to any ContainerAwareInterface
    implementors that it instantiates
  • Simplified Request/Response API

0.4.0-beta

29 Jan 10:00
Compare
Choose a tag to compare
0.4.0-beta Pre-release
Pre-release

v0.4.0-beta brings continued routing and service improvements since v0.4.0-alpha as well as some new features.

The most notable changes include lazy-loaded service definitions for Container, a simple Events system, the removal of Dispatcher, better Router decoupling from controllers and query strings overriding get data in Request objects.

Changelog:

  • Autoloader refactoring
  • Implemented improved Dispatcher functionality in Router, making
    Dispatcher redundant
  • Implemented Events component that can be optionally used for routing hooks
  • Implemented optional usage of service container for resolving route
    controllers and actions
  • Method support for Container::call()
  • Implemented Container::share() to wrap callable service definitions in
    closures that always return the same instance. This enables lazy-loading
    service instances, only instantiating them when resolved from the container.
  • Request objects parse URI queries into get variables and store a path value.
  • Updated main readme to consist primarily of code examples.
  • Controller now implements ContainerAwareInterface, as does Router.
  • Added more thorough Facade exceptions
  • Implemented Application class which registered and boots service providers.

0.4.0-alpha

21 Jan 10:11
Compare
Choose a tag to compare
0.4.0-alpha Pre-release
Pre-release

v0.4.0 is intended to focus on improving routing and service management.

v0.4.0-alpha introduces a lot of API changes preparing for this and also implements reverse routing (URL generation).

Changelog:

  • More expressive routing API
  • Implemented reverse routing using named or arbitrary routes
  • Various non-backwards-compatible API changes, hence the minor version change

0.3.0

13 Jan 19:58
Compare
Choose a tag to compare

v0.3.0 brings improvements to autoloading, models & views and a major feature to the service container. Also written a lot of readme's which are destined to be made more concise and informative.

Changelog:

  • Readme files
  • Autoloader script (autoloader.php)
  • Improvements to Autoloader class
  • Minor and cosmetic improvements to Request and Response classes
  • Response accepts arrays as content to be sent as JSON
  • Implemented Model::toArray(), Model::toJson() and some useful interfaces
  • Implemented SmartyView
  • Routes accept objects as default controllers
  • Respond to a request directly from a Router using Router::respond
  • Implemented service container reflection so function or class constructor
    parameters can be resolved using Container::call or Container::create if
    the type-hinted classes or interfaces are registered with the container