Getting Started with symfony

Configuração do Projeto

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


About

You are currently reading "Getting Started with symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

Tutorial Content

Master symfony

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Books on symfony

Learn more about symfony with the official guides.
books.sensiolabs.com

L'audit Qualité par SensioLabs

200 points de contrôle de votre applicatif web.
audit.sensiolabs.com

Chapter Content

Criação do Projeto

Criação da Aplicação

Permissão das estruturas de diretórios

Configurando o banco de dados

Trocando o ORM para Doctrine

symfony training
Be trained by symfony experts
Feb 21: Köln (Getting Started with Symfony2 - English)
Feb 27: Köln (Mastering Symfony2 - English)
Mar 05: Köln (Web Development with Symfony2 - Deutsch)
Mar 05: Montreal (Web Development with Symfony2 - English)
Mar 05: Montreal (Getting Started with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "Getting Started with symfony" in Brazilian Portuguese for the 1.2 version - Switch to language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
This version of symfony is not maintained anymore.
If some of your projects still use this version, consider upgrading as soon as possible.

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.

Criação do Projeto

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.

Criação da Aplicação

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:

Passando 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.

Permissão das estruturas de diretórios

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/

Configurando o banco de dados

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.

Trocando o ORM para Doctrine

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
Configuração do Web Server »
« Instalação do Symfony

Questions & Feedback

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.