Skip to content
This repository has been archived by the owner on Sep 19, 2018. It is now read-only.

antonmedv/silicone-skeleton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Silicone Skeleton

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

Structure of Silicone is very similar to Symfony's.

app/
    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
web/
    index.php

Controller

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

Install

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

Database

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

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

TODO

  • Documentation
  • Tests
  • SwiftMailer

About

Silicone Skeleton is Silex Framework Edition Skeleton.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages