Skip to content

Commit eafcd33

Browse files
committed
Update docs
Signed-off-by: Felipe Sayão Lobato Abreu <github@mentordosnerds.com>
1 parent 4302b22 commit eafcd33

4 files changed

Lines changed: 78 additions & 0 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Integrating with Laravel
2+
=======================
3+
4+
You can use FastForward Container to register custom services or providers in a Laravel application, or to compose external providers with Laravel's container.
5+
6+
.. code-block:: php
7+
8+
use FastForward\Container\ServiceProvider\ArrayServiceProvider;
9+
use Illuminate\Container\Container as LaravelContainer;
10+
11+
$laravel = new LaravelContainer();
12+
$provider = new ArrayServiceProvider([
13+
'external_service' => fn() => new ExternalService(),
14+
]);
15+
16+
// Register FastForward provider services into Laravel
17+
foreach ($provider->getFactories() as $id => $factory) {
18+
$laravel->bind($id, fn() => $factory($laravel));
19+
}
20+
21+
// Or directly bind a factory that returns a service from FastForward provider
22+
$laravel->bind('external_service', new InvokableFactory(ExternalService::class));
23+
24+
$service = $laravel->make('external_service');

docs/examples/frameworks-slim.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
Integrating with Slim Framework
2+
==============================
3+
4+
You can use FastForward Container as the dependency injection container for Slim Framework.
5+
6+
.. code-block:: php
7+
8+
use FastForward\Container\container;
9+
use FastForward\Container\ServiceProvider\ArrayServiceProvider;
10+
use Slim\App;
11+
12+
$provider = new ArrayServiceProvider([
13+
'logger' => fn() => new Logger('api'),
14+
]);
15+
$container = container($provider);
16+
17+
$app = App::createFromContainer($container);
18+
$app->get('/ping', function ($request, $response) {
19+
$logger = $this->get('logger');
20+
$logger->info('Ping route called');
21+
return $response->withJson(['pong' => true]);
22+
});

docs/examples/index.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
Examples
22
========
33

4+
This section contains practical usage examples for FastForward Container, covering basic service registration, providers, factories, testing, feature toggles, middleware, and integration with popular frameworks. Each example demonstrates a real-world scenario to help you get started quickly or solve common problems.
5+
46
.. toctree::
57
:maxdepth: 1
68

79
basic
810
providers
911
providers-testing
1012
providers-feature-toggle
13+
middleware
14+
frameworks-laravel
15+
frameworks-slim
1116
factories

docs/examples/middleware.rst

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
Using Middlewares
2+
=================
3+
4+
You can register middleware services and compose them using providers.
5+
6+
.. code-block:: php
7+
8+
use FastForward\Container\ServiceProvider\ArrayServiceProvider;
9+
use FastForward\Container\container;
10+
11+
class AuthMiddleware {
12+
public function __invoke($request, $handler) { /* ... */ }
13+
}
14+
class LoggingMiddleware {
15+
public function __invoke($request, $handler) { /* ... */ }
16+
}
17+
18+
$provider = new ArrayServiceProvider([
19+
'middlewares' => fn() => [
20+
new AuthMiddleware(),
21+
new LoggingMiddleware(),
22+
],
23+
]);
24+
25+
$container = container($provider);
26+
$middlewares = $container->get('middlewares');
27+
// Use $middlewares in your framework or custom pipeline

0 commit comments

Comments
 (0)