Generating the PHP application

The 'Generate App' icon

After you have finished working with your project (defining tables, fields and styles) the only thing remaining now is firing your application. Click the 'Generate App' icon. You'll be asked to select (or create) an output folder.

'Specify output folder' dialog

If you've generated code for the open project before, this dialog will, by default, display the same output folder used before. You can select the output folder using the Browse ... button to navigate to any other folder.

By clicking the yellow folder button, you can change the output folder to the parent folder of the one currently specified. Same as project file would set the output folder to the same as the folder containing the AXP project file, and Last used folder would set the output folder to the one you used last (beware! this might contain an app generated by a different project file).

If you choose a folder that already contains previously-generated code, you'll see a window that lists all the files that will be generated. You can specify in this window (shown below) which files to overwrite and which to skip.

'Select files to overwrite' dialog

Finally, a log window (shown below) reports events that happened during file generation: error checking, files overwritten, files skipped, failed files, and instructions for deploying the generated application. You can save the log for future reference if you click the "Save log" button. At this point you are finished with AppGini. The next step is to upload and set up your PHP application.

Log of generated files

Tip: If you want to customize some of the generated files and don't want AppGini to overwrite them if you regenerate your project later, set them as read-only. This is a very easy way of retaining your customized code. AppGini will just report that it couldn't overwrite that file, and will continue generating the other files normally.

For more advanced code management, you should consider using hooks. Hooks allow you to add more functionality and customize your application behavior without loosing your customizations whenever you regenerate the application later.