5.11. Miscellaneous

The following shows the Miscellaneous tab of the Project Settings dialog:

Encoder version

This section will allow you to choose which version of the Encoder to use to encode your files. Generally, you will want to keep this on Current (12.0), as this provides the most security of our Encoders. However, if you are encoding for servers which do not have an up-to-date Loader installed, you can use this to encode for older Loaders. 11.0 encoded files require at least a version 11.0.0 Loader installed. 10.2 encoded files require at least a version 10.2.0 Loader installed.

Note: Changing this setting will invalidate your target PHP version setting if there is no encoder available for that PHP version, i.e. Trying to choose an obsolete PHP 5.4 Encoder. In these cases, you will need to choose your target PHP version again.

Target file options

The Encoder will set the modified time on target files to be the same as the modified time on the source files if Apply source file timestamps to target files is checked.

Files can be encoded in either ASCII or binary mode. Binary mode files are slightly smaller in size, however some FTP clients and compression tools may corrupt files by performing CR/LF (linebreak) conversion when transferring between or unpacking files on different operating systems. For this reason it is strongly recommended to select ASCII mode encoding. Please note also that binary mode cannot be used with bundled encoding options such as PHP 7.4 & 8.1.

Target file permissions

The Encoder will apply the same permissions of the source files and folders to the target if Copy from source is selected.

Language options

Files starting with the conventional <?php tag are recognised as PHP files. To also recognise the short open tag <? check the corresponding option.

To display warnings where source code has violated PHP strict language usage guidelines or where it uses deprecated features, check the Strict language usage and/or Deprecated warnings options.

The Encoder can preserve any Documentation Comments such that these are available for reading programmatically. Storage of doc comments can be disabled by checking the Suppress doc comments box.

The Custom Auto Globals field allows you to specify variables that should be treated as globals when used inside a function even if no global keyword has been used. The names should be comma separated, e.g. VAR1,VAR2.

The use of any globals in software should be kept to a minimum for maintainability, reliability and ease of understanding, but if your application uses any custom extensions that define autoglobals that your application relies upon, you can tell the Encoder about them via this field.

Loader options

From time to time new features may be added to the ionCube Loader such as new Loader API functions. If an encoded script requires such features, it may be desirable to specify the minimum version of the Loader compatible with the scripts. For example, enter 10.2.0 in the Minimum Loader version to prevent the encoded files from running with a Loader whose version is less than 10.2.0, or 10.0 to prevent the files from functioning with a Loader version prior to 10.0.

Logging

A log file can be created containing messages generated during the Encoding process. Enter the path to use when saving the log file in the Log file field.

ionCube Package Foundry integration

The ionCube Package Foundry (IPF) is a tool for producing installers for your PHP applications. IPF is a separate tool to the Encoder, and can be integrated with the Encoder GUI. IPF uses a script to configure options such as the name of the product and properties related to deployment, and to enable the integration it is necessary to enter the path to an existing or new .pfs script.

IPF can also be run as a standalone application from the Windows Start Menu, and the IPF documentation should be consulted for more information.