问题标签 [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 - 如何将 Haml 与 Catalyst 一起使用?
是否可以在Catalyst Web 框架中使用Haml而不是模板引擎?
perl - 我在 Catalyst 中的何处放置持久数据?
我正在编写一个 Catalyst Web 应用程序,它呈现一些在请求之间不会改变的数据。我想在应用程序启动时加载这些数据并将它们粘贴到某个地方,以便相关控制器可以使用它们。我应该在哪里加载这些数据,我应该在哪里存储它?起初我尝试将它加载到主App.pm
文件中并将它们放入应用程序配置中。这可行,但很难看,因为该App.pm
文件被许多不真正属于一起的加载潜艇乱七八糟:
然后我想我可以在使用它们的控制器中加载一些数据并将它们存储在控制器的配置哈希中。这也不是完美的,因为不止一个控制器需要一些数据。
我还认为我可以将数据本地化到控制器而不是共享它们。这感觉很好,因为我会在一个地方或多或少地拥有所有处理数据的代码。问题是控制器还必须为其他控制器呈现部分结果页面——例如,如果标题页控制器想要显示最近新闻的列表,它必须要求新闻控制器呈现列表。这似乎不是在 Catalyst 中做事的首选方式。
你会如何解决这个问题?
(数据的性质:这是一个音乐节的网站。有一个阵容,一个赞助商列表和其他从 YAML 文件中提取的简单数据,因为数据库将是多余的并且难以编辑。)
xml - 如何使用 XML::Simple 配置 HTML::FormFu?
我假设您可以将 XML::Simple 与 HTML::FormFu 一起使用,因为 FromFu 使用 Config::Any 来加载它的配置数据。
但是,我似乎找不到与 HTML::FormFu 一起使用的任何示例 xml 配置。不仅我得到一个错误。我不确定我的 xml 结构是否正确以创建所需的表单。例如,在选项上,formfu 想要一个数组引用数组。但我很确定这个 xml 会产生一个哈希引用数组。
我做的不对……这是我的 xml 文件的开头:
我收到此错误:
perl - 如何访问父控制器中每个请求中的存储?
我正在尝试重构我的 Catalyst 应用程序,并且我想为我的控制器引入一个公共基类。这个基本控制器会为每个请求加载一些数据并将一些其他数据放入存储中。我在去藏匿处遇到了一些麻烦。auto
简单的解决方案是在基本控制器中实现默认操作。这可行,但我必须记住始终auto
在派生控制器中调用 super 。这个很容易忘记,有没有更好的解决办法?换句话说:有没有一种简单的方法来利用派生控制器中不容易破坏的请求处理?
perl - 如何将公共路径转发到另一个 Catalyst 控制器?
假设公共 URL /faq 链接到我的 Catalyst 应用程序中的私有路径 /faq/index:
如何从另一个控制器转发到 /faq ,即我如何知道 URL /faq 的操作是 /faq/index ?就像是:
perl - 如何在我的主应用程序文件中加载 Catalyst::Plugin::SmartURI?
我正在研究一些没有单独配置文件的大型 Catalyst 代码库。但是,在主模块中,它确实具有以下内容:
所以我希望我可以在那里添加 SmartURI 配置,如下所示:
但看起来这还不足以加载或启用它。
所以,我显然错过了一些东西,任何帮助表示赞赏。
附言。插件 + deps 已通过 CPAN 安装。
perl - 我应该如何使用 Catalyst 在 Perl 中进行 RPC?
我一直在努力寻找一种好的 RPC 形式来标准化,但到目前为止,我遇到了很多问题,想知道 stackoverflow 社区的观点是什么。
我理想的 RPC 将提供以下内容:
- 对其他语言的广泛支持,因为人们不应该编写自定义堆栈来使用我们的服务器
- 输入验证
- 理想情况下,将上述输入验证转换为某种自动化文档以分发的某种方式
- 干净和可维护的代码
我是催化剂框架的粉丝,并且更愿意坚持使用它,但如果 RPC 服务器有明显更好的替代方案,我也会对此持开放态度。
到目前为止,我已经看过以下内容:
Catalyst::Controller::SOAP 似乎不支持返回复杂的数据结构,只支持 string('literals')。我可能可以在此之上序列化数据,但这似乎很hacky。它还允许您返回一个预先形成的 XML 对象,但我无法让它工作,而且看起来您需要重新创建大量 SOAP 数据结构才能使其工作。
我确实喜欢 WSDL 的想法,但整个规范的复杂性也让我想知道对与其他语言通信的支持会有多好。
自定义 POSTing 基于 XML 的控制器 我们尝试以与我们最近看到的另外两个项目类似的方式手动滚动我们自己的控制器,其中有一个您可以将 XML 发布到的调度 url。这使您可以拥有 XSD 验证/文档,但需要创建比我们现在想要维护的更多的代码。
Catalyst::Plugin::Server::XMLRPC 就使用过时的方法发出警告,该方法将在未来版本的 Catalyst 中删除。没有输入验证或文档创建,但除此之外是我发现的最好的
JSONRPC 看起来与 XMLRPC 非常相似,只是模块实际上是更新的。除非有人提出更好的建议,否则我可能会接下来使用这个。催化剂似乎也有两个不同的模块可以执行 JSONRPC
perl - 如何在运行时使用 DBIx::Class 和 Catalyst 添加关系?
在我正在构建的应用程序中,用户可以指定表之间的关系。
由于我只在运行时确定这一点,因此我无法在模式模块中指定 has_many 或 belongs_to 关系以进行启动。
所以给定两张表;系统和地点,我想添加关系以连接它们之间的记录。
我有以下解决方案的一部分:
因此,该列fk0
将是映射到位置主键的外键id
。
我知道必须重新注册才能允许将来访问该关系,但我无法弄清楚。
perl - 如何在 Template Toolkit 模板文件中覆盖 WRAPPER?
有没有办法通过模板或临时覆盖来禁用WRAPPER
在 new(\%config)parse()
中设置的 a ?我想要一个默认值WRAPPER
(我将用于 99.9% 的模板),但排除一些。
我一直在做这一切,Catalyst::View::TT
就像配置概要中的示例一样,除了我不希望WRAPPER
应用于我的所有模板。
perl - 如何处理 Template Toolkit 中包含非法标识符字符的哈希键?
在 Template Toolkit 中,如果我有以下包含 hashref 的变量:
在“生命周期”中输出数据的最佳方式是什么?
我试过了...
^由于连字符而失败。
^这会失败,因为语法不正确。
^这可行,但在具有大量数据的大型应用程序中是不切实际的。
有没有更好的办法?
我正在处理的项目是一个基于 Catalyst 的 Web 应用程序,数据来自许多不同的外部 Web 服务,因此我不控制哈希键的名称。我想我可以在 Perl 中预处理数据,在给 TT 之前重命名问题哈希键,但这似乎是一个非常糟糕的解决方法。