我有一个Symfony 1.2.4应用程序,从Symfony sandbox application获取和修改,没有努力确保Symfony引擎与我的应用程序分离,所以现在Symfony引擎只是一个文件夹在我的申请中。
从Symfony 1.2.4升级到1.2.7的最佳方法是什么?有什么想法吗?
答案 0 :(得分:1)
我找到了解决方案。
首先,必须从沙盒应用程序移动Symfony框架,然后使用PEAR将detailed in this post升级为Symfony框架。
答案 1 :(得分:1)
最简单的方法:
下载新的沙盒版symfony,从该存档中获取数据和lib fonders并将其从项目文件夹中删除(覆盖现有数据和lib文件夹)。之后,清理项目缓存并重建模型(以及表单和过滤器)。
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的升级,您将有其他步骤(您在文档中有详细的说明)
答案 2 :(得分:0)
您还应该考虑在项目的lib / vendor文件夹中使用SVN和/或安装symfony。这将使symfony项目依赖,这对于同一服务器上的多个symfony项目非常有用。
答案 3 :(得分:0)
Symfony 1.2是稳定版本,它是什么意思?
稳定:symfony团队承诺修复错误和安全性 稳定发布的问题直到 维护结束。平均来说,我们 每个月发布一个错误修复版本。 这些版本从不包含新版本 功能,甚至是小功能,但仅限于此 错误修复。所以,他们总是如此 向后兼容,简单安全 升级到。
就像Oncle Tom所说,如果你正在研究多个Symfony项目,如果他们共享同一个Symfony库,将更容易更新它们。
从SVN存储库中签出Symfony lib:
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 生成:项目项目
答案 4 :(得分:0)
这是一个老问题,但我想我会添加一个想法。以前最好的做法是在服务器上为symfony设置一个位置,因为可以升级它并神奇地升级单个服务器上的所有站点。在实践中,它并不那么容易。首先,当将站点从一个服务器移动到另一个服务器时,可能需要修复符号链接或库文件夹的绝对路径。另外,正如@deresh所说,人们需要清除升级之间的缓存 - 这需要花费多个项目的时间,并且可能会将它们关闭直到完成所有项目。
总而言之,这些天我将symfony 1.x嵌入到任何symfony项目中,而不是引用外部位置。它将symfony的“已知良好版本”引入版本控制,使其更易于部署,升级只是在开发副本中删除lib/symfony
和data/symfony
,并将其替换为{来自新tarball的{1}}和lib
个文件夹。这些应该被提交,然后如果你在服务器上使用Subversion,项目可以很容易地部署在服务器上 - data
和`./symfony cc'。
通常,您不需要重建模型,除非您知道您的ORM版本在symfony版本之间发生了变化。