I have made a ton of improvements to phocoa over the last several months. While I still haven't had time to set up a blog yet for phocoa, I wanted to go ahead and post a list of all of the improvements that I've made:
Legend:
[bugfix] - Bug fix.
[new] - New feature.
[BC-break] - Backwards-compatibility may be broken. Update your code to "the new way" as noted.
[BC-deprecated] - Backwards-compatibility mode supported, but deprecated. Update your code to "the new way" as noted.
Version 0.1.7 - 9/27/2008
- [bugfix] Added htmlspecialchars to WFTextField
- [new] Add onEvent support for WFDynamic objects via setting onEvent on the prototype.
- [new] Add relative date support to all WF*DateFormatters via +++ token. Add relativeDateFormatString for controlling formatting of out-of-bounds format strings in relative mode.
- [BC-deprecated] Removed WFException::raise() which was a bad idea and not really used.
- [new] Add WFDecorator to ControllerLayer. You can now specify a "decorator" or "decorators" as class names of WFDecorator subclasses. The WFDecorator infrastructure makes
it easy to write functions to format things for UI's without having to muddy up your model objects with UI code.
- [BC-deprecated] All Binding Options are now described in WFBinding, not WFBindingSetup. WFBinding options are now documented in WFBinding API docs page. WFBindingSetup::WFBINDINGSETUP_PATTERN_OPTION_NAME,WFBINDINGSETUP_PATTERN_OPTION_VALUE,WFBINDINGSETUP_INSERTS_NULL_PLACEHOLDER,WFBINDINGSETUP_NULL_PLACEHOLDER will be removed in a future version.
- [new] Added WFYAHOO_widget_ColorPicker widget.
- [bugfix] If a bound value is an array, and a formatter is assigned to the binding, PHOCOA will now apply the formatter function to the elements of the array, rather than the array (which resulted in a bungled value). Useful for things like WFJumpSelect::$contentLabels.
- [new] Added a setTarget() method to WFSubmit so you can better control the method called when submitting a form.
- [new] Add minified versions of core JS files and add GZIP encoding to httpd.conf template
- [bugfix] Add support for setting any KVC property in fixtures. Previously only properties backed by the database would work.
- [new] Add PHOCOA_DEBUG mode to turn on advanced debugging for javascript, etc. Just set PHOCOA_DEBUG=1 in your URL and that session will be in debug mode for the remainder of that session. PHOCOA_DEBUG turns on debug reporting and uses non-minified Javascript files.
- [new] Refactor WFRPC to remove YUI dependency. Things are much faster now. Thanks @jwatts!
- [new] Add a magic array operator @first to get the first value from an array.
- [new] Add a WFYAHOO_widget_Uploader to wrap the YUI Uploader widget.
- [new] Complete WFMenuItemBasic; add support for additional parameters in WFYAHOO_widget_Menu. Add support for inline WFMenuItemBasic objects in nestedArrayToMenuTree
Version 0.1.6 - 8/7/2008
- [bugfix] Custom action methods on WFSubmit widgets now work in conjunction with WFForm.isAjax. Previously the "default" action name was always used even if a custom action was specified.
- [bc-break] The "onEvent: <event> do j:" syntax was updated so that it no longer stops the javascript event by default. If you want to stop the javascript event now,
do "this.stopEvent(event);" inside of your "j:" handler.
- [new] Added WFFixture class to handle loading of fixture data via YAML files.
- [bugfix] WFSelect now treats all values as type string, thus fixing a problem where options "" and "0" were not treated as distinct values.
Version 0.1.5 - 7/24/2008
NOTE: need to look up a better list of improvements made since 0.1.4. Not sure how...
- [new] WFSensitiveDataFormatter makes it easy to X-out parts of strings.
- [bugfix] WFSelect now works properly when using options bindings in conjunction with InsertNullPlaceholder.
- [new] Update to FCKeditor 2.6.
- [new] Update to YUI 2.5.2.
Version 0.1.4
- [new] Appcelerator integration.
- [new] Replace spyc integration with Horde/Yaml.
- [new] WFYAHOO_widget_YahooScript for including YAHOO-dependent Javascript on your pages.
- [new] Ability to have the "default page" of a module accept parameters without specifying the page name in the invocation path. Must implement module::allPages() to enable.
- [new] Added WFPostletUpload, which is a widget that offers a Java applet for bulk-uploading files to phocoa apps via drag-n-drop.
- [bugfix] Phocoa now works properly when accessed from behind proxy servers.
- [new] Added readline support to the phocoa shell, if you have it installed in your PHP. This adds history and auto-complete support, although history isn't working reliably.
- [new] Added ability to customize respondsToForms from WFSkinModuleView.
-
Version 0.1.1
- [BC-break] WFYAHOO is now an abstract class. Some applications may have previously instantiated WFYAHOO objects to bootstrap the YUI lib. This will now break.
To update, you should remove any WFYAHOO instances from your application and instead use the {YUI} smarty plugin, which utilizes the new YUILoader support.
- [BC-break] If you are using WFArrayController with USE_ARRAY_INDEXES_AS_ID (#arrayIndexes#), by default your array controllers will break,
due to the new avoidsEmptySelection property, which is true by default. To fix this, either convert your array controllers
to use ids, or set avoidsEmptySelection to false.
- [new] Ajax infrastructure has been added to PHOCOA. Refer to docs for details, as it is a big system.