![]() |
|
Getting Started with symfonyConfiguração do Projeto |
|
You are currently reading "Getting Started with symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

|
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. |
No symfony, as aplicações que compartilham o mesmo modelo de dados são reagrupadas em projetos. Para a maioria dos projetos, você vai precisar de duas aplicações diferentes: um frontend e backend.
A partir da pasta sfproject/, execute o comando symfony generate:project para criar o novo projeto symfony.
$ php lib/vendor/symfony/data/bin/symfony generate:project NOME_DO_PROJETO
No Windows:
c:\> php lib\vendor\symfony\data\bin\symfony generate:project NOME_DO_PROJETO
A tarefa generate:project gera uma estrutura de diretórios padrão com os arquivos necessários para o projeto:
| Diretório | Descrição |
|---|---|
apps/ |
Onde fica as aplicações do projeto |
cache/ |
Arquivos cache do framework |
config/ |
Arquivos de configuração do projeto |
lib/ |
Bibliotecas e classes do projeto |
log/ |
Arquivos de log do framework |
plugins/ |
Plugins instalados |
test/ |
Arquivos de teste unitário e funcional |
web/ |
O diretório raiz (veja abaixo) |
NOTA Por que o symfony gera tantos arquivos? Um dos maiores benefícios de utilizar um framework "full-stack" (framework que oferece tudo que você precisa para desenvolver um portal em um único lugar) é padronizar o desenvolvimento. Graças a estrutura padrão de arquivos e diretórios que qualquer desenvolvedor, com pouco conhecimento do symfony, consegue dar manutenção em qualquer projeto do symfony. Em questão de minutos ele vai conseguir navegar pelo cógido, promover correções e adicionar novas funcionalidades.
A tarefa generate:project também gerou um atalho symfony no diretório raiz do projeto visando diminuir o número de caracteres que você digita ao executar as tarefas.
Então, a partir de agora, ao invés de utilizar o caminho inteiro para o "binário" do symfony, você pode simplesmente utilizar o atalho symfony.
Agora, vamos criar a aplicação frontend utilizando a tarefa generate:app:
$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend
DICA Já que o atalho
symfonyé um binário, usuários do Unix podem substituir todas as ocorrências de 'php symfony' por './symfony' de agora em diante.No windows você pode copiar o '
symfony.bat' para o seu projeto e utilizar 'symfony' ao invés de 'php symfony':c:\> copy lib\vendor\symfony\data\bin\symfony.bat .
Baseado no nome da aplicação que passamos como argumento, a tarefa generate:app cria a estrutura de diretório padrão que será utilizada dentro do diretório apps/frontend/:
| Diretório | Descrição |
|---|---|
config/ |
Arquivos de configuração do projeto |
lib/ |
Bibliotecas e classes do projeto |
modules/ |
Código da aplicação (MVC) |
templates/ |
Arquivos globais do template |
DICA Quando chamamos a tarefa
generate:app, você pode opcionalmente passar duas opções relacionadas à segunça:
--escaping-strategy: Escapa as saídas evitando atacques XSS--csrf-secret: Habilita "tokens de sessão" nos formulários evitando ataques CSRFPassando esses dois parâmetros opcionais você certifica a segurança contra as vulnerabilidades mais conhecidas na web. É claro, o symfony vai automaticamente tomar medidas de segurança em seu nome.
Se você souber algo sobre XSS ou CSRF, tire um tempo para aprender um pouco sobre vulnerabilidades e segurança.
Antes de tentar acessar o projeto criado, você precisa setar a permissão dos diretórios cache/ e log/ para que seu webserver possa escrever:
$ chmod 777 cache/ log/
Dica para os que usam a ferramenta SCM
symfony só escreve dentro de dois diretórios diferentes do projeto,
cache/elog/. O conteúdo desses diretórios podem ser ignorados pelo SCM (editando a propriedadesvn:ignoredo Subversion por exemplo).
Uma das primeiras coisas que você vai querer configurar é a conexão do banco de dados com seu projeto. O symfony suporta todos os bancos de dados baseados no PDO. Dessa maneira, (MySQL, PostgreSQL, SQLite, Oracle, MSSQL, ...). O symfony vem com duas ferramentas ORM: Propel e Doctrine. Propel é o padrão, mas trocar para o Doctrine é muito fácil (veja a próxima seção).
Configurando o banco de dados utilizando a tarefa configure:database:
$ php symfony configure:database "mysql:host=localhost;dbname=dbname" root mYsEcret
A tarefa configure:database utiliza tres argumentos: PDO DSN. o usuário e a senha. Se você não precisa de senha para acessar o banco no servidor de desenvolvimento, simplesmente omita o terceiro argumento.
Caso você decida utilizar o Doctrine ao invés do Propel, você precisa habilitar o plugin sfDoctrinePlugin e desabilitar o sfPropelPlugin. Isso pode ser feito trocando a seguinte linha no arquivo config/ProjectConfiguration.class.php:
public function setup() { $this->enableAllPluginsExcept(array('sfPropelPlugin', 'sfCompat10Plugin')); }
Depois de fazer estas alterações, execute os seguintes comandos:
$ php symfony plugin:publish-assets
$ php symfony cc
$ rm web/sfPropelPlugin
$ rm config/propel.ini
$ rm config/schema.yml
$ rm config/databases.yml
Agora, execute o seguinte comando para configura o banco de dados com Doctrine:
$ php symfony configure:database --name=doctrine --class=sfDoctrineDatabase "mysql:host=localhost;dbname=jobeet" root mYsEcret
If you find a typo or an error, please register and open a ticket.
If you need support or have a technical question, please post to the official user mailing-list.