Upgrading Instructions for PRADO Framework v3.1.2
=================================================
!!!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.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.
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.