Skip to content

Packages

Quillstack is 36 packages. Each is released on its own, each can be installed on its own, and none of them needs the others to be useful — the framework is what happens when you take all of them at once.

Every page here is built from that package's own README, so what you read is what ships.

Start here

The framework itself, and the skeleton to start an application from.

PackageInstall asWhat it does
The frameworkquillstack/frameworkWires the parts together: the kernel, middleware, error handling and the console.
The skeletonquillstack/quillstackA working application to start from, with routes, a controller and tests already in place.

HTTP

Everything a request touches on its way in, and a response on its way out. PSR-7, PSR-15, PSR-17 and PSR-18 throughout.

PackageInstall asWhat it does
Routerquillstack/routerMatches a request to a controller, and says what a path answers to when it does not.
Middlewarequillstack/middlewareThe PSR-15 stack a request passes through.
Server requestquillstack/server-requestThe request as it arrived, built from the globals.
HTTP requestquillstack/http-requestThe methods, and what each of them means.
Responsequillstack/responseWhat goes back, and the status codes that go with it.
HTTP clientquillstack/http-clientSending a request somewhere else, over cURL.
URIquillstack/uriTaking a URI apart and putting it back together.
Streamquillstack/streamThe body of a message, read a piece at a time.
Header bagquillstack/header-bagHeaders, matched without regard for case.
Authenticationquillstack/authWho is asking, enforced by the route rather than remembered by the controller.

Data

Getting things out of a database and back into one.

PackageInstall asWhat it does
ORMquillstack/ormEntities, relations, and a batching strategy that makes N+1 queries impossible.
Query builderquillstack/query-builderSQL written as method calls, with the values kept out of the string.
Databasequillstack/dbThe connection underneath, over PDO.

Foundation

The parts an application stands on, each usable on its own.

PackageInstall asWhat it does
Containerquillstack/diPSR-11, built for speed: dependencies read once and remembered.
Configquillstack/configSettings, and where they are read from.
Dotenvquillstack/dotenvThe environment file, parsed strictly.
Dotenv expandquillstack/dotenv-expandValues built from other values, where an unknown name is an error rather than an empty string.
Eventsquillstack/eventsPSR-14 dispatching.
Cachequillstack/cachePSR-16, in an array or on disk.
Loggerquillstack/loggerPSR-3, with the message and its context kept apart.
Serializerquillstack/serializerWhat goes over the wire, said as what may rather than what may not.
Queuequillstack/queueWork handed to somebody else to do later.
Clockquillstack/clockPSR-20, so a test can say what time it is.
Date and timequillstack/datetimeDates that behave.
Parameter bagquillstack/parameter-bagA bag of values, asked politely.
Local storagequillstack/local-storageFiles on this machine.
Storage interfacequillstack/storage-interfaceWhat any storage has to answer to.
Validator interfacequillstack/validator-interfaceWhat any validator has to answer to.
Outputquillstack/outputWriting to the terminal.
CLIquillstack/cliCommands, arguments and the console that runs them.

Testing

The tools this framework is tested with, which are also the ones it ships.

PackageInstall asWhat it does
Unit testsquillstack/unit-testsA test runner with no configuration to write.
Test coveragequillstack/test-coverageWhat the tests reached, and what they did not.
Benchmarkquillstack/benchmarkHow long things take, measured rather than guessed.
Standardsquillstack/standardsChecks a package against the shape every Quillstack package takes.

Released under the MIT License.