Slim Framework: Difference between revisions

From Rixort Wiki
Jump to navigation Jump to search
No edit summary
Line 47: Line 47:


  APP_TIMEZONE="Europe/London"
  APP_TIMEZONE="Europe/London"
=== <code>public/index.php</code> ===
<?php
declare(strict_types = 1);
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Factory\AppFactory;
require_once __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
$app->addRoutingMiddleware();
$app->addBodyParsingMiddleware();
$app->addErrorMiddleware(true, true, true);
$app->get('/hello/[{name}]', function(
  ServerRequestInterface $request,
  ResponseInterface $response,
  array $args
): ResponseInterface {
  $name = $args['name'] ?? 'unknown';
  $response->getBody()->write("hello $name");
  return $response;
});
$app->run();


== Slim Skeleton ==
== Slim Skeleton ==

Revision as of 16:21, 30 October 2021

Requirements

Slim 4 requires PHP 7.2 or greater. The current Ubuntu LTS and Debian stable include 7.4, so this requirement is satisfied on up to date servers.

Installation

Core

composer require slim/slim:"4.*"
composer require slim/psr7

Additional libraries

composer require filp/whoops
composer require twig/twig
composer require twig/intl-extra
composer require doctrine/orm
composer require vlucas/phpdotenv
composer require php-di/php-di --with-all-dependencies
composer require phpunit/phpunit --dev

Directories

mkdir public
mkdir src

.gitignore

vendor/

composer.json autoloader

"autoload": {
    "psr-4": {
        "App\\": "src/"
    }
},
"autoload-dev": {
    "psr-4": {
        "App\\Test\\": "tests/"
    }
}

Run composer dump-autoload to generate the autoloader.

.env file

APP_TIMEZONE="Europe/London"

public/index.php

<?php

declare(strict_types = 1);
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Factory\AppFactory;

require_once __DIR__ . '/../vendor/autoload.php';

$app = AppFactory::create();

$app->addRoutingMiddleware();
$app->addBodyParsingMiddleware();
$app->addErrorMiddleware(true, true, true);

$app->get('/hello/[{name}]', function(
  ServerRequestInterface $request,
  ResponseInterface $response,
  array $args
): ResponseInterface {
  $name = $args['name'] ?? 'unknown';
  $response->getBody()->write("hello $name");
  return $response;
});

$app->run();

Slim Skeleton

composer create-project slim/slim-skeleton my-app

Links