Skip to content

PHP Runtime Environment

Strata is a compiled language that targets the PHP runtime. This allows Strata programs to run on the robust, battle-tested PHP engine while offering modern language features.

System Requirements

Strata is designed to be self-contained:

  • PHP: You do not need to have PHP installed on your system to run Strata. Strata targets an internal PHP 8.4 runtime if no system PHP is found.
  • Composer: Composer is optional. Strata features a built-in autoloader, so you only need Composer if you intend to use external PHP packages.

Execution Model

Native Execution

During development, you can run Strata code directly using the CLI. There is no need for a manual compilation step:

bash
strata run main.str

This command handles compilation and execution in a single pass.

Web Applications

Strata applications fit into the standard request/response lifecycle.

Server & Deployment

Strata provides flexible options for serving web applications, from local development to high-performance production environments.

Development (strata serve)

For local development, use the serve command:

bash
strata serve

By default, this command automatically detects if RoadRunner is installed.

  • If RoadRunner is found: It starts a high-performance development server with hot-reloading.
  • If not found: It falls back to the built-in PHP development server, which is perfect for rapid testing and debugging.

Production with RoadRunner

Strata has first-class support for RoadRunner, a high-performance PHP application server.

Requirements:

  • RoadRunner must be installed in your project.

Usage: The preferred way to run Strata with RoadRunner in production is:

bash
strata serve --production

Alternatively, you can manually build and run the worker. Configure your .rr.yaml to use the compiled worker:

yaml
server:
  command: "php build/rr-worker.php"

http:
  address: 127.0.0.1:8000

Then run RoadRunner directly:

bash
./rr serve

Production (Standard Web Server)

If you are not using RoadRunner, we discourage using strata serve in production. Instead, you should build your application and host it using a standard web server like Nginx or Apache.

  1. Build the project:
    bash
    strata build
  2. Configure your server: Point runs your web server (Nginx/Apache) to the build/ directory (or wherever your entry point is located).

Configuration

For optimal performance in production (especially when not using strata serve), we recommend the following php.ini settings:

OpCache

Enable OpCache to significantly boost performance.

ini
opcache.enable = 1
opcache.enable_cli = 1
opcache.memory_consumption = 128
opcache.max_accelerated_files = 10000
opcache.validate_timestamps = 0 ; Re-validate files only on deployment

JIT (Just-In-Time) Compiler

PHP 8+ includes a JIT compiler that can further improve performance.

ini
opcache.jit_buffer_size = 100M
opcache.jit = 1255 ; Tracing JIT

Next Steps

Branding · License
Released under the MIT License.