PHPackages                             xenokore/web-skeleton - 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. xenokore/web-skeleton

ActiveProject[Framework](/categories/framework)

xenokore/web-skeleton
=====================

A skeleton project for a Xeno web app

0.6.0(4y ago)08MITPHP

Since May 16Pushed 4y ago1 watchersCompare

[ Source](https://github.com/xenokore/xeno-web-skeleton)[ Packagist](https://packagist.org/packages/xenokore/web-skeleton)[ RSS](/packages/xenokore-web-skeleton/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (15)Versions (7)Used By (0)

Xeno web-skeleton
=================

[](#xeno-web-skeleton)

A skeleton project that can be used to create a Xeno based web application.

Features
--------

[](#features)

- Fully PSR compatible framework skeleton
- Includes:
    - **PHP-DI** as the main container
    - **Slim** for routing
    - **Doctrine** as object relation mapper and database abstraction layer
    - **Twig** for rendering
    - **PHPUnit** for unit testing
    - **PsySH** as REPL
    - **Symfony/Console** for console commands
- Everything is automatically dependency injected! (classes, controllers, console commands, Twig extensions, ...)
- Xeno components are automatically added to the App by simply including the library (cache, session, ...)

Setup
-----

[](#setup)

1. Navigate to the parent directory where you want to create a new project and run the following command:

```
composer create-project xenokore/web-skeleton

```

*The `project-name` argument will be the name of the created directory.*

2. Setup a webserver to serve files in the `//public` directory. Make sure to route every non-found file through `index.php`. An example **nginx** config can be found at `//docs/nginx.md`.
3. Startup your webserver and navigate to your newly created application. If everything works correctly you'll see the message: `The app is working correctly :^)`

Usage
-----

[](#usage)

After setting up the project and webserver to use the framework, you can start creating your application by adding classes, views, controllers and routes. Have a look at the **Structure** part below to know where everything should go.

The app comes with a console that helps you with some basic tasks. You can access the console by simply running: `php ./console`. On unix systems you can simply do `./console`.

A few simple tasks are:

- `php ./console controller:create ` to create a new controller. The name should not be affixed with *"Controller"*
- `php ./console test:create ` to create a new unit test. The name should not be affixed with *"Test"*
- `php ./console cache:clear` to clear all cache files. This is useful in production after an update.

Structure
---------

[](#structure)

`/app` contains the files used to structure your application. It contains:

- Container definitions
- The main bootstrap file as well as one for REPL
- Global middleware definitions
- Routes

`/cache` contains the cache files for the application. Example:

- The compiled container
- The compiled routes
- Compiled Twig templates

`/config` contains configuration files to configure parts of the application that should not change between environments.

`/controllers` contains the controllers.

`/docs` for your app specific documentation.

`/i18n` is where *internationalization* files will be stored.

`/lib` is where non-composer libraries should be stored. An example would be the DataTables php files.

`/logs` is where the log files are stored.

`/migrations` is where Doctrine database migrations are stored. The migrations in the main directory are ignored by Git to help you during development. Everything in `/migrations/production` is committed however.

`/public` is the only directory that should be accessible by the webserver. Every request which does not correspond to an existing file in this directory is routed through `index.php`, which sets up the router. (Your *favicon* would go here for example.)

`/src` is the main directory for your application code. Everything here is namespaced under `\App` and is automatically dependency injected. Adding a custom container definition for a class will overwrite the default autowire behavior.

`/tests` is where the PHPUnit tests are located. These are namespaced under `\App\Tests`.

`/uploads` is where user uploaded files will reside. The files in here are ignored by Git.

`/views` is the main views directory for Twig templates.

### Todo

[](#todo)

- Add Whoops error handler.
- Maybe move some code from the web-skeleton to xenokore/app or other components
- More documentation

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

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 ~5 days

Total

6

Last Release

1792d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4f952a864ff95e6dc68693bf6a5fff8320a3511840d1b9f1a0722e8f41b5385a?d=identicon)[Yani](/maintainers/Yani)

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/xenokore-web-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/xenokore-web-skeleton/health.svg)](https://phpackages.com/packages/xenokore-web-skeleton)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M647](/packages/sylius-sylius)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M151](/packages/sulu-sulu)[contao/core-bundle

Contao Open Source CMS

1231.6M2.3k](/packages/contao-core-bundle)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[neos/flow

Flow Application Framework

862.0M449](/packages/neos-flow)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)

PHPackages © 2026

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