Autarky

Autarky is a minimalist PHP framework for self-sufficient programmers. It doesn't hold your hand and doesn't put restrictions on you, and is aimed at experienced developers and quick learners. It's designed for the perfect balance between flexibility, enabling rapid development, and clean object oriented programming.

Heavily inspired by Python's Flask, Autarky is a stripped down implementation of all the best features of various PHP projects. I hope you'll find that it's less invasive, more loosely coupled and less bloated than other frameworks, but is still intuitive and makes it easy to get started on new projects quickly.

Autarky is currently at version 0.x, which means breaking changes can happen as according to SemVer's 4th rule.

Goals and vision

The main goal of the framework is to provide a thin, unopiniated routing and dependency injection layer that wraps around Symfony's HttpFoundation component. Anything that goes on beyond the routing is entirely up to the programmer - you simply map URLs to classes and methods, the configurable dependency injecting container resolves these classes and calls the methods, and the return value is turned into a HTTP response.

The framework does not come with a database layer, mail library, cache layer, authentication service, queue services, translation service and so on. The implementation and integration of these are entirely left up to you, whether you want to write them yourself or pick a third party library, all you should need is a service provider class that binds the services to the container and you're good to go.

Key features and design concepts include:

Creating a project

This repository contains the framework's core classes and tests. To create a new project using Autarky, we need to use Composer:

composer create-project autarky/skeleton -s dev --prefer-dist /path/to/project

This will set up a minimalist project for you to build on top of. You can show the demo page in your browser by setting up PHP's built-in web server and open "localhost:8000" in your favourite browser:

php -S localhost:8000 -t /path/to/project/web

Keep in mind that during version 0.x, breaking changes may happen as the minor version increments. The Github releases page contains upgrade instructions and changelogs.

Contributing

Autarky is hosted on Github. The main repository is autarky/framework - please use this repository for reporting issues. See the repository/repositories CONTRIBUTING file for more information.

Contact

Feel free to open an issue on Github if you have any problems or suggestions. Alternatively (or additionally), you may want to ask on Stack Overflow using the "autarky" tag.

Contact Andreas Lutro personally for potential security issues.

License

The contents of this repository is released under the MIT license.