私はCMSの拡張性のファンです。コード(通常はPHP)をアップロードし、CMS管理パネルから認証して実行することができます。
GoogleAppEngineで可能かしら。Google App Engine用の既存のCMSの拡張性を確認していませんが、プラグインをサポートするCMSがある場合は、それらがどのように実行されたか、JSプラグインのみか、Python/Javaをサポートするかを知りたいです。プラグインも。
私はCMSの拡張性のファンです。コード(通常はPHP)をアップロードし、CMS管理パネルから認証して実行することができます。
GoogleAppEngineで可能かしら。Google App Engine用の既存のCMSの拡張性を確認していませんが、プラグインをサポートするCMSがある場合は、それらがどのように実行されたか、JSプラグインのみか、Python/Javaをサポートするかを知りたいです。プラグインも。
Google の Nick Johnson が、アプリ エンジン用のブログ システムの書き方に関するブログ投稿シリーズ全体を書きました。それがあなたの望むようにならなければ、あなたはそれを拡張できると確信していますが、通常、ほとんどの人にとって CMS にはブログ システムで十分です。
公開されている例はありませんが (申し訳ありません)、App Engine プロジェクト用の Python プラグインを作成できることは確認できます。数か月前に、このようなことを行うプロジェクトを完了しました。核心は、Python の 1 行に集約されます。
exec plugincode in someDict
上記の「plugincode」は、実行する Python コードを含む文字列であり、someDict はそれを実行するグローバルの辞書です。これは、eval() を使用するよりも間違いなくクリーンです。この場合、globals ディクショナリには、プラグインコードがシステムとの通信に使用するオブジェクトのインスタンスが含まれていました。この (または同様の) アプローチでは、大きな制限は考えられません。たとえば、プラグインコードはクラスを宣言し、そのクラスのインスタンスをコールバック ハンドラなどとして登録できます。
この例では、プラグイン コードをデータ ストアに保存し、適切なタイミング (アプリのインスタンスが開始されたときなど) にロードしました。
実際、App Engine アプリケーションでプラグインをサポートすることに概念的な問題はないと思います。たとえば Java では、(アプリケーションの初期化フェーズで) データ ストアまたは memcache からメモリにプラグイン jar をフェッチし、必要に応じてカスタム クラス ローダーを使用してプラグイン クラスをロードすることができます)。実際には、要求データからクラスをロードし、必要に応じてオンザフライで評価することもできます ( AppWrench Java コンソールで行う方法)。
よろしく、パベル。