問題タブ [catalyst]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - どうすればCatalystでHamlを使用できますか?
Catalyst Webフレームワークでテンプレートエンジンの代わりにHamlを使用することは可能ですか?
perl - 永続データは Catalyst のどこに置くのですか?
リクエスト間で変更されないデータを表示する Catalyst Web アプリケーションを作成しています。アプリケーションの起動時にこのデータをロードし、関連するコントローラーが使用できるようにどこかに貼り付けたいと思います。このデータをどこにロードし、どこに保存すればよいですか? App.pm
最初に、メインファイルにロードして、アプリケーション構成に入れようとしました。これは機能しApp.pm
ますが、実際には一緒に属していない多くの読み込みサブルーチンによってファイルが散らばっているため、醜いです:
次に、それらを使用するコントローラーにデータの一部をロードし、コントローラーの構成ハッシュに保存できると考えました。一部のデータは複数のコントローラーで必要になるため、これも完全ではありません。
また、データを共有するのではなく、コントローラーにローカライズできると考えました。データを操作するすべてのコードを多かれ少なかれ 1 か所にまとめることができるので、これはいい感じです。問題は、コントローラーが結果のページの一部を他のコントローラーにもレンダリングする必要があることです。たとえば、タイトル ページ コントローラーが最近のニュースのリストを表示したい場合、ニュース コントローラーにリストをレンダリングするように依頼する必要があります。これは、Catalyst での推奨される方法ではないようです。
これをどのように解決しますか?
(データの性質: これは音楽祭の Web サイトです。データベースは過剰で編集が難しいため、ラインナップ、スポンサーのリスト、および YAML ファイルから抽出されたその他の単純なデータがあります。)
perl - 親コントローラーのすべてのリクエストでスタッシュにアクセスするにはどうすればよいですか?
Catalystアプリケーションをリファクタリングしようとしていますが、コントローラーに共通の基本クラスを導入したいと思います。このベースコントローラーは、要求ごとにいくつかのデータをロードし、他のいくつかのデータをスタッシュに入れます。隠し場所にたどり着くのに苦労しました。簡単な解決策はauto
、ベースコントローラーにデフォルトのアクションを実装することです。auto
これは機能しますが、派生コントローラーで常にスーパーを呼び出すことを忘れないでください。これは忘れがちですが、より良い解決策はありますか?言い換えれば、派生コントローラーを壊すのはそれほど簡単ではないリクエスト処理を利用する簡単な方法はありますか?
perl - パブリックパスを別のCatalystコントローラーに転送するにはどうすればよいですか?
パブリックURL/faqが私のCatalystアプリケーションのプライベートパス/faq/indexにリンクされているとしましょう。
別のコントローラーから/faqに転送するにはどうすればよいですか。つまり、URL/faqのアクションが/faq/ indexであることを知るにはどうすればよいですか?何かのようなもの:
perl - メイン アプリケーション ファイルに Catalyst::Plugin::SmartURI をロードするにはどうすればよいですか?
個別の構成ファイルを持たない大規模な Catalyst コードベースに取り組んでいます。ただし、メインモジュールには次のようなものがあります。
そこで、次のように SmartURI 構成をそこに追加できることを望んでいました。
しかし、ロードまたは有効化するにはそれだけでは不十分なようです。
だから、私は明らかに何かが欠けています、助けていただければ幸いです。
ps。プラグイン + deps は CPAN を通じてインストールされています。
perl - Catalyst を使用して Perl で RPC を行うにはどうすればよいですか?
標準化に適した形式の RPC を見つけようとしてきましたが、これまでにたくさんの壁にぶつかり、stackoverflow コミュニティのビューがどうなっているのか疑問に思っていました。
私の理想的な RPC は、次のものを提供します。
- サーバーを使用するためにカスタムスタックを作成する必要がないという点で、他の言語でのある程度の幅広いサポート
- 入力検証
- 理想的には、上記の入力検証を何らかの自動化されたドキュメントに変換して配布する方法
- クリーンで保守可能なコード
私はCatalystフレームワークのファンであり、それに固執することを好みますが、RPCサーバーの明らかに優れた代替手段があれば、それも受け入れます.
これまでのところ、次のことを見てきました。
Catalyst::Controller::SOAP は、複雑なデータ構造の戻りをサポートしていないようです。string('literals') のみです。その上でおそらくデータをシリアル化できますが、それは非常にハックなようです。また、事前に形成された XML オブジェクトを返すこともできますが、それを機能させることができませんでした。機能させるには、多くの SOAP データ構造を再作成する必要があるようです。
私は WSDL の考え方は好きですが、仕様全体が複雑であるため、他の言語との通信がどの程度サポートされるのか疑問に思っています。
XML ベースのカスタム POST コントローラー XML を ポストするディスパッチ URL がある場合に、他の 2 つのプロジェクトで最近行われているのと同様の方法で、独自のコントローラーを手動で作成しようとしました。これにより、XSD 検証/ドキュメントを作成できますが、現時点で維持したいよりも多くのコードを作成する必要がありました。
Catalyst::Plugin::Server::XMLRPC Catalyst の将来のバージョンで削除される非推奨のメソッドの使用について警告しました。入力の検証やドキュメントの作成はありませんが、それ以外は私が見つけた最高のものです
JSONRPC XMLRPC とよく似ているように見えますが、モジュールが実際に更新されているだけです。誰かがより良いものを提案しない限り、おそらく次はこれを使用しますJSONRPCを実行するCatalyst用の2つの異なるモジュールもあるようです
perl - DBIx::Class と Catalyst を使用して実行時に関係を追加するにはどうすればよいですか?
私が構築しているアプリケーションでは、ユーザーはテーブル間の関係を指定できます。
これは実行時にのみ決定するため、起動用のスキーマ モジュールで has_many 関係または belongs_to 関係を指定することはできません。
したがって、2 つのテーブルが与えられます。システムと場所、それらの間のレコードを結合する関係を追加したいと思います。
以下のソリューションの一部があります。
したがって、列fk0
は場所の主キーへの外部キー マッピングになりますid
。
関係への将来のアクセスを許可するには、再登録が必要であることはわかっていますが、それがわかりません。
perl - Template Toolkit テンプレート ファイルで WRAPPER をオーバーライドするにはどうすればよいですか?
テンプレートを使用するか、一時的にオーバーライドして、new(\%config)WRAPPER
に設定され た a を無効にする方法はありますか? デフォルトは 1 つ(テンプレートの 99.9% に使用する) にしたいのですが、一部を除外します。parse()
WRAPPER
すべてのテンプレートに適用したくないことを除いて、構成の概要Catalyst::View::TT
の例と同じようにこれをすべて実行しています。WRAPPER
perl - Template Toolkit で不正な識別子文字を含むハッシュ キーを処理するにはどうすればよいですか?
Template Toolkit で、ハッシュリファレンスを含む次の変数があるとします。
「寿命」でデータを出力する最良の方法は何ですか?
私が試してみました...
^ハイフンが原因で失敗します。
^構文が正しくないため、これは失敗します。
^これは機能しますが、大量のデータを含む大規模なアプリでは実用的ではありません。
より良い方法はありますか?
私が取り組んでいるプロジェクトは Catalyst ベースの Web アプリであり、データはさまざまな外部 Web サービスから取得されるため、ハッシュ キーの名前は制御しません。Perl でデータを前処理して、問題のハッシュ キーの名前を変更してから TT に渡すこともできると思いますが、それはかなりくだらない回避策のようです。