Simples esqueleto para Silex v1.3.4, neste esqueleto temos configuração para Doctrine 2
, Monolog
, Twig
e Route
Para configurar as rotas do sistema basta adiciona-las no arquivo config/routes.yml
home:
routeName: 'home'
pattern: /home
method: [ 'get', 'post' ]
controller: 'Foo\Controllers\FooController::getAction'
Com esta configuração o sistem será capaz de configurar as rotas, para mais informações veja neste link: GitHub
Podemos ter mais de um amiente na aplicação por exemplo development
, homolog
e prodution
o arquivo, config/doctrine.yml
tem as configurações para estes três ambientes, com o uso da lib dflydev/doctrine-orm-service-provider
, para mais informações GitHub
No arquivo config/monolog.yml também tem as configurações dos três ambientes development
, homolog
e prodution
, cada
ambiente com um retorno diferente de log, para saber mais sobre Monolog GitHub
O arquivo console.php fornece todos os comandos suportado pelo esqueleto, podemos encontrar comando do Doctrine e das Migrations.
config \
config.yml
doctrine.yml
monolog.yml
routes.yml
data \
DoctrineMigrations \
.gitignore
DoctrineOrm \
Proxy \
.gitignore
log \
.gitignore
public \
index.php
src \
Skel \
Controller \
Index.php
Entity
User.php
tests \
src \
Skel \
.gitignore
views \
index \
index.twig
layout \
layout.twig
.gitignore
bootstrap.php
composer.json
composer.lock
console.php
phpunit.xml
Na hora de configurar o apache ou nginx, basta apontar o document root
para a pasta public
, nesta pasta tem um arquivo chamado index.php
é este arquivo que inicia toda a aplicação.
<VirtualHost *:80>
ServerName meusite.localhost
DocumentRoot /path/to/silex-skel/public
SetEnv APPLICATION_ENV "development"
<Directory /path/to/silex-skel/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
server {
server_name meusite.localhost;
root /path/to/silex-skel/public;
location / {
# try to serve file directly, fallback to front controller
try_files $uri /index.php$is_args$args;
}
# If you have 2 front controllers for dev|prod use the following line instead
# location ~ ^/(index|index_dev)\.php(/|$) {
location ~ ^/index\.php(/|$) {
# the ubuntu default
fastcgi_pass unix:/var/run/php5-fpm.sock;
# for running on centos
#fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
# Prevents URIs that include the front controller. This will 404:
# http://domain.tld/index.php/some-path
# Enable the internal directive to disable URIs like this
# internal;
}
#return 404 for all php files as we do have a front controller
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}