Project release history
- Convertion: Handle all types of associations
- API: Add property generation
- Documentation: New API section
- Table: New delete method; filter in count method
- Iterator: Rename PorteList to PorteIterator
- Position: New method "setPosition" (int, "first" or "last)
- Record: Lazy loading of records; all dynamic methods using model method mechanism
- Types: Type "date" renamed "timestamp"; new type "year", "date", "time"; boolean stored as tinyint
- GIS: Related code moved to new plugin
- Dojo Store: Add label support; object properties encoded as json
- Utils: Auto creation of database of not exists
- Model: New option "extended" to method getProperties
- Record: Refactoring of method "toArray", now return all the keys if not an association and not lazy loaded
- Associations: Use model method functionnalities instead of events
- Model: New method "getMethods" which list all the method available to a type of record
- Json: New plugin "Json"
- Associations: New methods "setRecord" and "setRecords" in many-to-many associations with join strategy
- Connection: Set a default date timezone if one is not available by the system
- Model: new functionnalities to register, retrieve and call methods
- Records: new type "double"
- Assocations: Improved one-to-one assocation: model is now complete, get and set methods tested on both sides
- Validation: New property url to validate correct url
- Events: Now use valid php callback
- Records: Introduce new plugin "Temporal" to add creation and modification date automatically
- Records: New method isDirty to check wether a record has recieved changes or not
- Assocations: Improved one-to-many support
- DojoStore: Introduce new plugin PorteDojoStore which help converting a list of record into a Dojo data store format
- Position: Plugin "order" is now renamed "position"
- General: "Porte.php" is renamed "porte.php"
- General: Multi database support in a same connection
- General: When applicable, methods now return the current object
- Record & List: New options "depth", "by_type" and "by_property", default configuration
available in model->table[to_array]
- Record: Remove method $record->execute in favor of $record->connection->execute
- Model: Redesign property configuration access
- Associations: Simplified configuration and improved documentation
- List: Add methods "toArray" and "toJson", get methods return an array of results, others
methods than get propagate on stored records
- Documentation: new website
- PorteTable: move table related methods from "PorteRecord" to "PorteTable"
- PorteIterator: list of returned records are now instances of PorteIterator instead of arrays
- Refactoring: Introduce new classes "PorteConfig", "PorteConnection", "PorteModel", "PorteEvents", "PorteModel", "PorteHierarchy", "PorteOrder",
"PorteRecordEvents", "PorteTable"
- Events: introducing static global events, arguments now always passed by reference
- Order: option "order_by" in method "find" now honors the ordering of records if not set, many bug fixes
- Record: move all method prefixed by order and table (use the property way instead, eg "$record->tableUpdate()" is now "$record->table->update()")
- Model: remove the enrich method and introduce the model property
- Events: rename events keys (eg, events call from records are now prefixed by the keyword "record_")
- Introduction of the static events functionnalities
- Hierarchical functionnalities implemented using the "nested set model"
- Fix issue to prevent the attempt of saving transient values
- Initial code to implement the one-to-one relationship
- New "tableFields" method
- New "include" option to the "toArray" method
- The "toArray" no return an array with the "attributes" and "associations" arrays merged into one
- Option "return_query" used in method "find" and its related method is renamed "return_sql"
- Method PorteUtils::type now return an array with keys success (bool) and value
- Validation: remove class ValidationEntity and use UserEntity instead, add properties
- Order: introducing two new methods "orderPrevious" and "orderNext"
- First usage of PorteException
- Handle default field values
- Now throw exception while calling non-existing method
- So many bugs we can't count them
- Types are now correctly handled
- Table name now default to pluralize version of class name
- Many to many relations can now be applied to a same table
- Introduction of boolean type in meta_fields
- Introduction of date type in meta_fields (map to timestamp)
- Rename of property 'not_null' to 'required' in meta_fields
- Add count method
- Introduction of getPkField and getPkValue functions
- Test does not throw any warning
- Initial development of gis functionnalities
- Enhancement to has_many associations (add multiple associations)
- Enhancement to has_many associations when field type is transient (add, toArray and fromArray methods where not implemented)
- Documentation relative to associations
Oct 18, 2007
- Get/set properties
- Associations: many-to-many and one-to-many
- Table methods