This package is abandoned and no longer maintained. No replacement package was suggested.

v1.0.1 2013-11-27 13:45 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:11:02 UTC


Silicone Skeleton is Silex Framework Edition Skeleton.

Every part is configurable. You can choose anything you want.

This Silex modification contains the following:

  • HttpCache
  • Class Controllers
  • Doctrine Common
  • Doctrine ORM
  • Monolog
  • Session
  • Twig
  • Translation
  • Validator
    • Unique validator for entities
  • Forms
  • Security
  • User Registration and Authorization.
  • Annotation Routes
  • WebProfiler (with Doctrine queries logger)
  • Console


Structure of Silicone is very similar to Symfony's.

    config/  -- Configuration
    lang/    -- Language Yml, Xliff files
    open/    -- Writable directory for caches, logs, ext.
    src/     -- Application sources
    vendor/  -- Vendors
    view/    -- Twig view files
    console  -- Console Tool


You can use Silex controllers $app->get(...) with class controllers.

class Blog extends Controller
     * @Route("/blog/{post}")
    public function post($post)
        return $this->render('post.twig');

Doctrine ORM

You can use all Doctrine ORM functionality, not just DBAL. Create file app/src/Entity/Post.php:

namespace Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

 * @ORM\Entity
class Post
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
    protected $id;

     * @ORM\Column
     * @Assert\NotBlank()
     * @Assert\Length(min = "3", max = "1000")
    protected $text;

After this just run:

app/console schema:update


Use Composer to create a new project:

composer create-project elfet/silicone-skeleton your/app/path

Open directory used for writing caches, logs, ext. So you must give write permissions for www-data user. Example:

sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/open/
sudo chmod +a "[your user name] allow delete,write,append,file_inherit,directory_inherit" app/open/

Add permissions to execute console command. Example:

chmod +x app/console


After configuring console run the following commands to create sample database:

app/console database:create
app/console schema:create


  • Documentation
  • Tests
  • SwiftMailer