【问题标题】:Zend with SymfonyZend 与 Symfony
【发布时间】:2011-04-14 10:06:01
【问题描述】:

似乎有previous attempts 将 Zend 与 Symfony 集成到同一个项目中。我听说它可以完成并且已经完成,但是除了下面链接的幻灯片放映之外,幻灯片放映的实际视频不是免费提供的。

那么有没有人知道很好的资源可以很好地解释这种集成?博客,视频,等等。我会在此处添加您发布的任何内容,以便将来更方便地访问其他人。

目前我发现的资源:

编辑:如果你这样做了,我应该添加 你自己之前,你也可以请 发布任何提示(少量或大量)到 帮助那些可能想尝试的人。

【问题讨论】:

  • 我相信你有你的理由,但你为什么想要/需要这样做?
  • @Pekka 我想使用每个组件。根据我对 Zend 的了解(过去 2 周一直在使用它),可以在任何项目中使用 Zend 组件,包括纯 PHP。但是 Zend 并不适合我的需求,我需要更多的组件,其中一些我在 Symfony 中很容易找到(现在开始学习 Symfony)。我发现这个演示文稿表明可以将两者结合起来,但真正需要的是更多操作细节。
  • @jblue 我明白了。 Zend 是非常模块化的,所以在 Symfony 项目中使用 Zend 的一部分应该没有任何问题。您可能遇到的唯一麻烦是自动加载,但也可以在 Zend 端完全关闭。您可能无法将 Zend 的任何 MVC 功能与 Symfony 一起使用:我预计这将是一个注定失败的企业。
  • @Pekka,你是对的。我正在考虑根据需要使用 Symfony 作为基础 + Zend 组件。所以我将使用 Symfony 的文件夹结构,但不使用 Zend 的引导程序和 ini。看起来这对于一个计划来说应该没问题,因为我不确定 Symfony 在另一个项目中被用作仅组件的开放程度,而我知道这完全可以使用 Zend(另一个项目中的 zend 组件)。
  • @jblue 从我阅读的所有内容以及我对 Symfony 的了解中,它不像 Zend 那样被用作库。有兴趣看看是否会出现相反的情况

标签: php zend-framework symfony1


【解决方案1】:

添加 Zend 框架以在 Symfony 中运行非常简单。 Zend 框架的某些组件补充了 Symfony 框架。我目前正在使用 Zend 进行 Lucene 搜索,以及他们的 Mailer。

要在 Symfony 中使用 Zend,您只需要做两件事:

  1. 将 Zend 框架复制到您的 /lib/vendor/ 文件夹。

  2. 修改 ProjectConfiguration 文件。 (config/ProjectConfiguration.class.php)

      class ProjectConfiguration extends sfProjectConfiguration 
      {
         static protected $zendLoaded = false;
         static public function registerZend()
         {
            if (self::$zendLoaded) { return; }
            set_include_path(sfConfig::get('sf_lib_dir').'/vendor'.PATH_SEPARATOR.get_include_path());
            require_once sfConfig::get('sf_lib_dir').'/vendor/Zend/Loader/Autoloader.php';
            Zend_Loader_Autoloader::getInstance();
            self::$zendLoaded = true;           
            }      
      }
    

所有这些都可以在 Symfony 教程中找到: http://www.symfony-project.org/jobeet/1_4/Doctrine/en/17

【讨论】:

    【解决方案2】:

    根据上面的讨论:

    我正在考虑根据需要使用 Symfony 作为基础 + Zend 组件。所以我将使用 Symfony 的文件夹结构,但不使用 Zend 的引导程序和 ini。

    根据我在采埃孚的经验,我想说,这绝对可以做到,而且值得一开始就开始使用。

    您将不得不与 Autoloading 讨价还价(您可能应该手动加载所有 Zend 相关的包含,并且根本不使用它的自动加载器),但除此之外,我看不到任何问题。 (免责声明:我根本不了解 Symfony,也无法评论可能的命名空间冲突,但鉴于 Zend 是为避免这些冲突而构建的,而且 Symfony 是一个成熟的框架,我认为你不会遇到任何问题不可能。)

    【讨论】:

      【解决方案3】:

      如果您使用 Symfony 作为您的顶级框架,这很简单。

      事实上,集成 Zend Framework 组件甚至曾经是 standard symfony tutorial 的一部分。

      【讨论】:

      • 我没有说教义。我说的是 Zend_Mail,他在接近尾声时集成了它。
      猜你喜欢
      • 2011-12-18
      • 2011-01-05
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多