Skip to content

Repository files navigation

AWS CDK constructs for PHP on AWS Lambda

The Bref CDK constructs let you deploy serverless PHP applications on AWS Lambda using the AWS CDK.

By default, Bref deploys using the Serverless Framework. Using the AWS CDK is an alternative, but be aware that this is an advanced topic. If you are lost, follow the Bref documentation instead.

Installation

Install the package with NPM:

npm install @bref.sh/constructs

Usage

Simple example to deploy an HTTP application:

import{Construct}from'constructs';import{App,Stack}from'aws-cdk-lib';import{PhpFpmFunction}from'@bref.sh/constructs';classMyStackextendsStack{constructor(scope: Construct,id: string,props?: StackProps){super(scope,id,props);newPhpFpmFunction(this,'Hello',{handler: 'public/index.php',});}}constapp=newApp();newMyStack(app,'test',{env: {region: 'eu-west-1',},});

Constructs

Functions

PhpFpmFunction

This construct deploys a PHP function with the HTTP runtime.

newPhpFpmFunction(this,'MyFunction',{handler: 'public/index.php',});

It inherits from the AWS CDK Function construct with these options set by default:

  • handler: index.php by default
  • runtime: provided.al2023
  • code: the code is automatically zipped from the current directory.
  • layers: the Bref layer is automatically added.
  • memorySize: 1024
  • timeout: 28 (seconds)

The code is automatically zipped from the current directory. You can override this behavior by setting the code property:

import{packagePhpCode}from'@bref.sh/constructs';newPhpFpmFunction(this,'MyFunction',{code: packagePhpCode('custom-path',{exclude: ['docs'],}),});

The following paths are always excluded: .git, .idea, cdk.out, node_modules, .bref, .serverless, tests.

The construct also adds the following options:

  • phpVersion (default: 8.4): the PHP version to use.

PhpFunction

This construct deploys a PHP function with the "event-driven function" runtime.

newPhpFunction(this,'MyFunction',{handler: 'my-handler.php',});

It inherits from the AWS CDK Function construct with these options set by default:

  • runtime: provided.al2023
  • code: the code is automatically zipped from the current directory.
  • layers: the Bref layer is automatically added.
  • memorySize: 1024
  • timeout: 6 (seconds)

The code is automatically zipped from the current directory. You can override this behavior by setting the code property:

import{packagePhpCode}from'@bref.sh/constructs';newPhpFunction(this,'MyFunction',{// ...code: packagePhpCode('custom-path',{exclude: ['docs'],}),});

The following paths are always excluded: .git, .idea, cdk.out, node_modules, .bref, .serverless, tests.

The construct also adds the following options:

  • phpVersion (default: 8.4): the PHP version to use.

ConsoleFunction

This construct deploys a PHP function with the "console" runtime.

newConsoleFunction(this,'Artisan',{handler: 'artisan',});

It inherits from the AWS CDK Function construct with these options set by default:

  • runtime: provided.al2023
  • code: the code is automatically zipped from the current directory.
  • layers: the Bref layer is automatically added.
  • memorySize: 1024
  • timeout: 6 (seconds)

The code is automatically zipped from the current directory. You can override this behavior by setting the code property:

import{packagePhpCode}from'@bref.sh/constructs';newConsoleFunction(this,'Artisan',{// ...code: packagePhpCode('custom-path',{exclude: ['docs'],}),});

The following paths are always excluded: .git, .idea, cdk.out, node_modules, .bref, .serverless, tests.

The construct also adds the following options:

  • phpVersion (default: 8.4): the PHP version to use.

About

AWS CDK constructs for PHP applications with Bref

Resources

Stars

32 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages