FAQ

What is this package?

It is the Fast Forward metapackage. It installs the main ecosystem libraries and provides one local bootstrap class, FastForward\Framework\ServiceProvider\FrameworkServiceProvider .

Is this a full-stack application skeleton?

No. It gives you the package set and the framework service provider, but it does not generate a project structure, router, console kernel, or deployment setup for you.

Which PHP version is required?

This repository currently requires PHP ^8.3 .

How do I install it?

Run:

composer require fast-forward/framework

What does FrameworkServiceProvider register automatically?

Today it registers the Fast Forward HTTP and event-dispatcher stacks by aggregating FastForward\Http\ServiceProvider\HttpServiceProvider and FastForward\EventDispatcher\ServiceProvider\EventDispatcherServiceProvider .

Are all installed packages automatically available from the container?

No. fast-forward/config , fast-forward/defer , fast-forward/fork , and fast-forward/iterators and fast-forward/enum are installed, but they are not automatically registered in the container by FrameworkServiceProvider .

How do I build the container?

Use the helper function from fast-forward/container :

use FastForward\Framework\ServiceProvider\FrameworkServiceProvider;

use function FastForward\Container\container;

$container = container(FrameworkServiceProvider::class);

How do I access the current request?

Resolve Psr\Http\Message\ServerRequestInterface from the container. The downstream HTTP factory provider builds it from PHP globals.

How do I create JSON, HTML, text, or redirect responses?

Resolve FastForward\Http\Message\Factory\ResponseFactoryInterface from the container and use its convenience methods such as createResponseFromPayload() , createResponseFromHtml() , createResponseFromText() , createResponseRedirect() , and createResponseNoContent() .

How do I dispatch events?

Resolve Psr\EventDispatcher\EventDispatcherInterface or Symfony\Contracts\EventDispatcher\EventDispatcherInterface from the container and call dispatch($event) .

How do I register listeners?

Pass a config object into container() and place your listeners under the Psr\EventDispatcher\ListenerProviderInterface key. The event-dispatcher package classifies the configured entries automatically.

Do I need extra dependencies for Symfony subscribers or #[AsEventListener] ?

If your application uses Symfony\Component\EventDispatcher\EventSubscriberInterface or #[AsEventListener] explicitly, add symfony/event-dispatcher to your application.

Can I send outgoing HTTP requests?

Yes. Resolve Psr\Http\Client\ClientInterface and Psr\Http\Message\RequestFactoryInterface from the container to create and send PSR-18 requests.

Can I add my own services or override existing ones?

Yes. Register your own service provider after FrameworkServiceProvider . Later factories can replace earlier service identifiers, and extensions can decorate existing services.

Can I use the framework package in CLI commands or tests?

Yes, but you should create requests explicitly in CLI and test contexts instead of relying on ServerRequestInterface from globals.

Does fast-forward/fork work everywhere?

No. It is intended for Unix-like CLI environments that expose pcntl and posix support.

Where should I look for package-specific details?

Start with Dependencies Documentation. When you need deeper detail about one subsystem, continue to that package's own documentation, especially fast-forward/http , fast-forward/event-dispatcher , fast-forward/http-factory , and fast-forward/container .