2009-08-01 8 views
6

私はCMSで作業しており、特定のアカウントに対してカスタムエクステンションを提供したいと考えていました。そのアカウントでのみ使用可能なカスタムコードを持つプラグインを持つようにします。これらのカスタムエクステンションは、アカウントのビジネスニーズに特有のものであり、他のアカウントには必要ではない可能性があります。アプリ全体を再起動しなくても、これを実行してロードできる方法があるので、他のアカウントのダウンタイムが発生しますか?レールcmsのプラグインアーキテクチャ

答えて

2

、あなたはデータモデルのコードを格納することができ、その後のeval()のコードは、動的にそれを実行します。 (もちろん、コードに悪意のある呼び出しが含まれていないことを確認するために、深刻な健全性のチェック/修正を行いたいかもしれません)。もう1つのアプローチは、Radiant CMS開発者が構築したラインの多くに沿ってカスタムタグライブラリを開発し、提供されたタグを使用してユーザに動作を「プログラム」させることです。これにより、柔軟性の低下を犠牲にして、より多くの制御とより良いセキュリティを実現します。

ダウンタイムに関する質問では、現代のレール導入アプローチを使用している場合、これがどのように問題になるかはわかりません。上記のeval()アプローチでは、最後の起動時にインストールされていないライブラリでカスタムコードが "include ..."を呼び出さない限り、再起動は必要ありませんが、これらのライブラリをインストールすることは、 "あなたが解決する必要がある問題

旅客は、あなたがリフレッシュを強制するために触れることができるrestart.txtファイルを与えます。同様に雑種スタックを徐々に再始動することができるmongrelのレシピ

+0

私はこれがかなり良い解決策だと考えています(たとえeval()であっても)。かなり怖い)私はコードではなく、ユーザーを開発するものだからです。もちろん、大量のap私はそれを通常のように構築し、アクセスを制限することができます。特定のインスタンスはアカウントごとのカスタマイズ用ですので、これが最も効果的だと思います。 – bwizzy

1

私はCMSを構築し、プラグインのサポートを追加しました。あなたがすることができる最も良いことは、すべてのデータベース駆動型であることです。プラグインは誰にとっても技術的に存在しますが、購入した場合やそれ以外の方法で使用することができます。実際にはdbレコードです。

これは、停止時間は0です。 :)もう一度、私はあなたのセットアップの残りの部分がどのように見えるか分かりません。あなたのソリューションは、あなたのCMSシステム設計に合わせてきめ細かく調整されていると思います。

0

このダウンタイムはどれくらいの期間ですか?私はマイグレーションを実行し、プラグインをアップロードすることができます。あなたは、その 'ファンシー'を得ておらず、jsで何か「きちんとした」ことを許可すれば、マイグレーションが正しく設定されたことを確認しなければならないでしょう。それは乗客の再起動の問題ですね。何秒?

私は他の「有名な」CMSのような光り輝くものや、彼らが個人的にどうやって見ているかをチェックしたいと思います。がんばろう。

0

これはまさにあなたが達成しようとしているものの、パンケーキをチェックアウトしたのですか?

パンケーキは、&のツールで、RackベースのWebアプリケーションをスタックして疎結合させることができます。クライアントごとのプラグインコードの面では

http://www.rubyinside.com/pancake-rack-webapps-stacking-2863.html

関連する問題