Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Nasc.

[Resolvido] Namespace

Recommended Posts

Sei que já está resolvido, mas eu tenho um arquivo que tem apenas isso:

 

<?php
   namespace Teste;

   class Teste1 {
   }
?>

 

Quando chamo esse arquivo, ganho uma exceção: "Parse error: syntax error, unexpected T_STRING in ...\namespace.php on line 2"

 

Porque? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo indica ser a versão do PHP.

 

Como os Namespaces foram introduzidos na versão 5.3, se sua versão for inferior a isso, o interpretador não reconhecerá a keyword namespace e assumirá uma string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm, vlw Bruno. A versão do meu é a 5.2.17.

 

Parece que para rodar o PHP no Windows + Apache, a versão deve ser a tal VC6 não é? Se for, só tem a versão 5.2 para download no site do PHP.

 

Isso quer dizer que eu não posso usar namespace por enquanto? Ou eu instalei errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ham????

 

eu rodo php 5.4 no windows sem problema..

 

voce ta instalando errado.. prq não usa o xamppdo windows. 1.7 ja vem com php5.3 prontinho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, durante muito tempo eu instalei tudo na unha também, mas com o tempo percebi que dava muito trabalho atualizar as coisas e desde então passei a usar o XAMPP.

 

Ele é meio grandinho, tem algumas gorduras, mas pra desenvolvimento, pra mim, é tranquilo.

 

Quanto ao VC6 e VC9 eu sempre pensei que o VC9 fosse melhor porque se algo foi compilado com uma versão superior do que outra, teoricamente ela oferece maior estabilidade, correção de bugs e etc.

 

Nunca pude comprovar por mim mesmo. A única coisa que eu sei é que o Apache disponível no site oficial não é compatível com VC9, sendo nesse caso usar a versão do grupo ApacheLounge.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sobre VC6 e VC9, a explicação está na própria página...

Which version do I choose?

If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP

 

If you are using PHP with IIS you should use the VC9 versions of PHP

 

VC6 Versions are compiled with the legacy Visual Studio 6 compiler

 

VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed

 

Do NOT use VC9 version with apache.org binaries

 

VC9 versions of Apache can be fetched at Apache Lounge. We use their binaries to build the Apache SAPIs.

 

 

 

Os links para o VC6 estão no diretório:

 

http://windows.php.net/downloads/releases/archives/

 

obs: nts significa "non thread safe"...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw hinom, mas eu já tinha lido sobre. Só não sabia da questão do Apache Lounge. Baixei aqui e vo tentar instalar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem querer ser chato e estar desviando um pouco o assunto do tópico, mas alguém poderia me ajudar?

 

Eu baixei o Apache Lounge 2.2 para Win 64, instalei e consegui rodar o servidor.

 

Então baixei o PHP 5.4.3 VC9 TS, fiz as configurações, porém sempre me retorna o erro "The requested operation has failed!" do Apache quando iniciado. No entanto, se eu comentar as linhas de carregamento do modulo php, isso é:

 

PHPIniDir "caminhoDaPastaPHP"
LoadModule php5_module "caminhoDaPastaPHP/php5apache2_2.dll"

 

O Apache funciona normalmente.

 

Já testei tanto com barra invertida e com barra normal nos caminhos. A variável de ambiente do Windows já aponta para a pasta do PHP e já reiniciei o PC, porém, mesmo assim coloquei o php.ini e php5ts.dll na pasta System32.

 

Antes eu tinha instalado o Apache 2.4, porém vi na internet que está numa versão beta, que por sinal, não acredito nisso. Então instalei o 2.2, que é a versão atual aqui, mas o mesmo erro continua.

 

Baixei também o PHP 5.3.2 VC9 TS, testei, e não funcionou. Porque não consigo carregar o módulo do PHP?

 

EDIT---

Resolvido! Apenas troquei o Apache de Win 64 para Win 32.

Compartilhar este post


Link para o post
Compartilhar em outros sites
porém, mesmo assim coloquei o php.ini e php5ts.dll na pasta System32.

não faça isso.. pois não fará diferença alguma.. está apenas sujando o sistema operacional

 

lá nos primórdios quando usávamos win98, havia tutoriais errôneos na internet que ensinava a fazer isso, mas sempre foi desnecessário.

 

 

quanto ao funcionamento do php5.4 sob apachelounge.. no próprio site do apachelounge tem as dlls corretas para download.. você fez isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

hinom, reconheço que não é mais necessário, por causa das variáveis de ambiente, se não me engano. Além disso, dois arquivos na pasta do System32 não farão muita diferença no sistema operacional. Que fique lá! kkk :D

 

Eu já consegui fazer funcionar, tanto é que antes estava usando o PHP 5.3, então movi a pasta do 5.4 para substituir essa, em seguida modifiquei o php.ini e funcionou instantaneamente. O problema estava na versão do Apache mesmo!

 

No Apache Lounge, eu apenas baixei o Apache 2.2 para Win 32, e mais nada. Está funcionando, e sei lá, acho que nem precisa mais de nenhuma dll. kkk :)

 

Agora meus namespaces funcionam!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra desenvolvimento apenas você teve um trabalhão desnecessário.

 

O servidor embutido do PHP 5.4 dá e sobra para a maoria das tarefas:

 

php.exe -S localhost:80 -t dir\root\do\servidor -c path\do\php.ini

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com o Bruno, também não sei pra que essa complicação toda, se quisesse algo mais completo, poderia ter instalado o Zend Server, que vem com interface de gerenciamento, Zend Framework, a maioria das extensões, MySQL, etc. Eu uso ele para desenvolvimento. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas por curiosidade. Digamos que eu tenha um arquivo em php numa pasta, e eu queira executa-lo dessa forma, em linha do comando. Quando eu executar ele, o meu navegador será aberto com os resultados? Além disso, é o arquivo php.exe que eu passo parâmetros para ele fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você executa um arquivo via linha de comando o resultado aparece na tela.

 

Agora quando você usa esse servidor interno, você executa direto no browser, tal qual se estivesse com Apache instalado.

 

A única desvantagem que eu achei é que ocupa uma posição no taskbar (poderia ser minimizado pro relógio).

 

Ao que parece, porém, existe algumas diferenças quando seu código depende da informação provida por PHP_SAPI, mas nada que seja um facada no peito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Bruno. Agora vou procurar como funciona isso, daí pra desenvolvimento, não vou mais precisar do Apache.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.