Release Notes (readme) for RadPHP XE2

By: Tim DelChiaro

Abstract: This is the updated version of the readme.html file that ships with RadPHP XE2 and Embarcadero RAD Studio XE2

    RadPHP™ XE2: Release Notes

This file contains important supplementary information that may not appear in the main product documentation. Embarcadero recommends that you read this file in its entirety.

For information about installation, deployment, and licensing issues, see the Install, Deploy, and License files located, by default, at C:\Program Files\Embarcadero\RadPHP\4.0\Help .

    Overview of RadPHP

The RadPHP development suite allows you to work on the following type of projects:

  • PHP services: non-visual, using datamodules and Web Services - business rules you publish using SOAP. For an example, see the Web Service project under C:\Users\<username>\Documents\RadPHP\Demos
  • PHP-only code: Use RadPHP as a source code editor (the traditional way of working with PHP)
  • Template Engine: Develop HTML templates and integrate components into those templates to add live content. For an example, see the Templates project under C:\Users\<username>\Documents\RadPHP\Demos
  • HTML interfaces: Use HTML controls like Button and Label to develop lightweight HTML interfaces. This allows a user to take advantage of CSS
  • Rich JavaScript-AJAX interfaces: Use controls like DBGrid, MainMenu, and UpDown to create a rich interface which is designed to be "loaded once". This would use AJAX to post/get data from the server

    Properties and Events in RadPHP

In the RadPHP Component Library (RPCL), php magic methods (__get() and __set()) are used to emulate Properties and Events.

The following table describes the naming convention used in both source and documentation:

Method Name Defines How it's used in the Object Inspector and Code Editor
readPublicProperty A public property A public property named "PublicProperty" with the help attached to the method "readPublicProperty()"
getPublishedProperty A published property A published property named "PublishedProperty" with the help attached to the method getPublishedProperty()"
readOnPublicEvent A public event A public event named "OnPublicEvent" with the help attached to the method "readOnPublicEvent()"
getOnPublishedEvent A published event A published event named "OnPublishedEvent" with the help attached to the method "getOnPublishedEvent()"
readjsOnPublicEvent A public JavaScript event A public JavaScript event named "OnPublicEvent" with the help attached to the method "readjsOnPublicEvent()"
getjsOnPublishedEvent A published JavaScript event A published JavaScript event named "OnPublishedEvent" with the help attached to the method "getjsOnPublishedEvent()"

For example, the Label->Caption property is the method Label->getCaption() in code.

Use the F1 key to find help on a property, event or method in the Object Inspector.

    Upgrading Your Trial Version to a Fully-licensed Product

Use the following steps to upgrade a trial version of RadPHP:

  1. Exit out of the trial version of the product if it is opened.
  2. Update your license using the Embarcadero Product Registration wizard.
  • If your trial has expired, the wizard appears when you start RadPHP. Enter your new serial number and register your product.
  • If your trial has not expired, you need to add the serial number using the License Manager:
    1. Run LicenseManager.exe (located by default at C:\Program Files\Embarcadero\RadPHP\4.0\bin\LicenseManager.exe).
    2. Select Serial | Add.
    3. Enter your new serial number and click OK.
    4. Verify that your new serial number is listed under the "Unregistered serial numbers" node. If your number is not listed, exit the License Manager, verify the serial number, and repeat step 1-3.
    5. Highlight your new serial number in the License Manager and select Serial | Register.
    6. When the Product Registration Wizard appears, register your product.

    Viewing Remaining Days on Trial

  1. Open the license manager located by default at C:\Program Files\Embarcadero\RadPHP\4.0\bin.
  2. Expand the left side of the tree and click on the RadPHP entry. See the "Remaining days" in the right pane.

When your trial expires, the Registration Wizard will appear when you start the product and you will be prompted to enter a purchased full product serial number.

    General Notes

Why is the Designer slower than Delphi XE2?

In Delphi XE2, the designer is faster because the controls are native Win32 controls. In RadPHP, the components are PHP components which have code that must be executed to be updated in the designer.

We expect to improve the speed in future updates and releases. For this release, the assumption is that you are using Web components that can mix a lot of Web technologies, and you are getting the same results in the Designer as if you were running in a browser.

Mixing Controls from Different Libraries on a Form

Some of the libraries are not compatible with each other on the same form. This is because browser resources are shared between the same components resulting in a conflict. Generally speaking, DWidget descendants may have problems with QWidget descendants, for example, a GraphicMainMenu and a PageControl.

MainMenu properties removed

Starting from Update 2 of Delphi for PHP 2.0, some MainMenu properties have been removed, resulting in errors when trying to run applications designed with previous versions. To rectify the problem, open your form with RadPHP, trigger the Modified status (e.g. a slight movement of a component), then save the form.

ListView published property removed

Starting from Delphi for PHP 2.0, the Items property of the ListView component is no longer published, thus it will not appear on the Object Inspector. There is no editor for editing this property at design time. It does not make sense to publish it to the Object Inspector.

Location of InterBase Data Files for Sample Applications

When running the included samples that require the InterBase employee.gdb database, you must make sure the data access components are pointed to the correct location of the InterBase Data directory. Please refer to install.htm if yoiu did not install InterBase 2009 Developer Edition. If you did install InterBase, the data files are located, by default, in C:\CodeGear\InterBase\examples\database.

Creating Master-Detail Applications

See the MasterDetail sample in C:\Users\<username>\Documents\RadPHP\Demos\Data Aware\MasterDetail to understand how a master-detail application is created. Note that the UseAjax property of the MasterDetailsample form needs to be set to true in order to have the Detail table updated/refreshed.

Invoking Code Templates

Users of other Delphi and C++Builder products may be accustomed to Code Templates appearing automatically in the code editor when typing words such as "for" followed by a space. In RadPHP you must press Ctrl+J to pop up the list of code templates.


JavaScript is a language that allows you to write software to be executed on the client's browser. The problem with JavaScript is that each browser vendor introduces its own modifications of the JavaScript language, and that leads to incompatibilities. Be aware that you must verify that your JavaScript code will work on the browsers you want to target.

Also note that in RadPHP, breakpoints and other debug support are not available for JavaScript. While the IDE does not prevent you from setting the breakpoint, any breakpoint in JavaScript block will not be triggered.

qooxdoo components

The old qooxdoo components will be deprecated in upcoming updates of the RPCL. We encourage you to update to new ones which are located in a new categories on the tool palette. The new ones uses the latest qooxdoo version available today. Please note that the old and new components do not mix, as the libraries will collide.

jQuery version collision

Some of the new components use a newer version of jQuery. Mixing these components with old ones can lead multiple versions of jQuery being included in your script, thus causing a collision. We are working on a mechanism to prevent this from happening. We expected to have it in the next update of the RPCL.

Write permissions

You must have write permission on the folder where the forms are located, as the IDE needs to write there in order to render components.

Drag and Drop on Templated Forms

Drag and drop of components onto templated forms is not supported at this time. Normal click and drop or double click work as expected.

Extract Superclass

RadPHP does not support the Extract Superclass refactoring across multiple files.

Modifying Breakpoints’ Target File

If you change the target file of a breakpoint within the breakpoint property, that change is not actually reflected in code. User will have to delete the unwanted breakpoint in the first file and add a new breakpoint in the desired location in the new file.

Table name in SQL Window on Windows XP

On Windows XP, when you drag and drop a table onto the SQL Window, the resulting table object does not display the name of the table. This can cause confusion if you drag and drop multiple tables at once.

Debugging with multi-byte strings

There is a known issue with the debugger regarding watching values of variables and properties that contain multi-byte strings (e.g. Japanese string). An update will be provided as soon as we resolve the issue with the third-party developer.

Zend Framework Google components

The Zend Framework Google components will need you to enable the openssl extension in PHP in order to make them work.

Zend Framework Components and Xammp

Xampp includes a different version of Zend Framework than the one we are using, so this will cause problems, you will need to change the server include_path in order to let RPCL find the right Zend Framework.

Mobile Applications

Mobile components are intented to work only on a mobile application, that is, over an MPage design surface, otherwise, will cause undesirable results. Standard components added to a mobile application sometimes don't render as shown on the IDE. Events for mobile components are bind using jQuery, and are loaded at the creation of the page instead on the ready event.

PhoneGap, XCode and Eclipse

Phonegap version included is 1.0.0. On XCode, you have to make sure you installed the correct phonegap version in order to compile the project developed by the Wizard for PhoneGap. If you are using Eclipse for Android, the project created by the Wizard for Phonegap can be imported into Eclipse. Make sure you have the Android SDK properly installed.

    Apache, PHP, IIS

RadPHP copies its own set of Apache 2 and PHP 5 files to your hard drive, but this *DOES NOT* affect any existing installations of these programs. If you already have Apache and PHP setup on your machine, any configuration setup by those installation remains unchanged. The files included with RadPHP are not *INSTALLED* on your machine, they are simply copied and used when needed.

You can use IIS to run your applications. To do this, just save your project in a published folder of IIS (for example c:\inetpub\wwwroot) and use your browser to run your .php applications. Debug might work, but it is not supported at this time.

    Viewing Help

The RadPHP Help menu and the IDE Start page contain links to IDE Help Contents, RPCL components, and the PHP Manual.

The IDE Help Contents contain the main RadPHP help topics and are grouped by topic types:

  • Conceptual Overviews: The conceptual overviews provide information about product architecture, components, and tools that simplify development.
  • Procedures (How-To): The how-to procedures provide step-by-step instructions. All the procedures are listed under Procedures in the Content pane of the Help window. Additionally, most of the conceptual overviews provide links to the pertinent procedures.
  • Reference Topics: The reference topics provides detailed information on subjects such as general reference, the RCPL language, and the IDE dialog boxes and wizards. All of the reference topics are located under Reference in the Content pane of the Help window.
  • Context-sensitive Help: Throughout the IDE, help is available by clicking on a Help button in a dialog box or on a wizard page. API help is available by pressing F1 on a selected element in the Code Editor, or a selected component on the Form Designer or Tool Palette

In addition, code help is available in the Code Editor by pressing Ctrl+Space at the cursor location to open the Code Insight pop-up window.

    Samples and Demos

  1. Samples are available in C:\Users\public\Documents\RadPHP\Demos\.
  2. Flash Demos, tutorials, and white papers are available on the Embarcadero RadPHP Developer Network website at

    Contacting Support

Embarcadero Developer Support provides support for software development teams for thousands of customers worldwide. For access to support services including frequently asked questions, opening a support case, and user supported technical newsgroups, visit

    Product Updates

To download any available updates to the RadPHP development environment, visit Get the latest RPCL updates from the open source project site at

Copyright (c) 2011 Embarcadero Technologies, Inc. All rights reserved.

Server Response from: ETNASC03