Skip to content

Releases: clue/framework-x

v0.16.0

05 Mar 14:52
Compare
Choose a tag to compare

We are thrilled to announce the official release of v0.16.0 to the public! 🎉🚀 Additionally, we are making all previous tagged versions available to simplify the upgrade process. In addition to the release of v0.16.0, this update includes all prior tagged releases.

This release includes exciting new features such as improved performance, additional options for access logging, updates to our documentation and nginx + Apache configurations, as well as many more internal improvements to our test suite and integration tests.

  • Feature: Improve performance by skipping AccessLogHandler if it writes to /dev/null.
    (#248 by @clue)

  • Feature: Add optional $path argument for AccessLogHandler.
    (#247 by @clue)

  • Minor documentation improvements and update nginx + Apache configuration.
    (#245 and #251 by @clue)

  • Improve test suite with improved directory structure for integration tests.
    (#250 by @clue)

v0.15.0

05 Mar 14:51
3a48d46
Compare
Choose a tag to compare

Imported release from original tag date 2023-12-07.

  • Feature: Full PHP 8.3 compatibility.
    (#244 by @clue)

  • Feature: Add App::__invoke() method to enable custom integrations.
    (#236 by @clue)

  • Feature: Improve performance by only using FiberHandler for ReactiveHandler.
    (#237 by @clue)

  • Minor documentation improvements.
    (#242 by @yadaiio)

v0.14.0

05 Mar 14:51
277e9a5
Compare
Choose a tag to compare

Imported release from original tag date 2023-07-31.

  • Feature: Improve Promise v3 support and use Promise v3 template types.
    (#233 and #235 by @clue)

  • Feature: Improve handling OPTIONS * requests.
    (#226 by @clue)

  • Refactor logging into new LogStreamHandler and reactive server logic into new ReactiveHandler.
    (#222 and #224 by @clue)

  • Improve test suite and ensure 100% code coverage.
    (#217, #221, #225 and #228 by @clue)

v0.13.0

05 Mar 14:51
2ce0b5d
Compare
Choose a tag to compare

Imported release from original tag date 2023-02-22.

  • Feature: Forward compatibility with upcoming Promise v3.
    (#188 by @clue)

  • Feature: Full PHP 8.2 compatibility.
    (#194 and #207 by @clue)

  • Feature: Load environment variables from $_ENV, $_SERVER and getenv().
    (#205 by @clue)

  • Feature: Update to support Content-Length response header on HEAD requests.
    (#186 by @clue)

  • Feature / Fix: Consistent handling for HTTP responses with multiple header values (PHP SAPI).
    (#214 by @pfk84)

  • Fix: Respect explicit response status code when Location response header is given (PHP SAPI).
    (#191 by @jkrzefski)

  • Minor documentation improvements.
    (#189 by @clue)

  • Add PHPStan to test environment on level max and improve type definitions.
    (#200, #201 and #204 by @clue)

  • Improve test suite and report failed assertions.
    (#199 by @clue and #208 by @SimonFrings)

v0.12.0

05 Mar 14:50
857b354
Compare
Choose a tag to compare

Imported release from original tag date 2022-08-03.

  • Feature: Support loading environment variables from DI container configuration.
    (#184 by @clue)

  • Feature: Support typed container variables for container factory functions.
    (#178, #179 and #180 by @clue)

  • Feature: Support nullable and null arguments and default values for DI container configuration.
    (#181 and #183 by @clue)

  • Feature: Support untyped and mixed arguments for container factory.
    (#182 by @clue)

v0.11.0

05 Mar 14:50
440cf7e
Compare
Choose a tag to compare

Imported release from original tag date 2022-07-26.

  • Feature: Make AccessLogHandler and ErrorHandler part of public API.
    (#173 and #174 by @clue)

    <?php
    
    require __DIR__ . '/../vendor/autoload.php';
    
    $app = new FrameworkX\App(
        new FrameworkX\AccessLogHandler(),
        new FrameworkX\ErrorHandler()
    );
    
    // Register routes here, see routing…
    
    $app->run();
  • Feature: Support loading AccessLogHandler and ErrorHandler from Container.
    (#175 by @clue)

  • Feature: Read $remote_addr attribute for AccessLogHandler (trusted proxies).
    (#177 by @clue)

  • Internal refactoring to move all handlers to Io namespace.
    (#176 by @clue)

  • Update test suite to remove deprecated utf8_decode() (PHP 8.2 preparation).
    (#171 by @SimonFrings)

v0.10.0

05 Mar 14:50
de56bde
Compare
Choose a tag to compare

Imported release from original tag date 2022-07-14.

  • Feature: Built-in support for fibers on PHP 8.1+ with stable reactphp/async.
    (#168 by @clue)

    $app->get('/book/{isbn}', function (Psr\Http\Message\ServerRequestInterface $request) use ($db) {
        $isbn = $request->getAttribute('isbn');
        $result = await($db->query(
           'SELECT title FROM book WHERE isbn = ?',
           [$isbn]
        ));
    
        assert($result instanceof React\MySQL\QueryResult);
        $data = $result->resultRows[0]['title'];
    
        return React\Http\Message\Response::plaintext(
            $data
        );
    });
  • Feature: Support PSR-11 container interface by using DI container as adapter.
    (#163 by @clue)

  • Minor documentation improvements.
    (#158 by @clue and #160 by @SimonFrings)

v0.9.0

05 Mar 14:50
440d40d
Compare
Choose a tag to compare

Imported release from original tag date 2022-05-13.

v0.8.0

05 Mar 14:50
c8a4cdf
Compare
Choose a tag to compare

Imported release from original tag date 2022-03-07.

  • Feature: Automatically start new fiber for each request on PHP 8.1+.
    (#117 by @clue)

  • Feature: Add fiber compatibility mode for PHP < 8.1.
    (#128 by @clue)

  • Improve documentation and update installation instructions for react/async.
    (#116 and #126 by @clue and #124, #125 and #127 by @SimonFrings)

  • Improve fiber tests to avoid now unneeded await() calls.
    (#118 by @clue)

v0.7.0

05 Mar 14:49
21f612e
Compare
Choose a tag to compare

Imported release from original tag date 2022-02-05.

  • Feature: Update to use HTTP status code constants and JSON/HTML response helpers.
    (#114 by @clue)

    $app->get('/users/{name}', function (Psr\Http\Message\ServerRequestInterface $request) {
        return React\Http\Message\Response::plaintext(
            "Hello " . $request->getAttribute('name') . "!\n"
        );
    });
  • Feature / Fix: Update to improve protocol handling for HTTP responses with no body.
    (#113 by @clue)

  • Minor documentation improvements.
    (#112 by @SimonFrings and #115 by @netcarver)