MeuMySQL Blog is now at http://blog.mdnsolutions.com/.
Showing posts with label Symfony. Show all posts
Showing posts with label Symfony. Show all posts

Saturday, October 20, 2012

FAQ Symfony - Dicas Quentes

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.


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

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:

$ 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:

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: