gpt4 book ai didi

symfony - 使用 Symfony2 包含第 3 方文件的最佳方法

转载 作者:行者123 更新时间:2023-12-02 18:41:30 25 4
gpt4 key购买 nike

我想知道在 symfony2 中包含第 3 方 php 文件的最佳方法是什么。我正在使用不同的 php - ajax 包在我的 symfony2 应用程序中上传文件。该软件包为我提供了一些 php oops 代码,我需要在我的 symfony Controller 中使用它们。我正在我的 Controller 中创建该代码的对象。所以我想知道我可以在哪里放置第三方代码或文件以及如何在我的 symfony2 Controller 中包含或创建该代码的对象。我们在 symfony2 中也使用 require 或 include 吗?如果是这样,那就是唯一的方法。

最佳答案

我不太确定是否尝试将命名空间添加到第三方库。例如,Twig 不使用 namespace 。而且确实没有必要。例如,考虑一下您想要使用 Zend_Framework 1 库中的 PDF 组件的情况。

在您的 app/autoload.php 文件中,您可以执行以下操作:

$loader->registerPrefixes(array(
'Twig_Extensions_' => $ws . 'Symfony/vendor/twig-extensions/lib',
'Twig_' => $ws . 'Symfony/vendor/twig/lib',
'Zend_' => $ws . 'ZendFramework-1.0.0/library',
));

// And since Zend internally uses require/include we need to set an include path
ini_set('include_path','.' .

PATH_SEPARATOR . $ws . 'ZendFramework-1.0.0/library'

);

此时,我们应该能够在 Controller 内创建第三部分对象,同时让自动加载系统负责查找并包含类:

    $page = new \Zend_Pdf_Page(\Zend_Pdf_Page::SIZE_A4);
$doc->pages[] = $page;

$font1 = \Zend_Pdf_Font::fontWithName(\Zend_Pdf_Font::FONT_HELVETICA);
$font2 = \Zend_Pdf_Font::fontWithName(\Zend_Pdf_Font::FONT_COURIER_BOLD);

您必须使用\来解决命名空间不足的问题。

这个答案确实假设您的第三部分库或多或少遵循标准类命名约定。如果它有自己的自动加载功能,那么也只需从 autolaod.php 调用它即可。如果您根本不想使用自动加载,那么只需设置包含路径并包含即可。

关于symfony - 使用 Symfony2 包含第 3 方文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10007010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com