Skip to content

PHP Frameworks

ExeOutput for PHP is developed to work seamlessly with PHP frameworks. Since these frameworks typically involve numerous PHP includes, ExeOutput for PHP intercepts all files requested by the PHP runtime and makes them available (see Accessing Files in PHP).

However, this interception can slow down your application. To address this, ExeOutput for PHP offers a feature called External Files, which allows you to keep the PHP files that make up the framework outside the application (usually in a "vendor" subdirectory). This ensures that your application remains responsive, even if it requires tens of thousands of files.

If your preferred PHP framework does not function correctly, please refer to the Advice for Getting Started with PHP Applications in ExeOutput for PHP section. For example, if PHP displays "missing file" errors and warnings like "php failed to open stream", you can try marking files in the File Manager (select your files, click File Properties, and enable the option: Unpack the file(s) to virtual memory at startup) or, preferably, keep them external.

Redirect Directory Requests to the Router Script (Homepage)

Some PHP frameworks support pretty URLs, similar to Apache's mod_rewrite in certain cases.

Note

Ensure that you enable the option to redirect all non-file requests to your framework's router index.php script.

Custom Redirection Rules

If you prefer to define your own redirection rules, you can use the "Redirection Rules" feature of ExeOutput for PHP.

Initial Page / Base URL

If your homepage index.php should not be the first URL displayed, you can specify a custom URL for application bootstrap. Refer to Application Startup URL.

Base URLs should start with https://heserver (see Accessing Files in Compiled PHP Applications).

List of PHP Frameworks Tested and Compatible with ExeOutput for PHP

The following PHP frameworks have been successfully tested:

Laravel

To use Laravel with ExeOutput for PHP, you need to configure the "storage" and "bootstrap/cache" folders to remain outside the EXE so that files can be written to them. We also recommend keeping the "laravel" (and "vendor," if applicable) subdirectories outside the EXE.

In ExeOutput for PHP, navigate to the File Manager, select each of the above folders, click Properties, and enable the option: Keep the selected file(s) external and copy them to the "Data" subfolder.

For more details, refer to the External Files section.

CodeIgniter

To use CodeIgniter with ExeOutput for PHP, you need to configure the "application/cache" and "application/logs" folders to remain outside the EXE so that files can be written to them.

In ExeOutput for PHP, navigate to the File Manager, select each of the above folders, click Properties, and enable the option: Keep the selected file(s) external and copy them to the "Data" subfolder.

CakePHP

To use CakePHP with ExeOutput for PHP, you need to configure the "logs" and "tmp" folders to remain outside the EXE so that files can be written to them.

In ExeOutput for PHP, navigate to the File Manager, select each of the above folders, click Properties, and enable the option: Keep the selected file(s) external and copy them to the "Data" subfolder.

Finally, edit www/app/Config/core.php and add the following line:

Configure::write('App.baseUrl', env('SCRIPT_NAME'));

Fat-Free Framework (F3)

No specific instructions are required.

Other Frameworks

This list is not exhaustive: the absence of a framework does not mean that your PHP application based on it will not work when compiled with ExeOutput for PHP.

Accessing Files in Compiled PHP Applications

How Compiled PHP Applications Work