Yuriy Belenko 8e78b14e28 New PHP Slim4 Server Generator (#3658)
* [Slim4] Copy Slim3 generator as starting point

* [Slim4] Add psr7Implementation generator option

Slim supports PSR-7 interfaces for its Request and Response objects.
Slim provides its own PSR-7 implementation so that it works out of the
box.
However, you are free to replace Slim’s default PSR-7 objects with
a third-party implementation.
[Ref] https://www.slimframework.com/docs/v4/concepts/value-objects.html

* [Slim4] Handle psr7Implementation generator option

It somehow ended up with composerPackages and composerDevPackages
codegen variables and two additional functions. Hope, it's not too much.

* [Slim4] Extend from Slim3 generator

* [Slim4] Bump PHP Slim Framework version to 4.0.0

* [Slim4] Bump required PHP version to 7.1

[Upgrade Guide](https://www.slimframework.com/docs/v4/start/upgrade.html)

* [Slim4] Remove app settings

Slim’s App settings used to be a part of the container and  they have
now been decoupled from it.

[Upgrade Guide](https://www.slimframework.com/docs/v4/start/upgrade.html)

* [Slim4] Set container argument optional

Slim uses an optional dependency container to prepare, manage,
and inject application dependencies.
Slim supports containers that implement PSR-11
like [PHP-DI](http://php-di.org/doc/frameworks/slim.html).

[Upgrade Guide](https://www.slimframework.com/docs/v4/start/upgrade.html)

* [Slim4] Change response body write

You can't write to response instance directly anymore,
need to retrieve body object first.

[Doc](https://www.slimframework.com/docs/v4/objects/response.html#the-response-body)

* [Slim4] Change Slim\App constructor

[Upgrade Guide](https://www.slimframework.com/docs/v4/start/upgrade.html)

* [Slim4] Refactor token authentication options

User can provide array or Container as constructor argument from now.
Small refactoring required to retrieve authentication options from
that argument.

* [Slim4] Add PSR-7 implementation codegen flags

This approach seems more flexible to me.
User can customize templates in favor of chosen PSR7 implementation.
It's easier to change Composer packages and their versions.

* [Slim4] Add JsonBodyParserMiddleware

Slim4 doesn't parse JSON body, need to add suggested middleware.
Ref: https://www.slimframework.com/docs/v4/objects/request.html#the-request-body

* [Slim4] Remove request's deprecated methods usage

Since Slim 4.0.0 ServerRequest implementation doesn't have
getQueryParam and getParsedBodyParam methods anymore.

* [Slim4] Use getUploadedFiles for multipart request

isMultipart codegen property is always false so far.
Hope that bug will be fixed soon.

* [Slim4] Add samples
2019-10-21 22:20:12 +08:00

1.7 KiB
Raw Blame History

title sidebar_label
Config Options for php-slim4 php-slim4
Option Description Values Default
sortParamsByRequiredFlag Sort method arguments to place required parameters before optional parameters. true
ensureUniqueParams Whether to ensure parameter names are unique in an operation (rename parameters that are not). true
allowUnicodeIdentifiers boolean, toggles whether unicode identifiers are allowed in names or not, default is false false
prependFormOrBodyParameters Add form or body parameters to the beginning of the parameter list. false
modelPackage package for generated models null
apiPackage package for generated api classes null
variableNamingConvention naming convention of variable name, e.g. camelCase. camelCase
invokerPackage The main namespace to use for all classes. e.g. Yay\Pets null
packageName The main package name for classes. e.g. GeneratedPetstore null
srcBasePath The directory to serve as source root. null
artifactVersion The version to use in the composer package version field. e.g. 1.2.3 null
psr7Implementation Slim 4 provides its own PSR-7 implementation so that it works out of the box. However, you are free to replace Slims default PSR-7 objects with a third-party implementation. Ref: https://www.slimframework.com/docs/v4/concepts/value-objects.html
slim-psr7
Slim PSR-7 Message implementation
nyholm-psr7
Nyholm PSR-7 Message implementation
guzzle-psr7
Guzzle PSR-7 Message implementation
zend-diactoros
Zend Diactoros PSR-7 Message implementation
slim-psr7