Skip to content

icehawk/icehawk

Repository files navigation

Join the chat at https://gitter.im/icehawk/icehawk Build Status Coverage Status Latest Stable Version Total Downloads Latest Unstable Version License phpstan enabled

IceHawk Framework

Lightweight PHP routing framework, respecting CQRS.

Requirements

For development only:

Installation

composer require icehawk/icehawk:^2.1

or add to your composer.json:

{
	"require": {
		"icehawk/icehawk": "^2.1"
	}
}

Documentation

A full documentation can be found on our website: icehawk.github.io

Quickstart (installer)

We provide an installer package that creates a new IceHawk project for you. Simply run:

composer create-project -n icehawk/installer /path/to/new-project

Answer the questions of the interactive installer and you're good to go.

» Watch our short video and see how it works: Install IceHawk framework in less than 2 minutes

Quickstart (manual)

Step 0 - Create a basic composer.json

{
    "require": {
        "icehawk/icehawk": "^2.1"
    },
    "autoload": {
        "psr-4": {
            "YourVendor\\YourProject\\": "./"
        }
    }
}

Then run:

composer update

Step 1 - Create a request handler

<?php declare(strict_types = 1);

namespace YourVendor\YourProject;

use IceHawk\IceHawk\Interfaces\HandlesGetRequest;
use IceHawk\IceHawk\Interfaces\ProvidesReadRequestData;

final class SayHelloRequestHandler implements HandlesGetRequest
{
	public function handle( ProvidesReadRequestData $request ) 
	{
		echo "Hello World!";   
	}	
}

— SayHelloRequestHandler.php

Step 2 - Create a basic config

All you need is at least one read or write route.

<?php declare(strict_types = 1);

namespace YourVendor\YourProject;

use IceHawk\IceHawk\Routing\ReadRoute;
use IceHawk\IceHawk\Routing\Patterns\Literal;

final class IceHawkConfig extends \IceHawk\IceHawk\Defaults\IceHawkConfig
{
	public function getReadRoutes() 
	{
		return [
			new ReadRoute( new Literal('/'), new SayHelloRequestHandler() ),	
		];
	}
}

— IceHawkConfig.php

Step 3 - Create a bootstrap script

<?php declare(strict_types = 1);

namespace YourVendor\YourProject;

use IceHawk\IceHawk\IceHawk;
use IceHawk\IceHawk\Defaults\IceHawkDelegate;

require('vendor/autoload.php');

$iceHawk = new IceHawk(new IceHawkConfig(), new IceHawkDelegate());
$iceHawk->init();

$iceHawk->handleRequest();

— index.php

Step 4 - Say hello

Go to your project folder an run:

php -S 127.0.0.1:8088

Go to your browser an visit: http://127.0.0.1:8088/

Hello World!

Visit our website for the full documentation.

Contributing

Contributions are welcome! Please see our contribution guide.

About

PHP7 micro framework, respecting CQRS

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages