Salve galera! Venho fazendo teste e projetos em Symfony e gostaria de compartilhar algumas, dicas, curiosidades e dúvidas que tenho tido. Bem, este tópico é 'endless' e vou incrementando ele conforme descubra mais novidades, espero que sejam úteis para vocês também. E qualquer outra dúvida, por favor comentar.
Showing posts with label Symfony. Show all posts
Showing posts with label Symfony. Show all posts
Saturday, October 20, 2012
Wednesday, October 3, 2012
Symfony: O Porquê do prefíxo ACME?
Salve galera! Esse post é curto e apenas para fins de curiosidade. Quem vem iniciando no Symfony pode se perguntar algumas vezes sobre "Acme é alguma brincadeira ou a galera do framework leva isso à serio"?
Bem, até onde pesquisei não passa de uma empresa fictícia, onde os iniciantes na linguagem podem ter alguns exemplos para utilizar nos seus testes.
No quick tour o termo já aparece por lá, e acredito que seria sensato neste momento a equipe do Symfony adicionar uma pequena nota informando aos iniciantes que "Acme nada mais é do que uma coleção de Bundle inicial para se utilizar como exemplos e referência de uma estrutura de projeto".
De qualquer forma essa informação consta no glossário do Symfony: "Acme is a sample company name used in Symfony demos and documentation. It's used as a namespace where you would normally use your own company's name (e.g. Acme\BlogBundle).", onde pode ser visto aqui.
Bem, se encontrarem algo mais que agregue algum valor a esse texto fiquem à vontade para postar aqui.
Abraços!
Referências:
http://symfony.com/doc/2.0/glossary.html
Bem, até onde pesquisei não passa de uma empresa fictícia, onde os iniciantes na linguagem podem ter alguns exemplos para utilizar nos seus testes.
No quick tour o termo já aparece por lá, e acredito que seria sensato neste momento a equipe do Symfony adicionar uma pequena nota informando aos iniciantes que "Acme nada mais é do que uma coleção de Bundle inicial para se utilizar como exemplos e referência de uma estrutura de projeto".
De qualquer forma essa informação consta no glossário do Symfony: "Acme is a sample company name used in Symfony demos and documentation. It's used as a namespace where you would normally use your own company's name (e.g. Acme\BlogBundle).", onde pode ser visto aqui.
Bem, se encontrarem algo mais que agregue algum valor a esse texto fiquem à vontade para postar aqui.
Abraços!
Referências:
http://symfony.com/doc/2.0/glossary.html
Monday, September 24, 2012
Instalando o Symfony
Olá galera! Hoje, como um bom curioso que sou, fui fazer uma instalação do framework Symfony 2 para fins de testes e um possível uso do mesmo no meu website (www.mdnsolutions.com). Como sempre, há muito o que se aprender com o uso de uma nova ferramenta, então espero quer me apreciem este artigo e aprendam tanto quanto eu.
1 As dependências
Bem, já de cara na página de instalação há várias opções de download do Symfony, eu optei por utilizar o Composer para este fim. Contudo também não tinha o composer instalado (e acredito que nem mesmo vocês), então tive que realizar algumas pequenas tarefas antes de qualquer coisa.
1.1 O Composer
Não irei entrar em detalhes sobre o Composer neste artigo, mas você pode encontrar toda a documentação sobre ele aqui, acho de extrema importância saber como essa ferramenta funciona e estar atento as mudanças que ela esta/irá gerar na forma como os desenvolvedores php lidam com a distribuição de pacotes de suas aplicações.
1.1.1 Instalação
Primeira coisa é fazer o download do executável:
Se alguma mensagem de erro pule em sua tela de uma olhada neste artigo. Caso contrário você deveria esta vendo essa mensagem:
Agora vamos tornar o acesso ao binário que baixou global:
A partir de agora você digitar composer no seu console e verá uma lista de comandos que pode utilizar.
2 O Symfony
2.1 Instalação
Uma vez com o Composer funcionando vamos à instalação do nosso framework.
Lembrando que path/ é o local onde você deseja criar seu projeto ex.: /var/www/meu_sf2. Aqui você vê um log que o comando gera.
2.1 Configuração
Lembre-se que você precisa preferencialmente de um servidor Apache 2 e PHP 5.3.8 ou superiores.
Remova o histórico de git que vem no pacote:
Podemos agora verificar se o nosso ambiente de trabalho atende as especificações de um projeto symfony rodando o comando abaixo ou o script "web/config.php" no endereço onde instalou sua aplicação. No meu caso criei um virtual host chamado "local.sf2" e rodei a url "http://local.sf2/web/config.php". (você pode verificar como criar um virtual host neste artigo).
Ele vai te dar uma ideia dos ajuste que você deveria fazer desde seu servidor apache até algumas variáveis do php.ini (ex. aqui).
No meu caso tive que instalar o Intl, uma extensão de internacionalização para executar collation e date/time/number/currency formatação nos scripts php:
, alterar a linha no nano /etc/php5/apache2/php.ini
2.2 Testando
Bem, seu Symfony neste ponto deveria estar instalado e pronto para rodar. O symfony tem um servidor interno que pode ser iniciado com:
Uma página com sua aplicação rodando deve está aparecendo em sua tela. Bem, é isso symfony rodando sucesso ao iniciar o desenvolvimento de sua aplicação.
Happy coding!
Referências:
http://www.symfony.com/
http://getcomposer.org/
http://packagist.org/
http://php.net/manual/en/intro.intl.php
1 As dependências
Bem, já de cara na página de instalação há várias opções de download do Symfony, eu optei por utilizar o Composer para este fim. Contudo também não tinha o composer instalado (e acredito que nem mesmo vocês), então tive que realizar algumas pequenas tarefas antes de qualquer coisa.
1.1 O Composer
Não irei entrar em detalhes sobre o Composer neste artigo, mas você pode encontrar toda a documentação sobre ele aqui, acho de extrema importância saber como essa ferramenta funciona e estar atento as mudanças que ela esta/irá gerar na forma como os desenvolvedores php lidam com a distribuição de pacotes de suas aplicações.
1.1.1 Instalação
Primeira coisa é fazer o download do executável:
$ curl -s https://getcomposer.org/installer | php
Se alguma mensagem de erro pule em sua tela de uma olhada neste artigo. Caso contrário você deveria esta vendo essa mensagem:
$ curl -s https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...
Composer successfully installed to: /home/medina/composer.phar
Use it: php composer.phar
Agora vamos tornar o acesso ao binário que baixou global:
$ sudo mv composer.phar /usr/local/bin/composer
A partir de agora você digitar composer no seu console e verá uma lista de comandos que pode utilizar.
2 O Symfony
2.1 Instalação
Uma vez com o Composer funcionando vamos à instalação do nosso framework.
$ composer create-project symfony/framework-standard-edition path/ 2.1.2
Lembrando que path/ é o local onde você deseja criar seu projeto ex.: /var/www/meu_sf2. Aqui você vê um log que o comando gera.
2.1 Configuração
Lembre-se que você precisa preferencialmente de um servidor Apache 2 e PHP 5.3.8 ou superiores.
Remova o histórico de git que vem no pacote:
$ rm -rf .git
Podemos agora verificar se o nosso ambiente de trabalho atende as especificações de um projeto symfony rodando o comando abaixo ou o script "web/config.php" no endereço onde instalou sua aplicação. No meu caso criei um virtual host chamado "local.sf2" e rodei a url "http://local.sf2/web/config.php". (você pode verificar como criar um virtual host neste artigo).
$ php ./app/check.php
Ele vai te dar uma ideia dos ajuste que você deveria fazer desde seu servidor apache até algumas variáveis do php.ini (ex. aqui).
No meu caso tive que instalar o Intl, uma extensão de internacionalização para executar collation e date/time/number/currency formatação nos scripts php:
$ sudo apt-get install php5-intl
, alterar a linha no nano /etc/php5/apache2/php.ini
short_open_tag = Off
, instalar o APC do PHP. que você encontra aqui como fazer. E habilitar permissões de escrita para seu apache (nesse caso como é o meu local habilitei com 777)
$ chmod 777 -R app/cache/ $ chmod 777 -R app/logs/
2.2 Testando
Bem, seu Symfony neste ponto deveria estar instalado e pronto para rodar. O symfony tem um servidor interno que pode ser iniciado com:
$ php ./app/console server:run
E então digite em seu browser algo como:
Uma página com sua aplicação rodando deve está aparecendo em sua tela. Bem, é isso symfony rodando sucesso ao iniciar o desenvolvimento de sua aplicação.
Happy coding!
Referências:
http://www.symfony.com/
http://getcomposer.org/
http://packagist.org/
http://php.net/manual/en/intro.intl.php
Saturday, September 8, 2012
[OFF-TOPIC] APC/PHPIZE
Olá meus caros. Estava eu instalando o Symfony Framework em minha máquina de desenvolvimento e para tal tive que instalar o APC do PHP, que por tabela não me pediu para checar o 'phpize'. Bem, ao tentar rodar este último comando recebi a reposta:
Bem, depois de algumas pesquisas descobrir que apenas precisava inserir o verbose:
O tal do APC
Ao tentar instalar o APC tive vários erros pulando na tela constantemente (encontrei vários artigos toscos) tais como "Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data." quando configurava o APC e entrava acessar a tela "web/app_dev.php". Isso ainda gerava no meu log do apache a linha "symfony[notice] child pid 3341 exit signal Segmentation fault (11)". Tudo por causa do maldito pecl.
Enfim, tudo isso desapareceu com um simples comando:
Instalando no MAC OS Lion
Esse cara foi um pouco mais complicado, mas vamos la:
Instale o PEAR primeiramente:
E em seguida o XCode (Via Apple Store) eo autoconfig:
E finalmente o APC:
medina@dev-env:~$ phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
Bem, depois de algumas pesquisas descobrir que apenas precisava inserir o verbose:
medina@dev-env:~$ phpize -v
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
Ridiculamente simples não?
O tal do APC
Ao tentar instalar o APC tive vários erros pulando na tela constantemente (encontrei vários artigos toscos) tais como "Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data." quando configurava o APC e entrava acessar a tela "web/app_dev.php". Isso ainda gerava no meu log do apache a linha "symfony[notice] child pid 3341 exit signal Segmentation fault (11)". Tudo por causa do maldito pecl.
Enfim, tudo isso desapareceu com um simples comando:
medina@dev-env: sudo apt-get install php-apc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
php-apc
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 85.8 kB of archives.
After this operation, 246 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/ondrej/php5/ubuntu/ precise/main php-apc i386 3.1.11-1~precise+1 [85.8 kB]
Fetched 85.8 kB in 2s (40.0 kB/s)
Selecting previously unselected package php-apc.
(Reading database ... 269688 files and directories currently installed.)
Unpacking php-apc (from .../php-apc_3.1.11-1~precise+1_i386.deb) ...
Setting up php-apc (3.1.11-1~precise+1) ...
Caso você já tenha instalado o APC via PECL remova-o com o comando abaixo:
medina@dev-env: sudo pecl uninstall APC
Pronto, agora seu APC agora esta instalado.
Instalando no MAC OS Lion
Esse cara foi um pouco mais complicado, mas vamos la:
Instale o PEAR primeiramente:
sudo php /usr/lib/php/install-pear-nozlib.phar
pear config-set php_ini /private/etc/php.ini
pecl config-set php_ini /private/etc/php.ini
sudo pear upgrade-all
E em seguida o XCode (Via Apple Store) eo autoconfig:
curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz
tar xzf autoconf-latest.tar.gz
cd autoconf-*
./configure --prefix=/usr/local
make
sudo make install
E finalmente o APC:
curl -O http://freefr.dl.sourceforge.net/project/pcre/pcre/8.02/pcre-8.02.tar.gz
tar xvf pcre-8.02.tar.gz
sudo cp pcre-8.02/pcre*.h /usr/include
sudo cp pcre-8.02/pcre.h.generic /usr/include/pcre.h
rm -r pcre-8.02*
export MACOSX_DEPLOYMENT_TARGET=10.7
export CFLAGS="-arch x86_64"
export CXXFLAGS="-arch x86_64"
sudo pecl install apc
Referências:
Subscribe to:
Posts (Atom)