問題タブ [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: DBIx::Class::Schema::Loader::make_schema_at() を静的に保存するにはどうすればよいですか?
PACKAGE ->add_columns() がすべてを lc しないように強制できるようにしたいと思い
ます。オプションがあることは知っていpreserve_case
ますが、どこに置くべきかわかりません。/conf に作成できる「myproj_schema.pl」ファイルはありますか?
mysql - Catalyst 作成スキーマは接続できませんが、接続できます
だから私は接続できます(明らかに、すべての実際の値を置き換えました)
しかし、Catalyt の create スクリプトを実行すると、
dbサーバーがwhereiam.comからの接続を許可していないように動作しますが、コマンドライン経由で問題なく接続でき、一時的にどこからでも接続できるようにdbを開こうとしましたが、まだ成功していません。提供できる情報が少なくて申し訳ありませんが、それが現在私が持っているすべてです。
perl - uri_for にはリダイレクトのポート番号が含まれます
nginx を静的ファイルのフロントエンド Web プロキシとして使用し、バックエンド Web サーバーに Starman を使用して、Catalyst アプリケーションを実装しようとしています。(私は Apache と FastCGI を使用でき、それは問題なく動作しますが、PSGI / Plack と Starman のすべてを解決したいと本当に思っています)
Starman は正常に起動し、 で私のリクエストを問題なく処理できますhttp://localhost:5000
。フロントエンド プロキシとして使用するために nginx を起動すると、URL が醜くなり、$c->uri_for
メソッドを使用するたびにポート番号 (5000) が乱れます。
例 :
いくつかのログが作成されているので、何が設定されているかX-Forwarded-Host
を確認できます。X-Forwarded-For
通常のリクエストの場合、(nginx からの) 値が設定されていますが、$c->uri_for
メソッドが使用されるときはいつでも、それらの値は存在しません。
他の誰かがこの問題を抱えていますか?
nginx または Catalyst conf の設定で他に何か不足していますか?
ありがとう!
nginx 構成:
これは同じ物理サーバー上で実行されますが、MyApp 構成で設定しました:
バージョン:
perl - MyApp.pm から Catalyst オブジェクト $c にアクセスする
Catalyst アプリで Assets プラグインを使用しています。すべてのページのアセットに JavaScript ファイルと CSS ファイルを含めたいと考えています。
私の最初の考えは、セットアップと構成を行う MyApp/lib/MyApp.pm から $c->assets->include('file.js') を呼び出すことですが、そこで $c を取得する方法がわかりません.
私の次のアイデアは、WRAPPER のものを使用し、[% c.assets.include('file.js') %] のような呼び出しをデフォルトの html テンプレートに配置することですが、呼び出しはオブジェクト情報をページにダンプするため、呼び出しは出力を抑制するために醜いこと。
ソリューションまたは新しいアイデアを歓迎します。前もって感謝します。
perl - Catalyst で使用するために Moose オブジェクトを JSON に変換するにはどうすればよいですか?
Catalyst::View::JSONを介してJSON::XSにフィードしようとしている一連の Moose オブジェクトがあります。JSON::XS は、祝福されたデータ構造をエンコードできません。MooseX::Storage::Format::JSONがあることを私は知っています。しかし、それはかなり重すぎるようです。私が探しているのは、本質的にXXX.pmが提供するものと同じ情報です。生データ構造を再帰的に unbless して、(内部で使用するドライバー) が表示できるようにしたいだけです。JSON::XS
JSON::Any
C:V:JSON
オブジェクトを使用Catalyst::View::JSON
しJSON::XS
て使用するための最良の方法は何ですか? Moose
私には4つの明らかな選択肢があるようです:
- 公開された引数が Moose オブジェクトである場合、リクエストを読み取ってファイナライズするようにパッチを適用することにより、Moose オブジェクトを操作し
Catalyst::View::JSON
ます。C:V:JSON
freeze
JSON::XS
の戻り値へのフォールバックにパッチを適用します$obj->freeze if $obj->isa('Moose') && $obj->does('MooseX::Storage::Format::JSON')
。および proxy によってMX:S:F:JSON
使用されるクラスが(使用するために呼び出されるMoose オブジェクトに対して別の内部エンコーダーを選択した場合に大量のバグが発生することを考えるのは嫌です。JSON::Any
MX:S:F:JSON
JSON::XS
JSON::Any
JSON::XS
- 再帰的に unbless する方法を見つけて、
Catalyst::View::JSON
そのことをやらせてください。 - 絶対に使わない
Catalyst::View::JSON
でください。STDOUT$obj->freeze
に書き込み、手動でリクエストをファイナライズするだけです。これは最もハックなようです。
他にもいくつかのオプションがあると思いますが、アイデアはありますか?私の最善の策は何ですか?
perl - Catalyst で構成をリロードする方法
Catalyst Web フレームワークで構成が変更され、Catalyst サーバーを再起動せずに構成をリロードする必要がある場合に、構成をリロードする方法。
html - PerlおよびCatalystでのユーザー入力からのHTMLの削除
PerlWebアプリにCatalystを使用しています。ユーザー入力からHTMLを削除するために受け入れられている方法は何ですか?
現在、私はHTML::FormatTextの使用に傾倒しています。しかし、この一般的なタスクを実行するためにCatalystに組み込まれているユーティリティが見つからないのは奇妙に思えます。私はそれを見つけられませんでしたか?また、入力を削除するためのこれらのモジュールには、5行のコードが必要なようです。私は単純な「deHTMLify()」メソッドを望んでいました。私は自分で転がることはできると思いますが、車輪の再発明をしたくありませんでした。
HTML :: FormFUのようなフォーム検証モジュールがこれを行うと思いますが、その複雑さを避けたいと思っています。私のフォームは短くてシンプルです。この決定は間違っていますか?
私はそれを正しくやっていますか?
perl - Perlバージョン文字列:なぜEVAL EXPRを使用するのですか?
によって生成されたこれに気づきましたCatalyst.pl
。それは明らかにある種の注釈のないハックです。このようなバージョン文字列を設定する利点は何ですか?彼らが何をしようとしているのかさえ理解できません。
perl - Perl Test::Moreとテスト要件の設定
Test::More
テストを実行し、呼び出し元を中止する機能を備えたモジュールが必要になることがよくありますtest_plan
。のプラグインリストを設定する一連のテストがありますCatalyst::Test
。それらが存在するかどうかを確認するためにテストチェックを行う必要はありません。代わりに、これらのプラグインが存在しない場合、スクリプトを中止したいと思います。
のバグを追跡しようとしていましたが、Catalyst::Authentication::Store::DBI::ButMaintained
このバグがに存在することに気付きましたCatalyst::Authentication::Store::DBI
。ここにあります:
ご覧のとおり、は包含をeval/skip_all
チェックしませんAuthorization::Roles
が、プラグインであるため、テストはそれに依存します。
ただし、別の質問があります。これよりもテストの依存関係を指定するためのより洗練された方法はありますか?私の目標は元の作者と同じであることを忘れないでください。テスト要件が存在しない場合は、単にテストをスキップしたいと思います。理想的には、この場合、Catalyst::Test
プラグインメカニズムをラップするためにハックしCatalyst::Plugin::*
て、残りの部分をなしで実行するためのより良い方法を見つけたいと思いeval/skip_all
ます。
perl - Nginx、Starman、Plack、Catalystを使用したアプリケーションのランタイムエラーはどこにありますか?
Dave RolskyのSilkiディストリビューションで見つけたデーモンスクリプトを使用して、Plack+Starmanを使用して開発マシンでCatalystアプリをサーバー化することに成功しました。
次に、スターマンサーバーにリバースプロキシするようにnginxを設定し、nginxが提供する静的ディレクトリのエイリアスを作成しました。ここまでは順調ですね。ただし、アプリケーションSTDERRがどこにログを記録するのか迷っています。それはnginxに到達していません(私はそれが理にかなっていると思います)が、Starmanがそれをどこに記録しているのかについての多くのドキュメントを見つけることができません-どこにでも。Plackのミドルウェアモジュールを確認しましたが、アクセスログのオプションしか表示されませんでした。
誰かが私を助けることができますか?