bref/cli
Command-line tooling from the Bref project for deploying and managing serverless PHP applications on AWS Lambda. bref/cli helps scaffold, build, and ship PHP functions with simple commands, complementing Bref's runtime and deployment layers.
Architecture fit
bref/cli is the command surface for Bref, the PHP-on-AWS-Lambda runtime. It lives in the build/deploy plane, not the request path: it scaffolds projects (bref init), packages and uploads artifacts (bref deploy), invokes functions locally via Docker (bref local), and reads logs. It is a Symfony Console application that shells out to Serverless Framework or AWS SAM and the AWS SDK.bref deploy --param for serverless.yml applications — a pass-through for Serverless Framework --param values at deploy time. It is purely additive: no breaking changes, no deprecations, no runtime-layer or PHP-version coupling introduced. The architectural evaluation is unchanged.Integration feasibility
bref/bref, or a standalone PHAR), but it presumes a fair amount of surrounding infrastructure: AWS credentials with deploy-role permissions, a PHP 8.x toolchain, plus Node/Serverless Framework or the SAM CLI and Docker for local invocation.serverless.yml or maintaining per-environment config files. Marginal convenience, not a capability we lacked — serverless deploy --param was already reachable by shelling out. It reduces the temptation to bypass the CLI in the pipeline, which is a mild plus for standardization.Technical risk
bref/cli, bref/bref, the Lambda runtime layers (provided.al2/provided.al2023), PHP minor versions, and the Serverless/SAM CLI must move together. Unpinned versions produce failures that surface at deploy time, not build time.--param applies only to the Serverless Framework path. Teams on SAM or raw CloudFormation get nothing from this release, which sharpens the "pick one driver" decision rather than resolving it — every feature the CLI adds deepens the Serverless-first assumption.bref/bref, which pulls the CLI, so bref/cli is undercounted as a direct dependency. Still, the practical conclusion holds: treat it as first-party-coupled tooling with no community backstop, not as a broadly battle-tested open-source component.Key questions
bref/bref already in composer.json, and which deploy driver is in use — Serverless Framework, SAM, or raw CloudFormation? (1.3.4 is only useful on the first.)bref local Docker parity with production, or is staging sufficient?--param, what is the source of truth for parameter values — pipeline config, checked-in files, or ad-hoc CLI invocation?Stack fit
--param is opt-in.Migration path
bref init scaffold, one trivial function deployed and invoked. Validates credentials, runtime layer, and packaging end to end.Compatibility
bref/cli and bref/bref to matching versions; mismatches between CLI and runtime layer are the most common failure. bref/cli 1.3.4 is a safe in-range patch; it still needs to move in lockstep with bref/bref.--param, confirm the target Serverless Framework version supports the parameter being passed — the CLI will forward it, but the value only takes effect if the serverless.yml references it.Sequencing
--param, checked-in per-stage files, or both — and write it into the pipeline template.Maintenance
Support
Scaling
--param is a per-invocation mechanism; it does not scale into a config-management system. Environments beyond a handful will want the parameter values checked in, not injected ad hoc.Failure modes
ROLLBACK_COMPLETE, requiring manual deletion before redeploy.--param value supplied by hand or by a divergent pipeline produces a stack whose effective config matches neither the repo nor staging. No record of passed params lands in version control by default.Ramp-up
--param, document the convention in the runbook or it will become tribal knowledge.How can I help you explore Laravel packages today?