+1 embora não construtiva, esta página foi extremamente útil para mim
Erick Robertson
2
considerando a qualidade da resposta mais votada a esta questão, é surpreendente que esta questão tenha sido encerrada como "não construtiva".
dreftymac
Acabei de lançar meu analisador de BabyYaml, que é um primo mais simples de Yaml, se você estiver interessado, verifique aqui: github.com/lingtalfi/BabyYaml
ling
Tenho que concordar com ErickRobertson e dreftymac que literalmente respondeu bem à minha pergunta, e fechá-lo impediu outras possíveis boas respostas.
Pharaoh Tools
Respostas:
139
Última atualização : 26 de julho de 2017
Aqui está um resumo do estado de YAML em PHP:
Wrappers para bibliotecas C: você provavelmente vai querer estes se precisar de velocidade absoluta:
syck : Ligação ao syck; também disponível como extensão PECL. (datado, veja abaixo)
Implementações de PHP puro:
sfYaml : componente YAML do Symfony. Você pode ver as motivações de seus autores aqui . Ele queria algo que fosse " fácil de usar, rápido, testado na unidade e tivesse mensagens de erro claras ".
No momento em que este artigo foi escrito, as datas de lançamento das versões mais recentes para as bibliotecas mencionadas e as versões da especificação YAML (1.2 é a versão mais recente) com suporte eram:
Existem outras bibliotecas menos conhecidas (como esta , do projeto Horde), mas eu não queria me aprofundar muito nelas.
NullUserException
3
Estou usando o sfYaml há cerca de dois anos e, em um teste de desempenho, percebi que sfYaml :: parse () tomava a maior parte do tempo de processamento. Substituí-o pelo php-yaml e o aplicativo agora é 70% mais rápido! Essa é uma grande diferença.
Attila Fulop
1
Atualização de 2019 para PHP: "spyc" tem tantos problemas, enquanto "sfYaml" funciona bem.
Implementação de PHP pura, portanto, você não precisa fazer nenhuma modificação no servidor para instalação. Se a velocidade é uma preocupação extrema, pode não ser a solução ideal, mas se você estiver usando YAML para configurações ou uso de volume relativamente baixo, é uma solução fantástica.
Dado um documento YAML, o Spyc retornará um array que você pode usar como quiser.
+1 Eu só queria uma maneira rápida e fácil de usar YAML em um script de importação. Meu aplicativo não precisa de nenhum suporte além de importações (e provavelmente algum dia as exportações). Descobri que o spyc, listado como "mais um analisador YAML", era uma solução com um clique. Eu coloquei o único script na minha pasta de scripts, incluí-o e chamei um método. Não existe nada mais fácil do que isso, e agora estou voltando ao trabalho - obstáculo removido.
Erick Robertson
1
Desatualizados e muitos arquivos yaml de análise incorreta (alguns dados são perdidos).
Esta é uma boa resposta porque o analisador YAML do Symfony2 não está desatualizado. sfYamlpor exemplo, é.
ferdynator 01 de
3
Se você estiver usando muito YAML em seu projeto, poderá descobrir que as bibliotecas PHP puras como spyc ou Symfony YAML não são rápidas o suficiente. Existem pelo menos duas ligações PHP para analisadores C YAML:
yaml - um wrapper para a biblioteca do analisador LibYAML YAML 1.1
syck - um wrapper para a biblioteca do analisador Syck YAML 1.0
Se você precisa testar seu YAML rapidamente, eu construí: http://yaml-online-parser.appspot.com/ . Isso me ajuda a escrever YAML, especialmente enquanto estou aprendendo.
Respostas:
Aqui está um resumo do estado de YAML em PHP:
Implementações de PHP puro:
No momento em que este artigo foi escrito, as datas de lançamento das versões mais recentes para as bibliotecas mencionadas e as versões da especificação YAML (1.2 é a versão mais recente) com suporte eram:
fonte
Spyc: https://github.com/mustangostang/spyc
Implementação de PHP pura, portanto, você não precisa fazer nenhuma modificação no servidor para instalação. Se a velocidade é uma preocupação extrema, pode não ser a solução ideal, mas se você estiver usando YAML para configurações ou uso de volume relativamente baixo, é uma solução fantástica.
Dado um documento YAML, o Spyc retornará um array que você pode usar como quiser.
Dado um array, Spyc retornará uma string que contém um documento YAML construído a partir de seus dados.
fonte
O framework symfony faz uso intenso de YAML, esta postagem do blog de Grégoire Hubert demonstra o uso de sua biblioteca YAML em um projeto não-symfony.
fonte
Symfony2 tem um componente YAML que suporta a maioria das especificações YAML 1.2
https://github.com/symfony/Yaml
fonte
sfYaml
por exemplo, é.Se você estiver usando muito YAML em seu projeto, poderá descobrir que as bibliotecas PHP puras como spyc ou Symfony YAML não são rápidas o suficiente. Existem pelo menos duas ligações PHP para analisadores C YAML:
fonte
Eu sugeriria o processo seguido neste artigo http://devzone.zend.com/article/2585-using-yaml-with-php-and-pecl
fonte
Experimente o sfYaml , é o melhor que conheço.
Symfony e Doctrine ORM estão usando este.
Para obtê-lo, você pode baixar Doctrine 1.2 e extrair
sfYaml
dovendor
diretório.Deixe-nos saber se ele atende às suas necessidades.
fonte
Se você precisa testar seu YAML rapidamente, eu construí: http://yaml-online-parser.appspot.com/ . Isso me ajuda a escrever YAML, especialmente enquanto estou aprendendo.
fonte