0

我有一个 Symfony 1.2.4 应用程序,从Symfony 沙盒应用程序中获取和修改,没有努力确保 Symfony 引擎与我的应用程序分离,所以现在 Symfony 引擎只是我应用程序中的一个文件夹。

从 Symfony 1.2.4 升级到 1.2.7 的最佳方式是什么?有任何想法吗?

4

5 回答 5

1

我找到了解决方案。

首先,必须将 Symfony 框架从沙盒应用程序中移出,然后使用 PEAR 升级 Symfony 框架,如本文所述。

于 2009-05-06T04:07:49.880 回答
1

最简单的方法:

下载新的 symfony 沙盒版本,从该存档中获取数据和库文件并将其放入项目文件夹中(覆盖现有的数据和库文件夹)。之后清理您的项目缓存并重建模型(以及表单和过滤器)。

php symfony clear:cache
php symfony propel:build-all

或者如果使用学说:

php symfony clear:cache
php symfony doctrine:build-all

这将始终适用于次要修订(1.2.3 到 1.2.9 或 1.1.2 到 1.1.5)。对于从 1.0 升级到 1.1 或 1.2 或 1.3,您将有额外的步骤(您在文档中有详细说明)

于 2009-05-13T08:45:25.030 回答
0

您还应该考虑使用 SVN 和/或在项目的 lib/vendor 文件夹中安装 symfony。这将使 symfony 项目依赖,这在同一服务器上有多个 symfony 项目的情况下很有用。

于 2009-05-08T08:48:34.247 回答
0

Symfony 1.2 是一个稳定版,这是什么意思?

稳定:symfony 团队致力于修复稳定版本的错误和安全问题,直到维护结束。平均而言,我们每月发布一个错误修复版本。 这些版本从不包含新功能,即使是小功能,但只包含错误修复。因此,它们始终向后兼容,升级到.

就像 Oncle Tom 说的,如果你正在处理多个 Symfony 项目,如果它们共享同一个 Symfony 库,更新它们会更容易。

从 SVN 存储库签出 Symfony 库:

daemon@dev:/home/dev/symfony$ svn co http://svn.symfony-project.com/branches/1.2

编辑您的 config/ProjectConfiguration.class.php :

#require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
require_once '/home/dev/symfony/1.2/lib/autoload/sfCoreAutoload.class.php'; // use the shared lib instead
sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    // for compatibility / remove and enable only the plugins you want
    $this->enableAllPluginsExcept(array('sfPropelPlugin', 'sfCompat10Plugin'));
  }
}

然后你就完成了。您现在正在使用一个共享且易于更新的 Symfony 库,并且您已经更新了您的项目。

开始新项目:

daemon@dev:/home/dev/sfProjects$ php /home/dev/symfony/1.2/data/bin/symfony generate:project 项目

于 2009-06-17T10:52:16.873 回答
0

这是一个老问题,但我想我会添加一个想法。以前认为最好的做法是在服务器上拥有一个 symfony 位置,因为可以升级它并神奇地升级单个服务器上的所有站点。实际上,这并不容易。首先,当将站点从一台服务器移动到另一台服务器时,可能需要修复符号链接或库文件夹的绝对路径。此外,正如@deresh 所说,需要在升级之间清除缓存 - 这需要花费多个项目的时间,并且可能会将它们关闭,直到它们全部完成。

所以总而言之,这些天我将 symfony 1.x 嵌入到任何 symfony 项目中,而不是引用外部位置。它将 symfony 的“已知良好版本”带入版本控制,使其更易于部署,升级只是在开发副本中删除和替换它们的问题lib/symfonydata/symfony并用新 tarball 中的lib和文件夹替换它们。data这些应该被提交,然后项目可以很容易地部署在服务器上——svn up如果你在服务器上使用 Subversion,则可以使用 `./symfony cc'。

通常你不需要重建你的模型,除非你知道你的 ORM 版本在 symfony 版本之间已经改变了。

于 2012-03-26T17:36:14.027 回答