AdonisJs 中文文档翻译于 3 天内圆满完成,感谢各位,一路有你!
https://github.com/adonis-china/docs
中文社区 http://adonis-china.org 正积极筹备中,诚邀各位前辈参与中文文档的翻译。
域名备案中, 可先用 http://adonis.genyii.com/ 临时访问
首先,真诚感谢我们的翻译团队:#
- @wxs77577
- [@copydog](https://learnku.com/users/15195)
- [@dxc1996](https://learnku.com/users/13493)
- @linganmin
- @river-lee
得益于他们的不懈努力,我们 AdonisJs 的中文文档翻译工程在短短 3 天内就已经全部完成,大家辛苦了!
我们时刻欢迎你的积极参与,发现问题,贡献更好的翻译内容。
Github Readme:#
AdoninJs 中文文档 (已完成,待完善)#
Founded by Adonis China (域名备案中,请移步临时访问地址)
首先,真诚感谢我们的翻译团队:#
得益于他们的不懈努力,我们 AdonisJs 的中文文档翻译工程在短短 3 天内就已经全部完成,大家辛苦了!
我们时刻欢迎你的积极参与,发现问题,贡献更好的翻译内容。
贡献流程#
- Fork 本项目到你自己的账号下,并 clone 到本地
- 查看『章节认领』后提交一个 Issue,申请你要翻译的章节。如:申请翻译『AdonisJs 一览』
- 得到回复后即可在你本地翻译对应章节,为保证效率,强烈建议配合 Google Translate
- 请务必于 3 日内完成翻译,完成后发送 Pull Request
章节认领 (已完成)#
序言#
- @wxs77577 AdonisJs 一览
- @wxs77577 贡献导引
- @wxs77577 发行说明
核心理论#
- @wxs77577 MVC 模式
- @wxs77577 IoC 容器 & Service Providers
- @wxs77577 生命周期
起步#
- @linganmin 安装
- @linganmin 目录结构
- @linganmin 配置
- @linganmin 环境变量
- @copydog 路由
- @copydog 请求
- @copydog 响应
- @copydog 中间件
- @copydog 控制器
- @copydog 文件
视图#
- @copydog 视图
- @river-lee Nunjucks 模板
- @river-lee 表单生成器
数据库#
LUCID#
- @linganmin Lucid
- @linganmin 关联
- @linganmin 数据库 Hooks
- @linganmin Getters & Setters
WEB 开发工具#
- @river-lee 交互式 Shell Aka Ace
- @river-lee 认证
- @river-lee Cookies
- @river-lee Mail
- @river-lee 错误和异常处理
- @river-lee 事件
- @dxc1996 助手
- @dxc1996 Sessions
- @dxc1996 验证
- @dxc1996 Redis
- @linganmin 国际化
- @linganmin 基于 Ally 的社交登陆
- @linganmin WebSocket
教程#
- @river-lee 起步
- @river-lee 路由和控制器
- @river-lee 数据库模型
- @river-lee 显示博客列表
- @river-lee 创建博客
- @river-lee 整理
安全#
个人观点#
- 我不认为 Node.js 是 js 就应该保持所谓的简单。这根 10 年前 PHP 刚出来那段时间的想法是一样的,有些人认为他之所以选择 PHP 而不是 Java 就是因为它简单,所以应该抛弃框架,甚至无视 OO,拥抱 function。但现在?试问谁还会在你面前炫耀自己的 mysqli 函数用的有多 6?就像现在还有多少人在你面前炫耀自己的 CSS 能兼容 IE6、7、8?
- 现在的 Node.js 跟以前的 PHP 几乎如出一辙,历史总是不断重演。以前 PHP 刚出来的时候 Zend Framework 几乎是所有 PHPer 心中的终极造诣。而今,Laravel 就像 Chrome 统一 PC 端、Js 统一全栈一样蚕食着其他的 PHP 框架。TP?呵呵。
- 至于抨击 MVC 的,我觉得可能是对 MVC 的理解过于狭隘了,就像某些人认为设计师就是美工、前端就是切图一样。我所理解的广义 MVC 是这样的:
- M 是 Model,但不代表它就是指 Models 文件夹中的 User.php 或 User.js。模型是对一个实体的定义,包括它的属性、方法。所以很多拆分出来的 Service 层、Logic 层甚至 Repository 也属于模型的范畴,只不过为了便于管理或遵循 SOLID 原则做的拆分。
- C 是 Controller,同样也并非仅仅是指 UserController.js 文件。控制器负责的是接收请求,发号施令,最后发回数据。所以,以前被忽略的 Route 层也属于控制器的范畴。路由接收请求,让 Controller 中的 Action 来执行或者直接一个匿名函数来处理这都是控制器做的事情,难道就因为它的名字不叫 Controller 就说这不是控制器?
- V 是 View,一样,不是指什么 blade、njk、pug 文件。View 是面向请求者的,所以请求者需要什么格式,控制器就给他响应什么格式。很简单的例子,目前大家所了解的 API 接口内容类型协商,假设请求的 API 地址是 http://api.example.com/user,那服务端会根据请求时传递的 header 或地址伪造后缀,取到自己想要的数据。比如: user.json 和 user.xml 分别返回 json 和 xml 格式的数据,难道最终呈献给网站用户看到的叫 View,而呈献给前端接口的就不算 View 了?狭隘!
- 所以,抱怨 MVC 不好用,想想看是不是自己能把它用好,而不是直接 mkdir 三个文件夹然后对应放文件就叫 MVC。而且现在基于 MVC 有很多变体,但万变不离其宗,理解透了,一切皆 MVC 就如一切皆对象那样顺理成章。
- 为什么不选 xxx.js?就像我在说 Laravel 的时候问为什么不用 Yii2 一样。我需要考虑当下环境和未来趋势以及最关键的:架构。目前 PHP 的大环境就是 Laravel 一家独大,而且基本上代表了 PHP 的未来,而且它的逻辑严谨、架构合理、功能完善再加上国内外海量插件,俨然就是一个框架界的 Wordpress。关键是他有一大批国内外的粉丝,这时候出来一个几乎无成本切换的 Node 版的 laravel 和一个 Node 版的 xxx.js,我一个 Laravel 的脑残粉会怎么选?再者,这名字让我无法不联想到 ThinkPHP,哎!
推荐文章: