PHPackages                             bobalazek/web-application-starter-kit - 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. bobalazek/web-application-starter-kit

AbandonedArchivedProject[Framework](/categories/framework)

bobalazek/web-application-starter-kit
=====================================

An Web Application starter kit / boilerplate by Borut Balazek - build with Silex

3.2.1(8y ago)8681MITPHPPHP ^7.0

Since Apr 20Pushed 8y ago2 watchersCompare

[ Source](https://github.com/bobalazek/web-application-starter-kit)[ Packagist](https://packagist.org/packages/bobalazek/web-application-starter-kit)[ RSS](/packages/bobalazek-web-application-starter-kit/feed)WikiDiscussions develop Synced today

READMEChangelog (10)Dependencies (37)Versions (96)Used By (0)

README
======

[](#readme)

**Web Application Starter Kit**

[![Build Status](https://camo.githubusercontent.com/9209d6b2cf80d761ba7ed13f742bd0b39411c894a37a256cd404155ab58c78b1/68747470733a2f2f7472617669732d63692e6f72672f626f62616c617a656b2f7765622d6170706c69636174696f6e2d737461727465722d6b69742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/bobalazek/web-application-starter-kit)[![Latest Stable Version](https://camo.githubusercontent.com/739fdf7ade59cec84f74b83e5f4a653dfb2015d90e5b63ebb8f98b655dd5252e/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f626f62616c617a656b2f7765622d6170706c69636174696f6e2d737461727465722d6b69742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bobalazek/web-application-starter-kit)[![Total Downloads](https://camo.githubusercontent.com/997adfa12605d46312da1af6ea8fae2e7d2c3509246529137f47e858d2f4aa61/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f626f62616c617a656b2f7765622d6170706c69636174696f6e2d737461727465722d6b69742e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bobalazek/web-application-starter-kit)[![License](https://camo.githubusercontent.com/f45d904953153ca304a2328243d2733e095eee13a631a1f390709885d41dd692/68747470733a2f2f706f7365722e707567782e6f72672f6c61726176656c2f6672616d65776f726b2f6c6963656e73652e737667)](https://packagist.org/packages/bobalazek/web-application-starter-kit)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/949b57da2d1f8b8948620d27c17155a6514e6af28766192fdc6f244b85531dee/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f626f62616c617a656b2f7765622d6170706c69636174696f6e2d737461727465722d6b69742f6261646765732f7175616c6974792d73636f72652e706e673f623d646576656c6f70)](https://scrutinizer-ci.com/g/bobalazek/web-application-starter-kit/?branch=develop)[![SensioLabsInsight](https://camo.githubusercontent.com/e6fa0e60d046c1c4cb7ce695f456e3f313d60837fd6de7a8ba1cddbe48186ba3/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f32366262613662312d313338662d346566362d386138302d3165353132643237626436312f6d696e692e706e67)](https://insight.sensiolabs.com/projects/26bba6b1-138f-4ef6-8a80-1e512d27bd61)

**Important note: With the release of SF4, the Symfony team has decided to [retire Silex](https://symfony.com/blog/the-end-of-silex). This means, it will not support any new SF4 features anymore. So from now on, I suggest using the new SF4 for long-term projects, as I will not be able to add any new (SF4) features to this boilerplate/starter kit. However, I may prepare a similar starter kit for SF4 in the near future, so stay tuned.**

A simple web application boilerplate for small or mid scale applications. Included:

- Users system
    - Login
    - Logout
    - Register
    - Reset password
    - Basic profile
    - Settings / edit profile
    - Change password
- Basic user roles system - ability to assign roles for each user
- Administration
    - Users
        - View
        - Edit
        - Switch / impersonate
        - Remove
    - User actions
    - Posts
- Tools
    - Email preview - you are able to view the email templates while working on them (without the need of sending test emails to yourself for every change)
    - Database backup - backup and restore your database schema
- Errors / exceptions tracking - save the exceptions / errors directly to the database and / or send emails when an error happened
- Statistics
- Settings

Requirements &amp; Tools &amp; Helpers
--------------------------------------

[](#requirements--tools--helpers)

- PHP &gt; 7.0
- [Composer](https://getcomposer.org/)
- [Bower](http://bower.io/)
- [PHP Coding Standards Fixer](http://cs.sensiolabs.org/) (optional)

Setup / Development
-------------------

[](#setup--development)

- Navigate your your web directory: `cd /var/www`
- Create a new project: `composer create-project bobalazek/web-application-starter-kit myapp --no-scripts`
- Navigate inside the application `cd myapp`
- Configure database (and maybe other stuff if you want) - copy/clone [app/configs/global-local.example.php](https://github.com/bobalazek/web-application-starter-kit/blob/master/app/configs/global-local.example.php) into `app/configs/global-local.php` and set the config there. Alternatively, you can also do the same with [.env.example](https://github.com/bobalazek/web-application-starter-kit/blob/master/.env.example), if you only want to change the basics (database configuration &amp; environment).
- Run the following commands:
    - `composer install`
    - `bin/console orm:schema-tool:update --force` (to install the database schema)
    - `bower update` (to install the front-end dependencies - you will need to install [Bower](http://bower.io/) first - if you haven't already)
    - `bin/console application:database:hydrate-data` (to hydrate some data)
- You are done! Start developing!

Database
--------

[](#database)

- We use the Doctrine database
- Navigate to your project directory: `cd /var/www/myapp`
- Check the entities: `bin/console orm:info` (optional)
- Update the schema: `bin/console orm:schema-tool:update --force`
- Database updated!

Deployment
----------

[](#deployment)

- We use [Deployer](https://deployer.org/)
- Set your configuration inside `deployer/config.php` and `deployer/hosts.php`
- Run `dep deploy qa` (or whatever environment you want)
- The app was deployed to your server!

Application name
----------------

[](#application-name)

You should replace the name for your actual application inside the following files:

- README.md
- bower.json
- composer.json
- phpunit.xml
- app/configs/global.php

Administrator login
-------------------

[](#administrator-login)

With the `bin/console application:database:hydrate-data` command, you will, per default hydrate 2 users (which you can change inside the `app/fixtures/users.php` file):

- Admin User (with admin permissions)
    - Username: `admin` or `admin@myapp.com`
    - Password: `test`
- Test User (with the default user permissions)
    - Username: `test` or `test@myapp.com`
    - Password: `test`

Commands
--------

[](#commands)

- `bin/console application:environment:prepare` - Will create the global-local.php and development-local.php files (if they do not exist)
- `bin/console application:database:hydrate-data [-r|--remove-existing-data]` - Will hydrate the tables with some basic data, like: 2 users and 6 roles (the `--remove-existing-data` flag will truncate all tables before re-hydrating them)
- `bin/console application:storage:prepare` - Will prepare all the storage (var/) folders, like: cache, logs, sessions, etc.
- `bin/console application:translations:prepare` - Prepares all the untranslated string into a separate (app/locales/{locale}/messages\_untranslated.yml) file. Accepts an locale argument (defaults to 'en\_US' - usage: `bin/console application:translations:prepare --locale de_DE` or `bin/console application:translations:prepare -l de_DE` )

Other commands
--------------

[](#other-commands)

- `php-cs-fixer fix .` - if you want your code fixed before each commit. You will need to install [PHP Coding Standards Fixer](http://cs.sensiolabs.org/)
- `bin/simple-phpunit` - run your PHPUnit tests

Modules / Components
--------------------

[](#modules--components)

In case you want to create a new component / module in this system, do the following (in this case, the posts inside the members area):

- Create a new Controller Provider (like [src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php) - plural)
    - Bind with the following routes:
        - Overview / list:
            - Route name: [members-area.posts](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L22)
            - Route pattern / url: [(blank)](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L19)
            - Route controller method: [PostsController::indexAction](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L20)
        - New:
            - Route name: [members-area.posts.new](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L28)
            - Route pattern / url: [/new](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L25)
            - Route controller method: [PostsController::newAction](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L26)
        - Detail:
            - Route name: `members-area.posts.detail`
            - Route pattern / url: `/{id}`
            - Route controller method: `PostsController::detailAction`
        - Edit:
            - Route name: [members-area.posts.edit](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L34)
            - Route pattern / url: [/{id}/edit](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L31)
            - Route controller method: [PostsController::editAction](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L32)
        - Remove:
            - Route name: [members-area.posts.remove](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L40)
            - Route pattern / url: [/{id}/remove](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L37)
            - Route controller method: [PostsController::removeAction](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/ControllerProvider/MembersArea/PostsControllerProvider.php#L38)
- Create a new Controller ([src/Application/Controller/MembersArea/PostsController.php](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/Controller/MembersArea/PostsController.php) - plural)
    - With the following methods:
        - [PostsController::listAction](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/Controller/MembersArea/PostsController.php#L22)
        - [PostsController::newAction](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/Controller/MembersArea/PostsController.php#L76)
        - `PostsController::detailAction`
        - [PostsController::editAction](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/Controller/MembersArea/PostsController.php#L143)
        - [PostsController::removeAction](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/Controller/MembersArea/PostsController.php#L217)
- Mount the routes of the Controller Provider to the routes ([app/core/routes.php](https://github.com/bobalazek/web-application-starter-kit/blob/master/app/core/routes.php#L38))
- Create a new Entity ([src/Application/Entity/PostEntity.php](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/Entity/PostEntity.php) - singular)
- Create a new Repository ([src/Application/Repository/PostRepository.php](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/Repository/PostRepository.php) - singular)
- Create a new Form Type ([src/Application/Form/Type/PostType.php](https://github.com/bobalazek/web-application-starter-kit/blob/master/src/Application/Form/Type/PostType.php) - singular)
- Create templates:
    - app/templates/contents/members-area/posts/ (plural)
        - [list.html.twig](https://github.com/bobalazek/web-application-starter-kit/blob/master/app/templates/contents/members-area/posts/list.html.twig)
        - `detail.html.twig`
        - [new.html.twig](https://github.com/bobalazek/web-application-starter-kit/blob/master/app/templates/contents/members-area/posts/new.html.twig)
        - [edit.html.twig](https://github.com/bobalazek/web-application-starter-kit/blob/master/app/templates/contents/members-area/posts/edit.html.twig)
        - [remove.html.twig](https://github.com/bobalazek/web-application-starter-kit/blob/master/app/templates/contents/members-area/posts/remove.html.twig)
        - [\_form.html.twig](https://github.com/bobalazek/web-application-starter-kit/blob/master/app/templates/contents/members-area/posts/_form.html.twig) (just include that inside the edit and new template, so you don't need to write the same form twice - if it's more complex)

File structure
--------------

[](#file-structure)

- app/
    - configs/ =&gt; All basic config stuff (+ validation)
    - core/ =&gt; The core files such as providers, routes, middlewares and definitions
    - fixtures/ =&gt; Used for hydrating the database
    - locales/ =&gt; Used for translations
    - templates/ =&gt; All twig templates
- bin/
    - console
- src/
    - Application/
        - Command/
        - Controller/
        - ControllerProvider/
        - Doctrine/ =&gt; Some Doctrine fixes for Silex
        - Entity/ =&gt; All entities / models
        - Form/
        - Provider/
        - Repository/
        - Tool/
        - Twig/
- web/
    - assets/
        - images/
        - javascripts/
        - uploads/ =&gt; Used for uploads
        - vendor/ =&gt; Bower dependencies
    - index.php

Preview
-------

[](#preview)

### Login

[](#login)

[![Dashboard preview](doc/assets/images/login-preview.png)](doc/assets/images/login-preview.png)

### Register

[](#register)

[![Dashboard preview](doc/assets/images/register-preview.png)](doc/assets/images/register-preview.png)

### Reset password

[](#reset-password)

[![Dashboard preview](doc/assets/images/reset-password-preview.png)](doc/assets/images/reset-password-preview.png)

### Dashboard

[](#dashboard)

[![Dashboard preview](doc/assets/images/dashboard-preview.png)](doc/assets/images/dashboard-preview.png)

### Profile

[](#profile)

[![Profile preview](doc/assets/images/profile-preview.png)](doc/assets/images/profile-preview.png)

### Profile settings

[](#profile-settings)

[![Profile settings preview](doc/assets/images/profile-settings-preview.png)](doc/assets/images/profile-settings-preview.png)

### Statistics

[](#statistics)

[![Statistics preview](doc/assets/images/statistics-preview.png)](doc/assets/images/statistics-preview.png)

### Users

[](#users)

[![Users preview](doc/assets/images/users-preview.png)](doc/assets/images/users-preview.png)

### Users edit

[](#users-edit)

[![Users edit preview](doc/assets/images/users-edit-preview.png)](doc/assets/images/users-edit-preview.png)

License
-------

[](#license)

Web Application Starter Kit is licensed under the MIT license.

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 99.8% 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 ~11 days

Recently: every ~33 days

Total

94

Last Release

3073d ago

Major Versions

0.15.1 → 1.0.0-rc.02016-03-01

1.9.0 → 2.0.02017-09-18

2.0.0 → 3.0.02017-09-19

PHP version history (3 changes)1.6.1PHP &gt;=5.5.9

1.8.0PHP &gt;=5.6

1.9.0PHP ^7.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1904053?v=4)[Borut Balazek](/maintainers/bobalazek)[@bobalazek](https://github.com/bobalazek)

---

Top Contributors

[![bobalazek](https://avatars.githubusercontent.com/u/1904053?v=4)](https://github.com/bobalazek "bobalazek (416 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (1 commits)")

---

Tags

boilerplateboilerplate-templatephpstarter-kitstarter-templateweb-application

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bobalazek-web-application-starter-kit/health.svg)

```
[![Health](https://phpackages.com/badges/bobalazek-web-application-starter-kit/health.svg)](https://phpackages.com/packages/bobalazek-web-application-starter-kit)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[sylius/sylius

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

8.5k5.9M737](/packages/sylius-sylius)[oro/platform

Business Application Platform (BAP)

645143.5k115](/packages/oro-platform)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)[contao/core-bundle

Contao Open Source CMS

1231.6M2.8k](/packages/contao-core-bundle)[chameleon-system/chameleon-base

The Chameleon System core.

1028.6k5](/packages/chameleon-system-chameleon-base)

PHPackages © 2026

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