Começando com o Phoenix-framework
Instalação de esqueleto
Às vezes você quer uma instalação sem nada, exceto a configuração mínima do phoenix. O comando follow lhe dará isso.
mix phoenix.new web --no-brunch --no-ecto
Observação: Você deve ter instalado Elixir, Erlang, Hex, Mix e o arquivo Phoenix para instalação do esqueleto
Criando projeto Phoenix
Para criar seu primeiro projeto no framework Phoenix neste ponto você deve ter, Elixir, Erlang, Hex e o arquivo Phoenix instalado. Você também deve ter o PostgreSQL e o node.js instalados para construir um aplicativo padrão.
Abra o terminal ou prompt de comando e vá para o local em seu sistema de arquivos onde você deseja criar aplicativo. phoenix.new
é o comando mix que irá criar um novo projeto para você. Supondo que o nome do nosso aplicativo seja hello_phoenix_world
, digite
$ mix phoenix.new hello_phoenix_world
Alternativamente, podemos executar o mix phoenix.new de qualquer diretório para inicializar nosso aplicativo Phoenix. Phoenix aceitará um caminho absoluto ou relativo para o diretório do nosso novo projeto
$ mix phoenix.new /Users/username/work/elixir-projects/hello_phoenix_world
Resultado
mix phoenix.new hello_phoenix_world
* creating hello_phoenix_world/config/config.exs
* creating hello_phoenix_world/config/dev.exs
* creating hello_phoenix_world/config/prod.exs
...
* creating hello_phoenix_world/web/views/layout_view.ex
* creating hello_phoenix_world/web/views/page_view.ex
Fetch and install dependencies? [Yn]
O Phoenix irá gerar a estrutura de diretórios do seu projeto e criará todos os arquivos necessários para a aplicação. O Mix perguntará se você deseja instalar outras dependências necessárias. Vamos dizer sim a isso.
Fetch and install dependencies? [Yn] Y
* running mix deps.get
* running npm install && node node_modules/brunch/bin/brunch build
Depois que as dependências forem instaladas, a tarefa solicitará que você mude para o diretório do nosso projeto e inicie o aplicativo.
Move into your new project folder:
$cd hello_phoenix_world
Agora você precisa configurar o nome de usuário e a senha do postgres, a menos que já esteja configurado com o useranme e a senha do postgres padrão. Edite seu arquivo config/dev.exs
e defina o nome de usuário e a senha:
# config/dev.exs
config :hello_phoenix_world, HelloPhoenixWorld.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "hello_phoenix_world_dev",
hostname: "localhost",
pool_size: 10
Now, create the database with the ecto mix task:
$ mix ecto.create
We have a working application! Run your Phoenix application:
$ mix phoenix.server
You can also run your app inside IEx (Interactive Elixir) as:
$ iex -S mix phoenix.server
Load `http://localhost:4000` into your browser and you will see the default landing page of your application.
Agora, vamos adicionar hello world ao aplicativo Phoenix. Abra o arquivo web/templates/page/index.html.eex
e substitua o conteúdo pelo seguinte e salve o arquivo:
<h2>Hello World</h2>
Se você não saiu do servidor, o novo código será compilado automaticamente e seu navegador deverá exibir a mensagem “Hello World”.
Agora você pode [criar recurso CRUD](https://www.wikiod.com/pt/phoenix-framework/comecando-com-o-phoenix-framework#Gerando recursos para um modelo ).
Finalmente, para sair do servidor, digite ctrl-c
crtl-c
(pressione a tecla control
e a tecla c
juntas) duas vezes seguidas.
Instalação
Phoenix framework é escrito em Elixir, e o próprio Elixir é baseado na linguagem Erlang e aproveita a VM Erlang, conhecida por executar sistemas de baixa latência, distribuídos e tolerantes a falhas. Ambas as linguagens são necessárias para usar o framework phoenix. Seguindo o passo a seguir para instalar o framework phoenix:
1. Instale o Elixir em sua máquina. Veja Instalação do Elixir e como instalar o guia do Elixir.
2. Instale o gerenciador de pacotes Hex. Hex é uma ferramenta necessária para executar um aplicativo Phoenix e instalar quaisquer dependências extras que possamos precisar ao longo do caminho. No seu terminal ou janela de controle de comando, digite:
$ mix local.hex
Este comando instalará ou atualizará o Hex, se você já o tiver.
3. Instale o Erlang em sua máquina. Sem Erlang, o código do Elixir não será compilado porque o Elixir usa a VM do Erlang para compilação do código. Quando você instalar o Elixir, você provavelmente instalou o Erlang também, mas se não for o caso, siga estas instruções no guia do Elixir para instalar o Erlang. No entanto, se você possui um sistema baseado em Debian, pode ser necessário instalar explicitamente o Erlang.
$ wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb && sudo dpkg -i erlang-solutions_1.0_all.deb
$ sudo apt-get update
$ sudo apt-get install esl-erlang
4. Instale o framework phoenix em sua máquina. Assim que tivermos Elixir e Erlang, estaremos prontos para instalar o arquivo Phoenix Mix. Um arquivo Mix é um arquivo Zip que contém um aplicativo, bem como seus arquivos BEAM compilados. Ele está vinculado a uma versão específica do aplicativo. O arquivo é o que usaremos para gerar um novo aplicativo Phoenix básico a partir do qual podemos construir. Aqui está o comando para instalar o arquivo Phoenix:
$ mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Você pode baixar pacotes manualmente, se o comando acima não funcionar corretamente para você. Baixe os pacotes para o seu sistema de arquivos arquivos Phoenix e execute o seguinte comando
mix archive.install /path/to/local/phoenix_new.ez
5 Plug, Cowboy e Ecto são componentes do framework Phoenix, eles serão instalados automaticamente pelo mix, se você deixar o mix instalar suas dependências, quando você criar os projetos Phoenix pela primeira vez. Além disso, se você não permitir que o mix baixe esses componentes, o mix lhe dirá como fazer isso mais tarde.
6. Instale o Node.js (não menos que v5.0.0) em sua máquina. Esta é uma dependência opcional. Node.js é necessário para instalar dependências brunch.io. Brunch.io é usado pelo Phoenix para compilar ativos estáticos (javascript, css, etc), por padrão.
Podemos obter o node.js da página de download. Ao selecionar um pacote para download, é importante observar que o Phoenix requer a versão 5.0.0 ou superior.
Os usuários do Mac OS X também podem instalar o node.js via homebrew.
Observação: io.js, que é uma plataforma compatível com npm originalmente baseada em Node.js, não funciona com Phoenix.
Os usuários do Debian/Ubuntu podem ver um erro parecido com este:
sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
Isso se deve ao fato de o Debian ter binários conflitantes para o nó: veja a discussão sobre a seguinte pergunta SO
http://stackoverflow.com/questions/21168141/cannot-install-packages-using-node-package-manager-in-ubuntu
Existem duas opções para corrigir esse problema:
instale o nodejs-legacy:
$ apt-get install nodejs-legacy
ou criar um link simbólico
$ ln -s /usr/bin/nodejs /usr/bin/node
7 Instale o Banco de Dados (PostgreSQL) em sua máquina. O Phoenix configura os aplicativos para usá-lo por padrão, mas podemos alternar para MySQL passando o sinalizador --database mysql
ao criar um novo aplicativo. O wiki do PostgreSQL tem guias de instalação para vários sistemas diferentes.
O Postgrex é uma dependência direta do Phoenix e será usado para criar modelos. Postgrex será instalado automaticamente junto com o restante das dependências quando você criar e iniciar o projeto Phoenix.
8 inotify-tools (para usuários linux) Este é um observador do sistema de arquivos somente para Linux que o Phoenix usa para recarregar o código ao vivo. (Usuários de Mac OS X ou Windows podem ignorá-lo com segurança.)
Os usuários do Linux precisam instalar essa dependência. Consulte o inotify-tools wiki para obter instruções de instalação específicas da distribuição.
Executando Elixir/Phoenix no OSX
Elixir/Fênix
Instale o Homebrew primeiro:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Em seguida, executar o brew install elixir
instalará o Elixir e sua dependência - Erlang.
Instale mix com mix local.hex
.
Instale o Phoenix conforme as instruções:
mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
Node.js
Você pode instalar e gerenciar suas versões do Node.js com o NVM. Instale nvm com:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash
Se curl
não estiver disponível, você pode instalá-lo com brew install curl
. Então corra:
nvm install node
para baixar e compilar a versão mais recente do Node.js.
Base de dados
Baixe Postgres.app e execute-o. Quando você cria seu projeto Phoenix, em seu arquivo config/dev.exs
, você só precisa fornecer um nome para seu banco de dados - o adaptador usará valores padrão para o resto:
config :myphoenixapp, MyPhoenixApp.Repo,
adapter: Ecto.Adapters.Postgres,
database: "myphoenixapp_dev",
hostname: "localhost",
pool_size: 10
Gerando recursos para um modelo
Para gerar esquema, visão, controlador, arquivo de migração para o repositório, modelos CRUD padrão e arquivos de teste para um modelo (como um scaffolding no Rails), pode-se usar a tarefa mix phoenix.gen.html
como esta:
mix phoenix.gen.html Book books title note:text pages:integer author_id:references:authors
Onde Book
é o nome do módulo, books
é a forma plural usada para esquema, seguido pelos campos de recursos: title
(string por padrão), note
(campo de texto), pages
(inteiro), author_id
que cria uma associação belongs_to
com o modelo Author.