Table of Contents
What Is Bref and Why It Matters for PHP
How to Deploy a PHP App with Bref
2. Write Framework-Agnostic or Framework-Specific Code
3. Deploy
Handling Limitations of Serverless PHP
When Should You Use Bref?
Home Backend Development PHP Tutorial The Serverless Revolution: Deploying Scalable PHP Applications with Bref

The Serverless Revolution: Deploying Scalable PHP Applications with Bref

Jul 28, 2025 am 04:39 AM
php

Bref enables PHP developers to build scalable, cost-effective applications without managing servers. 1. Bref brings PHP to AWS Lambda by providing an optimized PHP runtime layer, supports PHP 8.3 and other versions, and seamlessly integrates with frameworks such as Laravel and Symfony; 2. The deployment steps include: installing Bref using Composer, configuring serverless.yml to define functions and events, such as HTTP endpoints and Artisan commands; 3. Execute serverless deploy commands to complete the deployment, automatically configure API Gateway and generate access URLs; 4. For Lambda restrictions, Bref provides solutions: use S3 or EFS to deal with temporary file system restrictions, reduce cold startup delays through Provisioned Concurrency, implement timing tasks using EventBridge, and handle asynchronous queues in combination with SQS; 5. Bref is suitable for high-traffic APIs, event-driven architectures, microservices, and cost-sensitive projects, and is not suitable for long-running tasks or relying on persistent memory caches. Therefore, Bref provides PHP developers with a low threshold path to enter the serverless field, realizing a modern application architecture with free operation and maintenance, automatic expansion and on-demand billing.

The Serverless Revolution: Deploying Scalable PHP Applications with Bref

Serverless isn't just for Node.js or Python anymore — PHP developers can now build scalable, cost-efficient applications without managing servers, thanks to Bref . If you've been hesitant to adopt serverless because of PHP's traditional reliance on long-running processes or shared hosting, it's time to reconsider. Bref makes it not only possible but practical to run PHP on AWS Lambda.

The Serverless Revolution: Deploying Scalable PHP Applications with Bref

Here's how Bref is changing the game and how you can deploy scalable PHP apps with it.


What Is Bref and Why It Matters for PHP

Bref is an open-source project that brings PHP to AWS Lambda by providing optimized runtime layers. AWS Lambda natively supports languages like JavaScript and Python, but not PHP. Bref fills that gap by packaging PHP runtimes (like PHP 8.3) as AWS Lambda layers, allowing you to run PHP code in a serverless environment.

The Serverless Revolution: Deploying Scalable PHP Applications with Bref

Why this matters:

  • No server management : You write code, deploy it, and AWS handles scaling, patching, and availability.
  • Cost efficiency : You pay only when your functions run — ideal for apps with variable traffic.
  • Built for scalability : Lambda automatically scales from zero to thousands of concurrent executions.
  • Seamless integration with AWS : Use API Gateway, S3, DynamoDB, SQS, and more with minimal configuration.

Bref doesn't just let you run PHP on Lambda — it integrates smoothly with the Laravel, Symfony, and other frameworks, making migration easier.

The Serverless Revolution: Deploying Scalable PHP Applications with Bref

How to Deploy a PHP App with Bref

Deploying a PHP application with Bref typically involves three steps: setting up your project, defining serverless configuration, and deploying via the Serverless Framework.

1. Install Bref and Configure serverless.yml

First, install Bref via Composer:

 composer requires bref/bref

Then, set up your serverless.yml to define functions and events:

 service: my-php-app

Provider:
  name: aws
  runtime: php-83

plugins:
  - ./vendor/bref/bref

functions:
  website:
    handler: public/index.php
    timeout: 28 # Keep under 30 seconds for web requests
    Events:
      - httpApi: '*'

  # Optional: Console handler for Artisan commands
  artisan:
    handler: artisan
    timeout: 120
    layers:
      - ${bref:layer.php-83-console}

This config sets up:

  • An HTTP endpoint powered by API Gateway (via httpApi )
  • A Lambda function that runs your public/index.php (great for Laravel or Symfony front controllers)
  • A separate function for running Artisan commands (eg, migrations)

2. Write Framework-Agnostic or Framework-Specific Code

Bref works great with Laravel. For example, in a Laravel app, your public/index.php stays untouched. Bref routes all HTTP requests through it, just like Apache or Nginx would.

For console commands (like php artisan migrate ), Bref provides a special console layer . You can trigger it via the AWS CLI or CI/CD pipeline:

 serverless invoke -f artisan --data "migrate --force"

3. Deploy

Run the deploy command:

 serverless deploy

That's it. Bref packages your code, uploads it to Lambda, configures API Gateway, and give you a URL to access your app.


Handling Limitations of Serverless PHP

While powerful, Lambda has constraints. Bref helps you work around them:

  • Execution timeout (15 minutes max) : Great for web requests and short-lived tasks. For longer jobs, use Step Functions or offload work to Fargate.
  • Ephemeral filesystem : You can't write to /tmp permanently. Use S3 or EFS for persistent storage.
  • Cold starts : Can add latency. Bref minimizes this with optimized layers, and you can use Provisioned Concurrency for critical endpoints.
  • No traditional cron : Use EventBridge (CloudWatch Events) to trigger Lambda functions on a schedule.

For background jobs, Bref supports SQS-triggered functions:

 functions:
  process-orders:
    handler: functions/process-orders.php
    Events:
      - sqs: ${ssm:/my-app/sqs-queue-arn}

This lets you process queues without running a worker server 24/7.


When Should You Use Bref?

Bref shines in:

  • High-traffic Laravel APIs that need auto-scaling
  • Event-driven applications (eg, processing uploads, sending emails)
  • Microservices where you want to isolate functionality
  • Cost-sensitive projects where you want to pay only for usage

It's less ideal for:

  • Long-running batch jobs (consider AWS Batch or Fargate)
  • Apps requiring persistent in-memory caching (though Redis helps)
  • Legacy apps that depend heavily on .htaccess or mod_php features

Basically, Bref removes the infrastructure barrier for PHP developers entering the serverless world. With minimum configuration and strong framework support, you can deploy scalable, secure, and efficient PHP apps — without ever touching a server.

The above is the detailed content of The Serverless Revolution: Deploying Scalable PHP Applications with Bref. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1592
276
go by example http middleware logging example go by example http middleware logging example Aug 03, 2025 am 11:35 AM

HTTP log middleware in Go can record request methods, paths, client IP and time-consuming. 1. Use http.HandlerFunc to wrap the processor, 2. Record the start time and end time before and after calling next.ServeHTTP, 3. Get the real client IP through r.RemoteAddr and X-Forwarded-For headers, 4. Use log.Printf to output request logs, 5. Apply the middleware to ServeMux to implement global logging. The complete sample code has been verified to run and is suitable for starting a small and medium-sized project. The extension suggestions include capturing status codes, supporting JSON logs and request ID tracking.

edge pdf viewer not working edge pdf viewer not working Aug 07, 2025 pm 04:36 PM

TestthePDFinanotherapptodetermineiftheissueiswiththefileorEdge.2.Enablethebuilt-inPDFviewerbyturningoff"AlwaysopenPDFfilesexternally"and"DownloadPDFfiles"inEdgesettings.3.Clearbrowsingdataincludingcookiesandcachedfilestoresolveren

Using PHP for Data Scraping and Web Automation Using PHP for Data Scraping and Web Automation Aug 01, 2025 am 07:45 AM

UseGuzzleforrobustHTTPrequestswithheadersandtimeouts.2.ParseHTMLefficientlywithSymfonyDomCrawlerusingCSSselectors.3.HandleJavaScript-heavysitesbyintegratingPuppeteerviaPHPexec()torenderpages.4.Respectrobots.txt,adddelays,rotateuseragents,anduseproxie

Yii Developer: Mastering the Essential Technical Skills Yii Developer: Mastering the Essential Technical Skills Aug 04, 2025 pm 04:54 PM

To become a master of Yii, you need to master the following skills: 1) Understand Yii's MVC architecture, 2) Proficient in using ActiveRecordORM, 3) Effectively utilize Gii code generation tools, 4) Master Yii's verification rules, 5) Optimize database query performance, 6) Continuously pay attention to Yii ecosystem and community resources. Through the learning and practice of these skills, the development capabilities under the Yii framework can be comprehensively improved.

VS Code shortcut to focus on explorer panel VS Code shortcut to focus on explorer panel Aug 08, 2025 am 04:00 AM

In VSCode, you can quickly switch the panel and editing area through shortcut keys. To jump to the left Explorer panel, use Ctrl Shift E (Windows/Linux) or Cmd Shift E (Mac); return to the editing area to use Ctrl ` or Esc or Ctrl 1~9. Compared to mouse operation, keyboard shortcuts are more efficient and do not interrupt the encoding rhythm. Other tips include: Ctrl KCtrl E Focus Search Box, F2 Rename File, Delete File, Enter Open File, Arrow Key Expand/Collapse Folder.

Using HTML `input` Types for User Data Using HTML `input` Types for User Data Aug 03, 2025 am 11:07 AM

Choosing the right HTMLinput type can improve data accuracy, enhance user experience, and improve usability. 1. Select the corresponding input types according to the data type, such as text, email, tel, number and date, which can automatically checksum and adapt to the keyboard; 2. Use HTML5 to add new types such as url, color, range and search, which can provide a more intuitive interaction method; 3. Use placeholder and required attributes to improve the efficiency and accuracy of form filling, but it should be noted that placeholder cannot replace label.

go by example running a subprocess go by example running a subprocess Aug 06, 2025 am 09:05 AM

Run the child process using the os/exec package, create the command through exec.Command but not execute it immediately; 2. Run the command with .Output() and catch stdout. If the exit code is non-zero, return exec.ExitError; 3. Use .Start() to start the process without blocking, combine with .StdoutPipe() to stream output in real time; 4. Enter data into the process through .StdinPipe(), and after writing, you need to close the pipeline and call .Wait() to wait for the end; 5. Exec.ExitError must be processed to get the exit code and stderr of the failed command to avoid zombie processes.

Fixed: Windows Update Failed to Install Fixed: Windows Update Failed to Install Aug 08, 2025 pm 04:16 PM

RuntheWindowsUpdateTroubleshooterviaSettings>Update&Security>Troubleshoottoautomaticallyfixcommonissues.2.ResetWindowsUpdatecomponentsbystoppingrelatedservices,renamingtheSoftwareDistributionandCatroot2folders,thenrestartingtheservicestocle

See all articles