Simfony 2 + OSX Mavericks
Autor: Mario Cezzare Angelicola Chiodi | Publicado: 2014-09-20T22:12:00-07:00

Entre consultorias, pintou um simfony p/ resolver, ok. Tempos sem escrever &nbsp;aqui.

Quer começar seus estudos com Simfony2 no mac osX.

Vamos lá:

Baixe a última versão do Xcode disponível e compatível com sua versão do OSX.

Baixe um gerenciador de pacotes ports-like. 
Tem o MacPorts e o HomeBrew&nbsp;, escolha um deles, eu prefiro e uso o MacPorts.
uso: port install ...

O mac osx já traz no seu php uma versão do pear pronta p/ instalar :



1 habilite o pear




Localize ond está o pear e as libs do php
$php -i | grep include_path



include_path =&gt; .:/php/includes/:/usr/lib/php/pear =&gt; .:/php/includes/:/usr/lib/php/pear


Vá na pasta /usr/lib/php e execute o arquivo install-pear-nozlib.phar

$php&nbsp;install-pear-nozlib.phar

agora vc tem o utilitário pecl .





2 se não tiver o composer baixe e instale :

Baixe e coloque junto com os binários de acesso comum
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer





3 - Baixe o esquema do simfony pelo composer
Veja em http://symfony.com/doc/current/quick_tour/the_big_picture.html

Seguindo os tour, e fazendo o 1º projeto , talvez o simfony reclame de algumas dependências&nbsp;

1 - TimeZone&nbsp;

2 - intl

3 - Optimizador de Cache




Resolvendo&nbsp;




1 &nbsp;- Timezone
Abra o arquivo /etc/php.ini e .defina o seu timezone.



date.timezone =America/Sao_Paulo





2 - INTL
Instale o intl

$sudo pecl update-channels



$sudo pecl install intl

se reclamar :











configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.



$sudo port -v install icu

$sudo port -v install pcre


Se deu certo você verá



Build process completed successfully

Installing '/usr/lib/php/extensions/no-debug-non-zts-20100525/intl.so'

about to commit 1215 file operations for intl

successfully committed 1215 file operations

install ok: channel://pecl.php.net/intl-3.0.0

configuration option "php_ini" is not set to php.ini location

You should add "extension=intl.so" to php.ini


Adicione essa opção no php.ini
Marios-Mac-Pro:php surfer$ sudo vi /etc/php.ini

e por volta da linha&nbsp;862 adicione
extension=intl.so


Confira se habilitou

$ php -i | grep intl

intl

intl.default_locale =&gt; no value =&gt; no value

intl.error_level =&gt; 0 =&gt; 0
























intl.use_exceptions =&gt; 0 =&gt; 0






3 - Instale o APC


$sudo&nbsp;pecl install apc



se você tiver esse erro :

In file included from /private/tmp/pear/temp/APC/apc.c:45:

/usr/include/php/ext/pcre/php_pcre.h:29:10: fatal error: 'pcre.h' file not found

#include "pcre.h"

&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; ^

1 error generated.

make: *** [apc.lo] Error 1

rolling back 211 file operations



ERROR: `make' failed



Talvez precise fazer 2 coisas:


1 - Baixe o command line tools mais atual da versão do seu Xcode no site da apple









Eu vi vários comentários absurdos na internet, inclusive em fóruns respeitados pela comunidade.
Não vi ninguém procurar esse arquivo local.
O pacote está procurando a lib pcre.h no lugar errado. Veja os diretórios de Include -I (&nbsp;-I. -I/private/tmp/pear/temp/APC -DPHP_ATOM_INC -I/private/tmp/pear/temp/pear-build-rootH9ph8q/APC-3.1.13/include -I/private/tmp/pear/temp/pear-build-rootH9ph8q/APC-3.1.13/main -I/private/tmp/pear/temp/APC -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/li)

Procurando local : obs: se você já fez alguma instalação pelo ports, esse arquivo já existe em sua maquina , e as dependências &nbsp;também.


$ sudo find / -name "pcre.h"


/opt/local/include/pcre.h .

Resolvendo o problema da compilação :

Vá no diretório /usr/include/ e adicione os alias p/ as libpcre* q estão no diretório encontrado.



Marios-Mac-Pro:include surfer$ pwd



/usr/include

$sudo ln -s /opt/local/include/pcre* .



Confira se criou&nbsp;

Marios-Mac-Pro:include surfer$ ls -laoh | grep pcre

lrwxr-xr-x&nbsp; &nbsp; 1 root&nbsp; &nbsp; 25B Sep 21 00:55 pcre.h -&gt; /opt/local/include/pcre.h

lrwxr-xr-x&nbsp; &nbsp; 1 root&nbsp; &nbsp; 33B Sep 21 00:55 pcre_scanner.h -&gt; /opt/local/include/pcre_scanner.h

lrwxr-xr-x&nbsp; &nbsp; 1 root&nbsp; &nbsp; 37B Sep 21 00:55 pcre_stringpiece.h -&gt; /opt/local/include/pcre_stringpiece.h

lrwxr-xr-x&nbsp; &nbsp; 1 root&nbsp; &nbsp; 28B Sep 21 00:55 pcrecpp.h -&gt; /opt/local/include/pcrecpp.h

lrwxr-xr-x&nbsp; &nbsp; 1 root&nbsp; &nbsp; 31B Sep 21 00:55 pcrecpparg.h -&gt; /opt/local/include/pcrecpparg.h

lrwxr-xr-x&nbsp; &nbsp; 1 root&nbsp; &nbsp; 30B Sep 21 00:55 pcreposix.h -&gt; /opt/local/include/pcreposix.h





Chame a instalação do apc de novo:

$sudo&nbsp;pecl install apc

Se não souber o q são as perguntas (opções do cache), apenas pressione enter até continuar compilando



e... se deu tudo certo você verá:

Build process completed successfully

Installing '/usr/include/php/ext/apc/apc_serializer.h'

+ create dir /usr/include/php/ext/apc

Installing '/usr/lib/php/extensions/no-debug-non-zts-20100525/apc.so'

about to commit 213 file operations for APC

successfully committed 213 file operations

install ok: channel://pecl.php.net/APC-3.1.13

configuration option "php_ini" is not set to php.ini location



You should add "extension=apc.so" to php.ini



Adicione essa opção no php.ini
Marios-Mac-Pro:php surfer$ sudo vi /etc/php.ini

e adicione por volta da linha&nbsp;863
extension=apc.so



Confira se habilitou :


$ php -i | grep apc

.....



Se deu tudo certo. ao rodar o check pós criação do projeto, você deve receber essa mensagem:



Marios-Mac-Pro:simfony surfer$ cd simfony/

Marios-Mac-Pro:simfony surfer$ php app/check.php&nbsp;



Symfony2 Requirements Checker

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



&gt; PHP is using the following php.ini file:

&nbsp; /etc/php.ini



&gt; Checking Symfony requirements:

&nbsp; ......................................



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp;[OK] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp;Your system is ready to run Symfony2 projects&nbsp;


Veja o esquema de demonstração da aplicação criada:

Marios-Mac-Pro:simfony surfer$ php app/console server:run


Server running on http://127.0.0.1:8000



Acesse pelo navegador&nbsp;




OBS: Fiz o processo paralelo em um debian, meu ambiente de dev, e a sequência, foi a mesma,

apenas instalando o pacote libpcre3-dev (p/ compilar o apc), e adicionando as extensões nos 2 php.ini (cli e apache)

obtive o mesmo resultado com as seguintes recomendações que ficam p/ outro post:





&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp;[OK] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp;Your system is ready to run Symfony2 projects
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 

Optional recommendations to improve your setup
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

&nbsp;* When using the logout handler from the Symfony Security Component,
&nbsp; &nbsp;you should have at least PHP 5.4.11 due to PHP bug #63379 (as a
&nbsp; &nbsp;workaround, you can also set invalidate_session to false in the
&nbsp; &nbsp;security logout handler configuration)
&nbsp; &nbsp;&gt; Install PHP 5.4.11 or newer if your project uses the logout
&nbsp; &nbsp;&gt; handler from the Symfony Security Component.

&nbsp;* You should use PHP 5.3.18+ or PHP 5.4.8+ to always get nice error
&nbsp; &nbsp;messages for fatal errors in the development environment due to PHP
&nbsp; &nbsp;bug #61767/#60909
&nbsp; &nbsp;&gt; Install PHP 5.3.18+ or PHP 5.4.8+ if you want nice error messages
&nbsp; &nbsp;&gt; for all fatal errors in the development environment.

&nbsp;* short_open_tag should be disabled in php.ini
&nbsp; &nbsp;&gt; Set short_open_tag to off in php.ini*.




Bons estudos. Qualquer dúvida, poste aqui.

Até a próxima &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;