MOSS Micro Framework
, (*1)
For licence details see LICENCE.md
Documentation is available on Wiki : https://github.com/mossphp/moss-framework/wiki, (*2)
About
Welcome to Moss
a micro framework, that provides basic tools for building simple web pages or APIs it can also handle something bigger., (*3)
So what's the difference between other micro-frameworks?, (*4)
Moss
isn't some kind of cropped full stack framework, that was cut down to fit into micro segment., (*5)
Moss
was developed as a solution with small footprint, that is easy to extend and with as little dependencies as possible - and still simple to use., (*6)
Moss
also wants to be fashionable and follows trends: dependency injection
, event dispatching
, request-response objects
, clean code
.
Not because its fancy to be trendy, but because it makes sense and code benefits from them., (*7)
Features
- fully grown
Router
(not powerful but working :) ),
-
Request
and Response
objects (got http auth, and easy header management),
- flash messages
- dependency injection container
- event dispatcher with
AOP
- closure and class controllers (that can be organized into bundles with fluent directory structure),
- simple view that can be easily extended with bridge to use
Twig
(as package in composer)
- and clean code
- and more
Documentation
Documentation is available on Wiki : https://github.com/mossphp/moss-framework/wiki, (*8)
Quickstart
Add to composer.json
:, (*9)
{
"require": {
"moss/framework": "*"
}
}
Or from console, (*10)
php composer.phar require moss/framework
Then create entry file, eg ./web/index.php
containing:, (*11)
<?php
use Moss\Config\Config;
use Moss\Container\ContainerInterface;
use Moss\Http\Response\Response;
use Moss\Kernel\App;
require __DIR__ . '/vendor/autoload.php';
$app = new App(new Config());
$app->route('main', '/', function () { return new Response('Hello World'); });
$app->run()->send();
Or download simple sample app from github, (*12)
Contribute
If you want to submit fix or some other enhancements, feel free to do so.
Whenever you find a bug it would be nice if you submit it.
And if you submit fix - this would be truly amazing!, (*13)
How to Contribute
- Fork;
- Create a new branch for each feature/improvement/issue;
- Send a pull request from branch
Style Guide
All pull requests must adhere to the PSR-2 standard.
All pull requests should be accompanied by passing PHPUnit tests.
Add phpDocs to all methods, including at least a description, all @param, @return and @throws declaration, (*14)