iakuf 发表于 2012-11-07 00:32

Perl 的 Web 框架魔咒 (Mojolicious) 的中文网站-本帖回帖答疑

本帖最后由 iakuf 于 2014-09-05 10:35 编辑

兄弟们, 魔咒 ( Mojolicious ) 的中文网站来了.

http://mojo.php-oa.com

这个我是直接 git clone 原作者网站 http://www.mojolicio.us/ 的程序修改而成,并给其中的转换 POD 的模块小小修改了一下,在这个网站的当前路径下放上我译的中文的 POD 实现的。
原来我一直推 Dancer ,后来研究发现这个框架更加强大,另外这个的作者比 Dancer 更加关注自己的项目,本身作者就是 Catalyst 开发者,所以有着超级丰富的经验。这个框架是全异步事件支持的和 AnyEvent 可以无缝集成,所以注意一下自己的程序可以性能非常好。原生的模板技术非常不错, 基本语法和 Perl 一样,可以让你写模板的时候没学习时间上的成本.

以前我对它的可扩展表示怀疑,因为作者自己实现的东西感觉过多了。但现在发现其实非常非常不错,插件机制也很开放。非常建议大家重点关注.

我之所以后来选择这个是因为完整 Mojolicious 更加合适我当前的项目,所以花了些时间从 Dancer 转到魔咒这个新的框架。直到目前我都拿这个做了不下于 10 个项目了, 监控,设备管理之类都是使用这个, 从实践的经验上来讲越使用越舒服。

另外,我给这个小网站的设计是这样:
1. 当前目录有 pod 文件,会优先读取,所以我给中文 pod 按照路径放在这个下面(所以我会译完了直接会在这显示出来,也建议大家一起参与并给自己的 POD 放过来,我可能会做个中文的 CPAN网站)。
2. 当前目录文件不存在,就去读 Perl 中 @INC 相关的路径是否有相关文件。
2. 都不存在就会连接到 cpan 的网站上去。

如果学习魔咒 ( Mojolicious ) 的话,只是想实现和 Dancer 的功能,基本上你只要看 Mojolicious::Lite这个模块的使用就好了。
启动和帮助相关的命令,看看 Mojolicious::Commands 基本就完事了。整体所有功能都强大过 Dancer .

记录完成的大的部分,小的 POD 就不注明了,过程比较累啊。目前整个 Mojo 的基本 95% 以上的都中文化了,希望大家用得开心,有问题可以回复本帖子。

Mojolicious::Lite    单文件版 Web 应用,类似 Dancer .
Mojolicious    全功能版本, 更好的支持路径选择和文件层次结构与分类
Mojolicious::Guides::Growing   怎么由 Mojolicious::Lite 成长成 Mojolicious 全功能
Mojolicious::Guides::Routing    在 Mojo 中是怎么样做路径的选择指向指定的子函数来处理
Mojolicious::Guides::Rendering    网页生成和相关的一些简单的内容
Mojolicious::Guides::Cookbook    一些常用的小技巧
Mojolicious::Controller   主函数
ojo 强大的单行 Mojo 客户端和工具

大家想学习,只要认真看看前二个文章,想用得好,在看下面的就行了。还有不得不提一下 Mojo::UserAgent 超级好用。。下面提到的有用的一些好东西中第一个就是相关的文档

Mojo 中其它常用的东西

提取网页时所需要使用到的
Mojo::UserAgent 我使用过的目前最好的抓网页提取分析,测试网页最好的工具之一
Mojo::DOM 最好用的东西之一.取到的网页怎么样解析就靠这个中提供的"方法"
Mojo::DOM::CSSCSS 选择器, 上面 DOM 模块中取元素的语法, 基本和 JQuery 的 CSS 选择器的语法一样


网页相关
Mojo::Template 网页模板技术
Mojolicious::Plugin::DefaultHelpers很多好用的帮助我们写网页的小功能


写 Controller 时可以用到的一些常用对象
Mojo::Headers 所有 HTTP 头相关的方法
Mojo::Message::RequestHTTP 的请求相关的方法
Mojo::Message::ResponseHTTP 的响应相关的方法
Mojo::URL在 Controller 和模板中都很好用,用于管理 URL 生成之类

Wiki 上一些资料
其它语言象 UTF8 怎么样显示?
字符集怎么修改
非阻塞异步数据库连接和使用


另外 Mojolicious有 5 个教学的视频在 http://mojocasts.com 的网站,谁听力好,帮着给这个译成中文,然后我来提供 CDN 服务和帮助视频内嵌文字。

flw 发表于 2012-11-07 01:02

支持

mitiao 发表于 2012-11-07 05:42

支持楼主,使用Dancer就是从楼主那里听说的。。。

ttcn_cu 发表于 2012-11-07 08:12

有个疑问,这样的框架是适合个人开发还是企业使用?
我尝试去写个网站,但发现要自己搞定前后台实在太耗费时间了。
比如想搭建一个wiki, 结果发现要搞的东西太多了。数据库,前台,ajex,中文兼容性,跨浏览器支持。。。

LZ有何好的建议?

首天 发表于 2012-11-07 08:49

同问

ttcn_cu 发表于 2012-11-07 08:12 static/image/common/back.gif
有个疑问,这样的框架是适合个人开发还是企业使用?
我尝试去写个网站,但发现要自己搞定前后台实在太耗费 ...

iakuf 发表于 2012-11-07 09:50

ttcn_cu 发表于 2012-11-07 08:12 static/image/common/back.gif
有个疑问,这样的框架是适合个人开发还是企业使用?
我尝试去写个网站,但发现要自己搞定前后台实在太耗费 ...

小项目使用 Mojolicious::Lite 或 Dancer ,大项目使用全功能的Mojolicious。如果感觉 html,js,div 之类难搞定,就直接让别人写这部分,自己只做后台。后台程序都使用面向接口编程。这样你只要写逻辑,返回象 json 和 xml 之类的结构,然后在 HTML 中使用 js 来给内容展示出来,所以一个普通的逻辑处理都在15 行以内。因为所有基本操作只有增删改查。如下:
sub show {
    my $c = shift;
    my @resultset = $c->db->resultset('ServerIsp')->by_id_or_name($c->param('name'));
    my @json = map {{
      id          => $_->id,
      name      => $_->name,
      description => $_->description
    }} @resultset;
    $c->render( json => { isp => \@json } );
}

zhlong8 发表于 2012-11-07 12:11

我喜欢这个 ojo 模块,很好玩 :D)

懒狒狒 发表于 2012-11-07 14:26

新人膜拜了

mitiao 发表于 2012-11-07 15:51

回复 6# iakuf


    js接收json数据进行显示,是不是模板里的变量用的少了?

wxlfh 发表于 2012-11-07 15:55

支持楼主为Perl语言做贡献。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Perl 的 Web 框架魔咒 (Mojolicious) 的中文网站-本帖回帖答疑