PHPackages                             peterfox/hexavel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. peterfox/hexavel

Abandoned → [peterfox/hexavel](/?search=peterfox%2Fhexavel)Project[Framework](/categories/framework)

peterfox/hexavel
================

The Hexavel Framework

5.3.2(9y ago)7321[1 PRs](https://github.com/peterfox/hexavel/pulls)proprietaryPHPPHP &gt;=5.6.4

Since Apr 17Pushed 9y ago3 watchersCompare

[ Source](https://github.com/peterfox/hexavel)[ Packagist](https://packagist.org/packages/peterfox/hexavel)[ RSS](/packages/peterfox-hexavel/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (6)Versions (6)Used By (0)

Hexavel Framework
=================

[](#hexavel-framework)

Hexavel is a restructured version of [Laravel](http://laravel.com), with the purpose of providing better work flows which will simplify the development process.

### Install

[](#install)

To install via composer simply use the command

```
composer create-project --prefer-dist peterfox/hexavel

```

What's different from Laravel?
------------------------------

[](#whats-different-from-laravel)

### File structure

[](#file-structure)

Hexavel uses a widely changed filesystem from Laravel with which to produce a working application. Each folder is explained before so you can understand where to find or place your own work.

#### Binaries (bin)

[](#binaries-bin)

This is where all our console applications go, including the artisan console and the binaries install via composer. All of artisan's commands work the same as Laravel except now you must use `bin/artisan` instead from the root directory of your application.

#### Source (src)

[](#source-src)

This is where our base PHP application code goes using the default namespace \\App.

#### Application (app)

[](#application-app)

For the moment this simply stores our applications configs and routing files.

#### Support

[](#support)

This is our biggest change from Laravel. Support is how it sounds, a directory for all files that support the development of our application. This covers views, assets, language files, tests and migrations by default.

There is also a support packages folder which is the suggested place for local packages you might be developing or sit as part of your project to be loaded via composer.

#### Variable (var)

[](#variable-var)

Variable directory is effectively our application writable directory. All caches and data written by the application should be stored under this directory. Examples would be the bootstrap cache, logs or an sqlite database.

### Hexagonal Architecture

[](#hexagonal-architecture)

[Hexagonal architecture](http://fideloper.com/hexagonal-architecture) is a fancy name for a simple concept, you should separate your code into what's your framework, your domain and the connections between services and or libraries that your application interacts with.

#### Laravel

[](#laravel)

Code that relates to the core of your application in this case Laravel specific code like service providers or controllers.

#### Bridge

[](#bridge)

Code that relates to services or libraries that are used by the application.

#### Domain

[](#domain)

Code which is unique to your business requirements and is separate to the bridge and framework.

### Repository Pattern built in

[](#repository-pattern-built-in)

The repository pattern is really important and it's useful when working with the Models you'll create using Eloquent. To make this easier there's a service provider included which allows you to map your models to repositories and in turn map repository interfaces from your domain to your model interfaces.

Example Repository:

```
namespace App\Bridge\Eloquent;

use App\Bridge\Eloquent\Model\User;
use App\Domain\AuthenticatableRepository as AuthenticatableRepositoryInterface;
use Hexavel\Repository\EloquentRepository;
use Illuminate\Contracts\Auth\Authenticatable;

class AuthenticatableRepository extends EloquentRepository implements AuthenticatableRepositoryInterface
{
    public function getModel()
    {
        return User::class;
    }

    /**
     * @param string $email
     * @return Authenticatable
     */
    public function findByAuthIdentifier($email)
    {
        return $this->model->where('email', $email)->first();
    }
}
```

Then add the model and repositories to the service provider.

```
namespace App\Laravel\Providers;

use App\Bridge\Eloquent\Model\User;
use App\Bridge\Eloquent\AuthenticatableRepository;
use App\Domain\AuthenticatableRepository as AuthenticatableRepositoryInterface;
use Hexavel\Support\Providers\RepositoryProvider as ServiceProvider;

class RepositoryServiceProvider extends ServiceProvider
{

    /**
     * @return string[]
     */
    protected function getModelRepositories()
    {
        return [
            AuthenticatableRepository::class => User::class
        ];
    }

    /**
     * @return string[]
     */
    protected function getRepositories()
    {
        return [
            AuthenticatableRepositoryInterface::class => AuthenticatableRepository::class
        ];
    }
}
```

Testing
-------

[](#testing)

Testing is a huge part of any good application that you're developing. Hexavel includes a simple setup for using both [Behat](http://docs.behat.org/en/v3.0/) and [PHPSpec](http://phpspec.readthedocs.org/en/latest/) to allow you to test both the features and the code you develop.

### Behat

[](#behat)

Your feature files can be created under support/features, while the feature context for your test suite is under support/context. You can run tests via `bin/behat` or by calling `gulp behat`.

To make separating the code easier the set up is ready for using the [page pattern](http://capgemini.github.io/bdd/effective-bdd/)as a way of managing the interactions with your application for testing via Behat.

### PHPSpec

[](#phpspec)

Class specs are stored in support/spec they can be created simply by using the phpspec command `bin/phpspec desc ` and then you can call `bin/phpspec run`or `gulp phpSpec` to perform the tests.

Warnings
--------

[](#warnings)

Not all packages made for Laravel will work out of the box with Hexavel. Most will except if they install code into your project. Laravel Spark is an example of this when it uses a number of stubs and adds assets etc.

Other Resources
---------------

[](#other-resources)

- [Hexavel Spark](https://github.com/peterfox/hexavel-spark)is a package for making Spark compatible with Hexavel due to the install of stubs.
- [Hexavel Components](https://github.com/peterfox/hexavel-components)sits between Laravel Framework and Hexavel.
- [Hexavel Behat](https://github.com/peterfox/hexavel-behat)holds the contexts that sets up Behat for Hexavel.

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~81 days

Total

4

Last Release

3481d ago

PHP version history (2 changes)5.2.0PHP &gt;=5.5.9

5.3.0PHP &gt;=5.6.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/15fcbffff7260a7e75c3f8600eb112b9447aaa5926965ba5376881ef50b9ab8b?d=identicon)[peterfox](/maintainers/peterfox)

---

Top Contributors

[![peterfox](https://avatars.githubusercontent.com/u/1716506?v=4)](https://github.com/peterfox "peterfox (16 commits)")

---

Tags

frameworklaravelhexavel

###  Code Quality

TestsBehat

### Embed Badge

![Health badge](/badges/peterfox-hexavel/health.svg)

```
[![Health](https://phpackages.com/badges/peterfox-hexavel/health.svg)](https://phpackages.com/packages/peterfox-hexavel)
```

###  Alternatives

[hemp/presenter

Easy Model Presenters in Laravel

247608.3k1](/packages/hemp-presenter)[rahulalam31/laravel-abuse-ip

Block ip address of all spammer's around the world.

27234.5k](/packages/rahulalam31-laravel-abuse-ip)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
