mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-23 22:52:12 +01:00
456 lines
21 KiB
XML
456 lines
21 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- EN-Revision: fecf93309b34b59e23dda35530d83b0f1b05ab84 Maintainer: leonardolara Status: ready --><!-- CREDITS: felipe, surfmax, diegopires, fibbarth -->
|
|
|
|
<appendix xml:id="history" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>História do PHP e Projetos Relacionados</title>
|
|
<para>
|
|
O PHP já percorreu um longo caminho desde seu nascimento em meados da década de 1990.
|
|
De origens humildes até se tornar uma das mais proeminentes
|
|
linguagens que alimentam a web, a evolução do PHP é um conto
|
|
de fadas geek. Lembre-se, esse crescimento explosivo não foi fácil.
|
|
Aqueles que se interessam em ver brevemente como PHP cresceu
|
|
para se tornar o que é hoje, continue lendo. Se gostaria de tocar um pedaço
|
|
da história da internet, você pode encontrar antigas versões do PHP
|
|
no <link xlink:href="&url.php.museum;">Museu do PHP</link>.
|
|
</para>
|
|
|
|
<sect1 xml:id="history.php">
|
|
<title>História do PHP</title>
|
|
|
|
<sect2 xml:id="history.phpfi">
|
|
<title>PHP Tools, FI, Kit de Construção, e PHP/FI</title>
|
|
<para>
|
|
O PHP como é conhecido hoje, é na verdade o sucessor para um
|
|
produto chamado PHP/FI. Criado em 1994 por Rasmus Lerdof,
|
|
a primeira encarnação do PHP foi um simples conjunto
|
|
de binários Common Gateway Interface (CGI) escrito em
|
|
linguagem de programação C. Originalmente usado para
|
|
acompanhamento de visitas para seu currículo online,
|
|
ele nomeou o conjunto de scripts de "Personal Home Page Tools" mais frequentemente referenciado como "PHP Tools."
|
|
Ao longo do tempo, mais funcionalidades foram desejadas, e Rasmus
|
|
reescreveu o PHP Tools, produzindo uma implementação maior e mais rica.
|
|
Este novo modelo foi capaz de interações com Banco de Dados e mais,
|
|
fornecendo uma estrutura na qual os usuários poderiam desenvolver aplicações web
|
|
simples e dinâmicas, como um livro de visitas. Em junho de 1995,
|
|
Rasmus <link xlink:href="&url.php.release1.0.0;">liberou</link>
|
|
o código fonte do PHP Tools para o público, o que permitiu
|
|
que desenvolvedores usassem da forma como desejassem. Isso permitiu — e encorajou
|
|
— usuários a fornecerem correções para problemas no código, e em geral,
|
|
aperfeiçoá-lo.
|
|
</para>
|
|
<para>
|
|
Em setembro do mesmo ano, Rasmus expandiu o PHP e — por um breve período
|
|
— mudou o nome PHP. Agora referindo-se a ferramenta como FI,
|
|
abreviação para "Forms Interpreter", a nova implementação
|
|
incluiu algumas funcionalidades básicas do PHP como bem conhecemos
|
|
hoje. Tinha variáveis no estilo Perl, interpretação automática de
|
|
variáveis de formulários, e sintaxe HTML embutida. A sintaxe em si era muito
|
|
similar à do Perl, porém muito mais limitada, simples, e um pouco inconsistente.
|
|
De fato, para embutir o código em um arquivo HTML, desenvolvedores tinham que usar comentários
|
|
HTML. Embora este método não tenha sido inteiramente
|
|
bem-recebido, FI continuou a desfrutar de um crescimento
|
|
e uma aceitação como uma ferramenta CGI — mas ainda não como uma linguagem.
|
|
Contudo, isso começou a mudar no mês seguinte; em outubro de 1995 Rasmus liberou
|
|
uma completa reescrita do código. Trazendo de volta o nome PHP, estava agora (brevemente) nomeado
|
|
como "Personal Home Page Contruction
|
|
Kit" e foi o primeiro lançamento a vangloriar-se de que era, na época,
|
|
considerado um script avançado de interface. A linguagem foi
|
|
desenvolvida para, deliberadamente, ser parecida com C, tornando-a fácil
|
|
de ser adotada por desenvolvedores habituados com C, Perl e linguagens similares.
|
|
Tendo sido até este momento exclusiva para sistemas UNIX e sistemas compatíveis com POSIX,
|
|
o potencial para uma implementação em um Windows NT começava a ser explorada.
|
|
</para>
|
|
<para>
|
|
O código tem outra reforma completa, e em abril de 1996,
|
|
combinando os nomes dos últimos lançamentos, Rasmus introduziu
|
|
o PHP/FI. Esta segunda geração da implementação começou realmente
|
|
a evoluir o PHP a partir de um conjunto de ferramentas para sua própria linguagem de programação.
|
|
Ele incluía suporte embutido aos banco de dados DBM, mSQL, e Postgres95,
|
|
cookies, funções de apoio definidas pelo usuário, e muito mais.
|
|
Em junho, o PHP/FI ganhou o status de versão 2.0. Um interessante fato
|
|
sobre isso, porém, é que existia apenas um única completa versão do PHP 2.0.
|
|
Quando finalmente se tornou um status beta em novembro de 1997, o mecanismo
|
|
de análise subjacente já estava inteiramente reescrito.
|
|
</para>
|
|
<para>
|
|
Apesar de ter tido um curto período de desenvolvimento, ele continuava
|
|
a desfrutar de uma crescente popularidade em um mundo web ainda jovem e em desenvolvimento.
|
|
Em 1997 e 1998, PHP/FI teve o apoio de milhares de usuários
|
|
ao redor do mundo.
|
|
Uma pesquisa da Netcraft em maio de 1998 indicou que cerca de 60.000 domínios
|
|
relataram ter cabeçalhos contendo "PHP",
|
|
indicando que o servidor de hospedagem de fato tinha o PHP instalado.
|
|
Este número pode ser equiparado com aproximadamente 1% de todos os domínios
|
|
da Internet da época. Apesar destes números impressionantes, o amadurecimento
|
|
do PHP/FI foi condenado a limitações; enquanto havia vários contribuintes menores,
|
|
ainda era desenvolvido principalmente por uma única pessoa.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Exemplo de código PHP/FI</title>
|
|
<programlisting role="html">
|
|
<![CDATA[
|
|
<!--include /text/header.html-->
|
|
|
|
<!--getenv HTTP_USER_AGENT-->
|
|
<!--ifsubstr $exec_result Mozilla-->
|
|
Hey, you are using Netscape!<p>
|
|
<!--endif-->
|
|
|
|
<!--sql database select * from table where user='$username'-->
|
|
<!--ifless $numentries 1-->
|
|
Sorry, that record does not exist<p>
|
|
<!--endif exit-->
|
|
Welcome <!--$user-->!<p>
|
|
You have <!--$index:0--> credits left in your account.<p>
|
|
|
|
<!--include /text/footer.html-->
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="history.php3">
|
|
<title>PHP 3</title>
|
|
<para>
|
|
PHP 3.0 foi a primeira versão que se assemelhava com o PHP como existe
|
|
hoje. PHP/FI encontrava-se ainda ineficiente e não tinha os recursos que precisavam
|
|
para prover uma aplicação de comércio eletrônico que estavam desenvolvendo para um
|
|
projeto da Universidade. Andi Gutmans e
|
|
Zeev Suraski de Tel Aviv, Israel, começaram
|
|
outra completa reescrita do interpretador em 1997.
|
|
Abordando Rasmus online, eles discutiram vários aspectos para a
|
|
implementação e o desenvolvimento do PHP. Em um esforço para melhorar o mecanismo
|
|
e iniciar a construção sobre a base de usuários existentes
|
|
do PHP/FI, Andi, Rasmus, e Zeev decidiram colaborar no desenvolvimento
|
|
de uma linguagem de programação nova e independente.
|
|
Essa nova linguagem foi lançada com um novo nome, que removeu
|
|
a impressão do uso pessoal limitado que o nome PHP/FI 2.0 tinha mantido.
|
|
Foi renomeado simplesmente para 'PHP', com o significado se tornando
|
|
um acrônimo recursivo — PHP: Hypertext Preprocessor.
|
|
</para>
|
|
<para>
|
|
Um dos maiores pontos fortes do PHP 3.0 foram os fortes recursos de
|
|
extensibilidade. Além de fornecer a usuários finais uma interface robusta
|
|
para múltiplos banco de dados, protocolos e APIs, a facilidade
|
|
de estender a sua própria linguagem atraiu dezenas de desenvolvedores
|
|
que submeteram uma variedade de módulos. Indiscutivelmente, esta foi
|
|
a chave para o PHP 3.0 ter sido um tremendo sucesso. Outro recurso chave
|
|
introduzido no PHP 3.0 foi o suporte à programação orientada
|
|
a objeto e a uma mais poderosa e consistentes sintaxes de linguagem.
|
|
</para>
|
|
<para>
|
|
Em junho de 1998, com muitos novos desenvolvedores ao redor do mundo unindo
|
|
esforços, o PHP 3.0 foi anunciado pelo novo time de desenvolvimento
|
|
como o sucessor oficial para o PHP/FI 2.0. As melhorias no PHP/FI 2.0,
|
|
cessaram em novembro do ano anterior e ele foi oficialmente finalizado.
|
|
Depois de nove meses de testes abertos ao público, quando o anúncio do lançamento
|
|
oficial do PHP 3.0 chegou, prontamente foi instalado em
|
|
70.000 domínios em todo mundo,
|
|
e já não era mais limitado aos sistemas
|
|
operacionais compatíveis com o POSIX.
|
|
Uma parcela relativamente pequena de domínios informaram que o PHP foi instalado
|
|
em servidores executando Windows 95, 98 e NT e Macintosh. Em seu pico,
|
|
o PHP 3.0 foi instalado em aproximadamente 10%
|
|
dos servidores web da internet.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="history.php4">
|
|
<title>PHP 4</title>
|
|
<para>
|
|
No inverno de 1998, logo após o PHP 3.0 ter sido oficialmente
|
|
lançado, Andi Gutmans e Zeev Suraski começaram a trabalhar
|
|
em uma reescrita do núcleo do PHP. Os objetivos do projeto
|
|
eram melhorar o desempenho das aplicações complexas e melhorar
|
|
a modularização do código base do PHP. Tais aplicações só foram
|
|
possíveis pelos novos recursos e suporte a uma ampla
|
|
variedade de bancos de dados de terceiros e APIs do PHP 3.0, mas o PHP 3.0 não foi projetado para trabalhar com aplicações
|
|
complexas de forma eficiente.
|
|
</para>
|
|
<para>
|
|
O novo mecanismo, chamado 'Zend Engine' (composto pelos primeiros
|
|
nomes, Zeev e Andi), alcançou os objetivos do projeto com sucesso
|
|
e foi introduzido em meados de 1999. O PHP 4.0, baseado neste mecanismo
|
|
e com uma variedade de novos recursos adicionais, foi oficialmente
|
|
lançado em maio de 2000,
|
|
quase dois anos após seu antecessor. Além
|
|
da altíssima melhoria de desempenho nesta versão, o PHP 4.0 incluiu
|
|
outros recursos chaves, tais como suporte para maioria dos servidores
|
|
web, sessões HTTP, saídas com buffer, mais maneiras seguras de manipular
|
|
dados de entrada de usuários e diversas novas construções de linguagem.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="history.php5">
|
|
<title>PHP 5</title>
|
|
<para>
|
|
O PHP 5 foi lançado em julho de 2004 após um longo desenvolvimento e vários
|
|
pré-lançamentos. Foi impulsionado principalmente pelo seu núcleo, o
|
|
<literal>Zend Engine 2.0</literal>, com um novo modelo de objeto
|
|
e dezenas de outros novos recursos.
|
|
</para>
|
|
<para>
|
|
O time de desenvolvimento do PHP incluiu dezenas de desenvolvedores, também
|
|
dezenas de outros trabalhando em algo relacionado ao PHP e apoio a
|
|
projetos como PEAR, PECL, documentação, infra-estrutura de
|
|
rede subjacente de bem mais de uma centena de servidores web,
|
|
em seis dos sete continentes do mundo. Embora seja apenas uma estimativa baseada
|
|
em estatísticas de anos anteriores, é seguro presumir
|
|
que o PHP estaria instalado em dezenas, ou mesmo talvez
|
|
centenas, de milhões de domínios em todo o mundo.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="history.php6">
|
|
<title>PHP 6</title>
|
|
<para>
|
|
O plano para o PHP 6 era fornecer suporte total para Unicode tanto no
|
|
mecanismo quanto na linguagem. Este trabalho foi abandonado mais tarde, porém outros
|
|
recursos que estavam projetados para o PHP 6 foram incorporados
|
|
ao PHP 5.3 (<link linkend="language.namespaces">namespaces</link>)
|
|
e ao PHP 5.4 (<link linkend="language.oop5.traits">trait</link> e
|
|
sintaxe "curta" de array).
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="history.php7">
|
|
<title>PHP 7</title>
|
|
<para>
|
|
O PHP 7.0 foi lançado em 2015 e apresentou outra versão principal do
|
|
núcleo, <literal>Zend Engine 3.0</literal>, que incluiu
|
|
melhorias significativas de desempenho (até duas vezes mais rápido que o PHP
|
|
5.6) e de uso de memória, suporte consistente a 64 bits, melhorias em
|
|
exceções, um gerador de números aleatórios seguro, o
|
|
<link linkend="language.operators.comparison.coalesce">operador de coalescência
|
|
nula (??)</link>, <link linkend="language.oop5.anonymous">classes
|
|
anônimas</link>, e outros recursos.
|
|
</para>
|
|
<para>
|
|
Versões posteriores da série do PHP 7 introduziram mais recursos de linguagem
|
|
tais como a <link linkend="function.list">sintaxe de lista curta</link> (7.1),
|
|
parâmetro de objeto e declaração de tipo de retorno (7.2), um novo
|
|
<link linkend="language.types.string.syntax.heredoc">heredoc</link> flexível
|
|
e a sintaxe <link linkend="language.types.string.syntax.nowdoc">nowdoc</link>
|
|
(7.3), propriedades tipadas (7.4), e uma nova
|
|
<link linkend="class.ffi">interface para funções externas</link> (7.4).
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="history.php8">
|
|
<title>PHP 8</title>
|
|
<para>
|
|
Lançado em 2020, o PHP 8 foi outra grande atualização da linguagem.
|
|
Continha muitos novos recursos e otimizações incluindo
|
|
<link linkend="functions.named-arguments">argumentos nomeados</link>,
|
|
<link linkend="language.types.declarations.composite.union">tipos de
|
|
união</link>, <link linkend="language.attributes">atributos</link>,
|
|
<link linkend="language.oop5.decon.constructor.promotion">promoção de
|
|
propriedade de construtor</link>,
|
|
expressões <link linkend="control-structures.match"><literal>match</literal></link>,
|
|
o <link linkend="language.oop5.basic.nullsafe">operador nulo seguro
|
|
(<literal>?-></literal>)</link>, um novo compilador JIT otimizante
|
|
e melhorias no sistema de tipagem, na manipulação de erros e na consistência.
|
|
</para>
|
|
<para>
|
|
Versões posteriores da série do PHP 8 introduziram novos recursos de linguagem
|
|
incluindo <link linkend="language.enumerations">enumerações</link> (8.1),
|
|
<link linkend="language.fibers">fibers</link> (8.1),
|
|
<link linkend="language.oop5.basic.class.readonly">classes somente-leitura</link> (8.2),
|
|
Tipos de Forma Normal Disjuntiva (DNF) (8.2), e constantes de classe
|
|
tipadas (8.3).
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="history.php.related">
|
|
<title>História de projetos relacionados ao PHP</title>
|
|
|
|
<!-- Hope Stig and/or Egon can do this
|
|
|
|
<sect2 xml:id="history.phpdoc">
|
|
<title>PHP Documentation Project</title>
|
|
<para>
|
|
</para>
|
|
</sect2>
|
|
|
|
-->
|
|
|
|
<sect2 xml:id="history.pear">
|
|
<title>PEAR</title>
|
|
<para>
|
|
<link xlink:href="&url.php.pear;">PEAR</link>, que significa <literal>PHP Extension and
|
|
Application Repository</literal> (originalmente, PHP Extension and Add-on
|
|
Repository) é a base de classes PHP e pode crescer no futuro para ser uma
|
|
das formas chave para distribuir extensões PHP
|
|
entre os desenvolvedores.
|
|
</para>
|
|
<para>
|
|
PEAR nasceu em discussões de encontros realizados por desenvolvedores PHP
|
|
(PDM) realizado em janeiro de 2000 em Tel Aviv.
|
|
Foi criado por Stig S. Bakken,
|
|
e é dedicado à sua primeira filha, Malin Bakken.
|
|
</para>
|
|
<para>
|
|
Desde o início de 2000, PEAR cresceu para ser um projeto
|
|
grande e significativo com um grande número de desenvolvedores
|
|
trabalhando para implementar funcionalidades comuns e
|
|
reutilizáveis para benefício
|
|
da comunidade PHP. PEAR hoje inclui uma ampla variedade de
|
|
classes para acesso a banco de dados, cache de conteúdo,
|
|
cálculos matemáticos, comércio eletrônico e muito mais.
|
|
</para>
|
|
<para>
|
|
Mais informações sobre PEAR podem ser encontradas
|
|
<link xlink:href="&url.php.pear.manual;">no manual</link>.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="history.phpqa">
|
|
<title>Iniciativa de Garantia da Qualidade do PHP</title>
|
|
<para>
|
|
O <link xlink:href="&url.php.prerelease;">PHP Quality Assurance
|
|
Initiative</link> foi criado no verão de 2000 (no hemisfério norte), em resposta a
|
|
críticas de que versões do PHP não estavam sendo suficientemente bem testados
|
|
para o ambiente de produção.
|
|
O time agora consistia em um grupo de desenvolvedores
|
|
com um bom entendimento do código base do PHP.
|
|
Esses desenvolvedores gastaram muito de seu tempo localizando e
|
|
corrigindo os problemas do PHP. Além disso, houve muitos outros membros
|
|
do time que testavam e davam retorno de suas correções usando
|
|
uma ampla variedade de plataformas.
|
|
</para>
|
|
</sect2>
|
|
|
|
<sect2 xml:id="history.phpgtk">
|
|
<title>PHP-GTK</title>
|
|
<para>
|
|
<link xlink:href="&url.php.gtk;">PHP-GTK</link> é a solução PHP para escrever
|
|
aplicações GUI no lado do cliente. Andrei Zmievski nos recorda o processo de
|
|
planejamento e criação:
|
|
</para>
|
|
<blockquote>
|
|
<para>
|
|
Programação GUI foi sempre do meu interesse, e eu achei
|
|
o Gtk+ um utilitário muito fácil, exceto que programar com ele em C é
|
|
pouco tedioso.
|
|
Depois de testemunhar aplicações PyGtk e GTK-Perl, eu decidi ver se o PHP
|
|
poderia fazer uma interface com Gtk+, mesmo que pequena.
|
|
Iniciei em agosto de 2000, quando comecei a ter um pouco mais de tempo livre, e
|
|
iniciei os experimentos. Minha principal diretriz foi a implementação PyGtk pois possuía
|
|
recursos bastante completos e uma boa interface de orientação a objetos.
|
|
James Henstridge, o autor de PyGtk, forneceu muitos conselhos úteis durante os estágios
|
|
iniciais.
|
|
</para>
|
|
<para>
|
|
Escrever as interfaces para todas as funções Gtk+ ficou fora de questão,
|
|
então eu aproveitei a ideia de gerar código, similar
|
|
a como o PyGtk tinha sido feito. O gerador de código é um programa PHP que lê
|
|
um conjunto de arquivos <filename>.defs</filename> contendo as classes Gtk+,
|
|
constantes, e informações de métodos e gera o código C que faz a interface com o PHP.
|
|
O que não pode ser gerado automaticamente pode ser escrito manualmente no arquivo
|
|
<filename>.overrides</filename>.
|
|
</para>
|
|
<para>
|
|
Trabalhar em um gerador de código e sua infra-estrutura levou algum tempo,
|
|
pois eu tinha pouco tempo para trabalhar no PHP-GTK durante o outono de 2000.
|
|
Depois que mostrei o PHP-GTK para Frank Kromann, ele ficou interessado
|
|
e começou ajudando-me com o gerador de código e em implementações
|
|
de Win32. Quando nós escrevemos o primeiro programa "Hello World" e executamos,
|
|
ficamos muito emocionados.
|
|
Levou dois ou mais meses para começar o projeto
|
|
em uma condição apresentável e a versão inicial foi lançada em 1º de março de 2001.
|
|
A história rapidamente chegou ao SlashDot.
|
|
</para>
|
|
<para>
|
|
Sentindo que PHP-GTK podia ser extensível, montei em separado uma lista de e-mails,
|
|
um repositório CVS para isto e também um website gtk.php.net com a ajuda
|
|
de Colin Viebrock.
|
|
Também foi preciso montar a documentação e
|
|
James Moore veio a ajudar com isto.
|
|
</para>
|
|
<para>
|
|
Desde seu lançamento, o PHP-GTK foi ganhando popularidade. Nós tivemos
|
|
nosso próprio time de documentação, o manual continua melhorando,
|
|
pessoas começaram a escrever extensões para o PHP-GTK, e mais
|
|
aplicações foram feitas com ele.
|
|
</para>
|
|
</blockquote>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="history.php.books">
|
|
<title>Livros sobre PHP</title>
|
|
<para>
|
|
Como o PHP cresceu, começou a ser reconhecido com uma
|
|
plataforma popular de desenvolvimento web. Uma das formas mais interessantes
|
|
de ver esta tendência foi observando os livros sobre PHP
|
|
que foram lançados ao longo dos anos.
|
|
</para>
|
|
<para>
|
|
Pelo que sabemos, o primeiro livro dedicado para
|
|
PHP foi 'PHP — tvorba interaktivních internetových aplikací'
|
|
(<emphasis>PHP — Criando aplicativos interativos da Internet</emphasis>),
|
|
um livro tcheco publicado em 1999, cujo autor foi Jirka Kosek.
|
|
No mês seguinte, um livro alemão, dos autores Egon Schmid, Christian Cartus
|
|
e Richard Blume. O primeiro livro em Inglês sobre PHP foi publicado
|
|
pouco depois, e foi 'Core PHP Programming' de Leon Atkinson. Este livro cobria o
|
|
PHP 3.0.
|
|
</para>
|
|
<para>
|
|
Enquanto estes eram os primeiros livros deste gênero — eles foram
|
|
seguidos por um grande número de livros de uma série de autores
|
|
e editores. Existem mais de 400 livros em inglês, mais de 100 livros
|
|
em alemão, e mais de 50 livros em francês ou espanhol! Além de poder encontrar
|
|
livros sobre PHP em muitas outras línguas, incluindo
|
|
coreano, japonês e hebraico.
|
|
</para>
|
|
<para>
|
|
Obviamente, este grande número de livros — escritos por diferentes
|
|
autores, publicados por muitas editoras e sua disponibilidade
|
|
em tantas línguas — é um forte testemunho do sucesso do PHP
|
|
em todo o mundo.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 xml:id="history.php.publications">
|
|
<title>Publicações sobre PHP</title>
|
|
<para>
|
|
Pelo que sabemos, o primeiro artigo sobre PHP em
|
|
uma revista em papel foi publicado na Computerworld da Tchecoslováquia,
|
|
na primavera de 1998 (no hemisfério norte), e cobria o PHP 3.0. Como os
|
|
livros, este foi o primeiro de uma série de muitos artigos publicados
|
|
sobre PHP em várias revistas reconhecidas.
|
|
</para>
|
|
<para>
|
|
Artigos sobre PHP apareceram no Dr. Dobbs, Linux Enterprise,
|
|
Linux Magazine e muitos outros. Artigos sobre migração de aplicações
|
|
baseadas em ASP para PHP no Windows têm aparecido até na <acronym>MSDN</acronym> que é da
|
|
própria <productname>Microsoft</productname>!
|
|
</para>
|
|
</sect1>
|
|
|
|
</appendix>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|