Release notes for PHsPeed version 2.3 [7th October 2022]


Version 2.3 does contain a few new features and bugfixes (see our bug tracker), but the main target was a maintenance release to make the IDE more user friendly, and to allow a better maintenance in the future.


Installer changed to allow modular updates


The first issue we addressed was the fact that we could not create smaller packages for upgrading PHsPeed. There were four packages, and most of them are very large. To upgrade the Xampp release was not that easy as it contains all the modules, and therefore we could not 'just' upgrade a php release easily without a deployment of the full package. 


Separate module for changing configuration


The second issue is that when you already run a MySQL/MariaDB instance, then installing PHsPeed required some fiddling. There was an issue with changing ports, cause by a double configuration (one in the installer and one in the IDE). This has been changed. In the new release PHsPeed will use a different port by default, the setup of ports has been moved into a separate module, that is shared between the installer and IDE.


This module is also able to create a full MySQL/MariaDB dump of the embedded database. 


Although premature (PHP 8.2 and XDebug for PHP 8.2 are both in beta), we have installed PHP 8.2 so that you can verify if your applications have issues under PHP 8.2. Currently the XDebug version is not working well with PHP 8.2, but as we can upgrade the modules separately, we are able to deploy new releases when available. 


Hidden feature: class and function list.


Much overlooked but very handy is the class and function list. It is now opened by default when you start to apply your event code.



Double click on a function to include it into your code.


Hidden feature: TODO

Another feature that is not always understood is the TODO functionality. Using ToDo adds a line of code to your event code to store a todo item. You can retrieve them in the todo list and jump straight to the line where you need to do some more work.



You can apply the owner who has to do something and a category. Initially these are empty and free to fill, but the next time it will show the predefined values.



If you save the code, then PHsPeed is able to locate the todo items:


New application server


The IDE will start an application server that is currently responsible for pre-compiling code while you are developing. The process will be run under the hood and supplies a list of found issues over the full source code, not only the first one found. You don't have to start it up manually any more, it is always performed.




Changed ini file location


Currently you can only run one release version and a beta version, and they share the ini file configuration and Xampp instance. We have had many remarks on this, and as of version 2.3 we have relocated the ini file into the IDE location. This means that you can use a separate install for each version that contains their own instance of Xampp and can function separately of each other. To be able to install version 2.3 this is a requirement as the old installer is not able to handle this. But as of version 2.3 you can decide to upgrade in the current instance or to install in a new folder. As the ini file takes part of the install folder, we will drop support for older version install. Users that do not want to renew their license must now make a full binary copy of the phspeed folder in order to restore if there are issues. 


Enhancements


Working on ...

The Project manager keeps track of the modules that have been worked upon and makes it more easy to locate these by displaying them in a different color:



Menu designer

The menu designer contains a drag/drop function to build your menus faster and more user friendly.



Simple mode


We added a 'simple mode' function to allow a quick start-up of projects. The original form can be retrieved when you click Advanced Mode. The reason was that potential users reported this form as being too intimidating. In the upcoming version we will introduce more functionality to set a simple mode (i.e. on properties).




DBTable

We have added two new events: onGetFilter and onGetFixedFilter. These events will make it more easy to set filters manually. 


example:


function dbtable_1_onSetFixedFilter($app, &$filter)

{

  $filter='cust_id='.getSessionVar('custid','');

}

         

&$filter will contain the original generated filter, that you can modify.    

Migrating issues


There are some changes in the configuration that might have consequences. 


Key fields on grids


Fix for changing page in the DBGrid after update. PHsPeed used the record number of the grid to relocate if required. As the Grid component always starts with 1 on each page this gave issues when you have a lot of pages and needed to find the original one. PHsPeed now works on the key field(s) of the grid. The consequence is that you need to supply this key. The wizard has been updated to support this, but if you have grids that have this issue, you must supply this information (uniqueid) yourself:



Suppress refresh of grids.


The DBGrid is a complex component that can be used in many situations. The use of the properties are based on the documentation that you can find on https://www.bootstrap-table.com. The standard behavior however, might not always be sufficient in your situation. Sometimes another grid on the form is refreshed when you don't want it. This often happen in master-detail relationships. To suppress you can use the mastergrids property to suppress refreshing.



User buttons in DBGrid


The structure of user buttons has been changed to support more button types and properties:



Note the PE: ... notation. If your user buttons do not work (anymore) verify it's action type.