Upgrading Instructions for PRADO Framework v3.1.7 ================================================= !!!IMPORTANT!!! The following upgrading instructions are cumulative. That is, if you want to upgrade from version A to version C and there is version B between A and C, you need to following the instructions for both A and B. Upgrading from v3.1.6 --------------------- Upgrading from v3.1.5 --------------------- Upgrading from v3.1.4 --------------------- - The structure of indices used by TDbCache has been changed by replacing PRIMARY KEY on 'itemkey' with non-unique index and adding an additional index on column 'expire'. Existing tables should be amended or deleted and recreated as follows: CREATE TABLE pradocache (itemkey CHAR(128), value BLOB, expire INT) CREATE INDEX IX_itemkey ON pradocache (itemkey) CREATE INDEX IX_expire ON pradocache (expire) Upgrading from v3.1.3 --------------------- - The prado-cli and prado-cli.bat scripts have been moved into the framework folder of the distribution. Upgrading from v3.1.2 --------------------- - The Translation configuration now also accepts type 'Database' to ease the setup of DB base translation. A valid ConnectionID has to be supplied in the source parameter: Type 'MySQL' can still be used but is deprecated and might be removed in a later release. - TinyMCE (used by THtmlArea component) has been upgraded to version 3.1.0.1. Since the 3.X branch of TinyMCE has a different API than 2.X, you should upgrade your Customs Plugins if you use any. See http://wiki.moxiecode.com/index.php/TinyMCE:Migration_guide for more information. - If you use EnableStateEncryption, the PageState of your current user sessions will no longer be valid, since we optimized the encryption/compression logic. - You can now use # and $ characters in your SQL statements with SQLMap by escaping them as ## and $$. That induces that you can't have consecutive parameters like #param1##param2# or $param1$$param2$ in your statements anymore. Upgrading from v3.1.1 --------------------- - The RELATIONS type declaration in Active Record classes for Many-to-Many using an association table was change from "self::HAS_MANY" to "self::MANY_TO_MANY". E.g. change 'albums' => array(self::HAS_MANY, 'Artist', 'album_artists') to 'albums' => array(self::MANY_TO_MANY, 'Artist', 'album_artists') - Active Record no longer automatically adds/removes/updates related objects. - 'Raw' mode for TCheckboxList and TRadioButtonList (and their active counter parts) now render a surrounding tag to allow client scripts to identify them with the ClientId. You may have to check your CSS. Upgrading from v3.1.0 --------------------- - The RELATIONS declaration in Acive Record classes is changed from "protected static $RELATIONS" to "public static $RELATIONS". - IFeedContentProvider adds a new method: getContentType(). This affects any class implementing this interface. - TUrlMapping now only uses the PATH_INFO part of URL for matching, and the matching is for the whole PATH_INFO. - IUserManager adds two new methods: getUserFromCookie() and saveUserToCookie(). This affects classes that implements this interface and does not extend from TUserManager. - The order of application lifecycles is changed. The loadState and loadStateComplete are moved to right after onBeginRequest. - TDropDownList will be in an unselected state if no initial selection is specified. That is, its SelectedIndex will be -1. Previously, the first item will be considered as selected. Upgrading from v3.1b -------------------- - Comment tag (introduced in v3.1a) is changed to - When TDataList.RepeatLayout is Raw, the items will render
instead of - TActiveRecord finder methods will always return a new object instance (identity mapping was removed). - TActiveRecord::findBySql() will return an object rather than an array - TActiveRecord::findAllBySql() will return an array of objects. Upgrading from v3.1a --------------------- - The signature of TActiveRecord::finder() is changed. This affects all TActiveRecord-descendant classes that override this method. Please use the following code to override the method: public static function finder($className=__CLASS__) { return parent::finder($className); } - The way to specify the table name for an active record class is changed. Previously, it used the static class member '_tablename'. Now it uses class constant as follows: class UserRecord extends TActiveRecord { const TABLE='users_table'; } - Changed TActiveRatingList's javascript control class name from "Prado.WebUI.TRatingList" to "Prado.WebUI.TActiveRatingList". - PRADO's javascript library locations moved from Web/Javascripts/xxx to Web/Javascripts/source/xxx - IPostBackDataHandler added a new method getDataChanged(). Any control implementing this interface will be required to implement this new method. Upgrading from v3.0.x --------------------- - Validators ClientSide.OnSuccess becomes ClientSide.OnValidationSuccess, - Validators ClientSide.OnError becomes ClientSide.OnValidationError, - Validator OnSuccess event becomes OnValidationSuccess. - Validator OnError event becomes OnValidationError. - Content enclosed in is now parsed as normal template content. Previously, it was not parsed and was rendered as is. Upgrading from v3.0.7 --------------------- Upgrading from v3.0.6 --------------------- Upgrading from v3.0.5 --------------------- - TRepeater does not render anymore for empty item template. - constructUrl() now encodes ampersand by default. This should have minimal impact on any existing PRADO applications, though. - TDataGrid does not generate default table styles. This may affect the appearance of existing PRADO applications that use TDataGrid. - If TUrlMapping is used, you need to set the UrlManager property of THttpRequest to the module ID of TUrlMapping. - TJavascriptLogger toggle key is changed from ALT-D to ALT-J. Use the ToggleKey property chanage to a different key. - Javascript Library rico was REMOVED. Upgrading from v3.0.4 --------------------- - TFileUpload::saveAs() will return false instead of raising an exception if it encounters any error. - TDropDownListColumn.DataField is renamed to DataTextField and DataFormatString is renamed to DataTextFormatString. A new property named DataValueField is added. Upgrading from v3.0.3 --------------------- - The 'Static' value is changed to 'Fixed' for the Display property of all validators as well as TValidationSummary, due to conflict with PHP keywords. - The 'List' value is changed to 'SimpleList' for TValidationSummary.DisplayMode. - The 'List' value is changed to 'DropDownList' for TPager.Mode - This change affects existing client-side javascript handlers such as All ClientSide javascript event handlers (such as ClientSide.OnSuccess) are by default wrapped within the function block. function(sender, parameter){ // handler code } You may override this behaviour by providing your own javascript statement block as "javascript:MyHandlerFunction", e.g. ClientSide.OnSuccess="javascript:MyHandlerFunction" or ClientSide.OnSuccess="javascript:function(validator,sender){ ... }" Upgrading from v3.0.2 --------------------- - The minimum PHP version required is raised to 5.1.0 and above. If your server is installed with a lower version of PHP, you will have to upgrade it in order to run PRADO applications. - The signature of TControl::broadcastEvent() is changed from broadcastEvent($sender,TBroadCastEventParameter $param) to broadcastEvent($name,$sender,$param). This makes the call to broadcastEvent() to be consistent with raiseEvent(). Upgrading from v3.0.1 --------------------- - Postback enabled control will always disable default client-side browser action. This is due to google toolbar's interference of event stopping scheme. This modification should only affect user-derived postback javascripts. Upgrading from v3.0.0 --------------------- - URL format is modified when THttpRequest.UrlFormat=='Path'. This modification affects both the URLs generated by calling constructUrl() and the URLs understood by PRADO. In particular, PRADO now understands the following URL format: /index.php/ServiceID,ServiceParam/Name1,Value1/Name2,Value2/... In v3.0.0, the above URL is written as: /index.php/ServiceID/ServiceParam/Name1/Value1/Name2/Value2/... - TControl::onBubbleEvent() has been changed to TControl::bubbleEvent(). This change only affects user controls that override this method. Upgrading from v2.x and v1.x ---------------------------- PRADO v3.x is not backward compatible with v2.x and v1.x.