Releases: ghousseyn/phiber
Bug fixes
v1.0.4: Merge pull request #71 from ghousseyn/core-35
Install to subfolders
Merge pull request #61 from ghousseyn/beta Beta
Beta
Beta
Beta
v0.9.9: Merge pull request #57 from ghousseyn/alpha
v0.9.8b: Merge pull request #55 from ghousseyn/alpha
Fixed Notice on array key when not set on mysql.php
Beta RC 3
Beta RC 2
Change log
1 - Features:
- ORM
--- Better Relationships detection (1:1, 1:n, n:1)
--- Support for PostgreSQL added
--- Transactions support added
--- Sub queries support added
--- Automatic/manual aliasing added
--- OOSQL Query Builder now supports IN and Between clauses
--- Save related fields after a SELECT with oosql::save(true)
--- Update record after insert on rows with Identity possible without a SELECT
- Events
--- Trigger and listen to events from anywhere (no need to implement or extend)
--- Attach Closures to events
--- Register instances (objects) or class names (instantiate on event)
--- Attach Controller, Plugin or a Model directly with $this->attach(string $eventname)
--- New option to specify the name of the method that should be executed on event (Defaults to "update")
--- Specify a hash to be used to locate an object on event (necessary for Closures if you plan to deattach or re-attach later)
- Collection
--- Collection::addBulk() added to add big arrays in one go (improves speed on big resultsets)
--- Collection::toArray() added to return a collection's content as a native array
--- Collection::toJSON() added to return a collection's content as JSON encoded string
--- Collection::removeWhere() returns remove items now
- View
--- Disable/Enable partial views and layout from within controllers, plugins and models added
--- Set View (partial views) and layout files dynamically
--- Added T_() function to output escaped content directly on views
--- IoC on View component (view::showtime() no longer called from the main run method)
2 - Enhancements
- Core
--- New start script to register libraries, pre-boot actions and on boot events
--- Closure based routes can pass the execution to a default dispatch by returning true
--- Phiber class is a singleton now to keep state and allow for performance gain
--- Enhanced autoloading by better and faster path assembling (replaced for loop with an implode)
--- wire::hashObject() returns a unique hash for the class called in (no spl_object_hash used)
- ORM
--- OOSQL object is shared now
--- Prepared statements are kept against a hash of their respective query (use one prepared statement throughtout the request life)
--- Due to caching of prepared queries bulk insert and update now leverages prepared statements and gained more speed
--- Resultsets are passed to a Collection in one go rather than a loop using Collection::addBulk() (see features above)
--- Inserts return a hydrated object of the inserted row with its identity field injected using lastID (works with PostgreSQL too)
- Events
--- Better performance with fatser eventfull::notify, eventfull::attach and eventfull::detach using the in-memory direct access of observers array (no serialization) and the ability to register class names instead of heavy objects
--- Use of Closures to listen for events
--- New built-in events from Phiber (phiber.boot, phiber.dispatch, phiber.shutdown)
--- Easier object attachements from within controllers, plugins and models