0

Symfony サンドボックス アプリケーションから取得および変更された Symfony 1.2.4 アプリケーションがあります。Symfony エンジンがアプリケーションから分離されていることを確認するための努力は行われていないため、Symfony エンジンはアプリケーション内のフォルダーにすぎません。

Symfony 1.2.4 から 1.2.7 にアップグレードする最良の方法は何ですか? 何か案は?

4

5 に答える 5

1

最も簡単な方法:

symfonyの新しいサンドボックスバージョンをダウンロードし、そのアーカイブからデータとlibフォンダーを取り出して、プロジェクトフォルダーに取り出します(既存のデータと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にアップグレードする場合は、追加の手順があります(詳細な手順はドキュメントに記載されています)。

于 2009-05-13T08:45:25.030 に答える
1

私は解決策を見つけました。

まず、Symfonyフレームワークをサンドボックスアプリケーションから移動してから、この投稿で詳しく説明されているように、 PEARを使用してSymfonyフレームワークをアップグレードする必要があります。

于 2009-05-06T04:07:49.880 に答える
0

これは古い質問ですが、考えを追加したいと思いました。以前は、サーバー上に symfony の単一の場所を用意することがベストプラクティスと考えられていました。これは、それをアップグレードして、単一のサーバー上のすべてのサイトを魔法のようにアップグレードできるためです。実際には、それほど簡単ではありません。まず、あるサーバーから別のサーバーにサイトを移動する場合、ライブラリ フォルダーへのシンボリック リンクまたは絶対パスを修復する必要がある可能性があります。また、@deresh が言うように、アップグレードの合間にキャッシュをクリアする必要があります。これには複数のプロジェクトで時間がかかり、すべてが完了するまでダウンする可能性があります。

要約すると、最近では、外部の場所を参照するのではなく、symfony 1.x を任意の symfony プロジェクトに埋め込みます。これにより、symfony の「既知の適切なバージョン」がバージョン管理に組み込まれ、展開が容易になります。アップグレードは、開発コピーのlib/symfonyとを削除し、それらを新しい tarballのとフォルダーdata/symfonyに置き換えるだけです。これらをコミットすると、プロジェクトをサーバーに簡単にデプロイできます。また、サーバーで Subversion を使用している場合は、`./symfony cc' もデプロイできます。libdatasvn up

通常、ORM のバージョンが symfony のリリース間で変更されていることがわかっていない限り、モデルを再構築する必要はありません。

于 2012-03-26T17:36:14.027 に答える
0

Symfony 1.2 は安定版ですが、それはどういう意味ですか?

安定版 : symfony チームは、メンテナンスが終了するまで、安定版リリースのバグとセキュリティの問題を修正することに取り組んでいます。平均して、バグ修正バージョンを 1 か月に 1 回リリースしています。 これらのバージョンには、小さな機能であっても新機能が含まれることはなく、バグ修正のみが含まれます。そのため、常に下位互換性があり、簡単かつ安全にアップグレードできます

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 generate:project プロジェクト

于 2009-06-17T10:52:16.873 に答える
0

また、SVN を使用するか、プロジェクトの lib/vendor フォルダーに symfony をインストールすることも検討する必要があります。これにより、symfony プロジェクトが依存するようになります。これは、同じサーバー上に複数の symfony プロジェクトがある場合に便利です。

于 2009-05-08T08:48:34.247 に答える