如何使用解耦的 symfony 组件?
Posted
技术标签:
【中文标题】如何使用解耦的 symfony 组件?【英文标题】:How to use the decoupled symfony components? 【发布时间】:2011-12-12 00:11:28 【问题描述】:关于如何使用 symfony 的解耦组件的任何信息?
我正在重读文档,但除了 “它们非常非常解耦”的一般信息以及 makes use of Request and Response 的 1 个教程之外,没有关于该主题的任何内容。
还有一个排名很差的答案Using symfony2 routing component (outside of symfony2)
同时查看tutorial for the standalone Form component 并没有让我感到多么愉快。
我需要 routing、yaml 和 session。
【问题讨论】:
【参考方案1】:您应该使用的第一个组件是 ClassLoader。你也可以使用 spl_autoload_register,但是你使用的是 Symfony,那么为什么不使用它自己的自动加载库呢?在脚本顶部添加以下内容:
use Symfony\Component\ClassLoader\UniversalClassLoader;
require_once '/path/to/symfony/src/Symfony/Component/ClassLoader/UniversalClassLoader.php';
$loader = new UniversalClassLoader();
$loader->register();
$loader->registerNamespaces(array(
'Symfony' => '/path/to/symfony/src',
));
使用 Yaml 组件非常简单:
use Symfony\Component\Yaml\Parser;
$data = Parser::parse('yaml string');
对于其他组件,您必须阅读API documentation,因为还没有教程。
【讨论】:
实际上,指向 API 文档的链接并不是很有帮助。我看到的问题是所有组件都使用至少 2 个其他组件。所以他们几乎与他们联系在一起。 YAML 组件本身很容易解耦,因为 sf1.我需要使用 YAML 进行路由配置,而不仅仅是 YAML。 看起来这个例子中使用了旧版本的 Symfony。它不起作用并给出 PHP 错误。【参考方案2】:有趣的是,Fabien Potencier 刚刚发表了一篇博文,其中包含如何使用最常用组件的 sn-ps。详情见this post后半部分。
【讨论】:
我刚刚added a comment。我希望我们能得到更多独立的例子。【参考方案3】:我已经写了一个教程,可以帮助你使用decoupled Symfony components in your project。
以控制台组件为例,其他组件的逻辑相同。
【讨论】:
【参考方案4】:作曲家就是答案。
此视频http://www.youtube.com/watch?v=QOldVDVYnAE 有一个简单直接的步骤,可以回答您的问题。
2020 年 8 月 26 日编辑:视频创作者已将其设为私有。抱歉,我无能为力。
【讨论】:
这是安装,不是使用。 @antitoxic 如果您对安装步骤不感兴趣,请从 7:12 开始观看。虽然我强烈建议你观看整个系列。 此视频是私人视频:O【参考方案5】:Symfony2 示例
1) 在新文件夹中使用 composer 安装你需要的组件
composer require symfony/yaml
2) 创建脚本yaml.php
<?php
require_once __DIR__.'/vendor/autoload.php';
use Symfony\Component\Yaml\Parser;
$yaml = new Parser();
$value = $yaml->parse('invoice: 3484');
var_dump($value);
3) 运行脚本
php yaml.php
【讨论】:
以上是关于如何使用解耦的 symfony 组件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Symfony Mailer 组件禁用“verify_peer”?