SLIM skeleton app : Why so many library pre-included in SLIM skeleton app?

Slim’s actual dependencies are:

    "require": {
        "php": ">=5.5.0",
        "pimple/pimple": "^3.0",
        "psr/http-message": "^1.0",
        "nikic/fast-route": "^1.0",
        "container-interop/container-interop": "^1.2",
        "psr/container": "^1.0"
    },
  • pimple/pimple is our DI container. psr/container and container-interop are interoperability interfaces to enable Slim play nice with other DI containers like PHP-DI.
  • nikic/fast-route is Slim’s router. We don’t have any other one.
  • psr/http-message is the interoperability library for PSR-7.

The skeleton has these dependencies:

    "require": {
        "php": ">=5.5.0",
        "slim/slim": "^3.1",
        "slim/php-view": "^2.0",
        "monolog/monolog": "^1.17"
    },
  • slim/slim is obviously Slim Framework
  • slim/php-view provides a simple PHP based view renderer
  • monolog/monolog is a logging component.

The skeleton also has this development dependency:

    "require-dev": {
        "phpunit/phpunit": ">=4.8 < 6.0"
    },

Obviously this the standard unit testing library.

Any other component you see in vendor is a dependency of PHPUnit. i.e.
the Symfony, Webmozart and Doctrine components are dependencies required by PHPUnit.

2 Likes