近期,WordPress.com已经用Web技术和RESTful后端API来替换原来使用PHP编写的管理后台。

\\

当提到为什么WordPress.com决定将管理后台的编写语言从PHP换成JavaScript时,WordPress.com的母公司,Automattic Inc.的创始人兼CEO Matt Mullenweg说道:该管理平台的建立已经难以适应即将到来的工作变化,并且也不利于WordPress的优势发挥。这次调整所影响到的主要部件是系统的管理主界面,该界面在3.8版本时已经有过一次重建,但这次重建却让Mullenweg觉得“渐进式的调整并不会给我们想要的重大改进。”他还补充道,“向后的兼容性问题以及没有采用JavaScript”才是造成系统界面成为现在这个样子的主要原因。

\\

Automattic决定重新回到2014年来使用Web技术——JavaScript、HTML、CSS、Node.js、React、Flow、WebPack、Babel,并且通过RESTful API来访问后端,从而打造一个名为Calypso的全新管理界面。Calypso项目负责人Andy Peatling还曾写过一篇文章,阐述了对于一家使用PHP/MySQL的公司改用JavaScript有多么重要的意义。刚开始他们只有几个高级JavaScript程序员来推动这个项目,其他人都是“被迫”参与Calypso项目的。他们刚开始还使用了Trac作为项目管理工具,并且只做很少量的代码审查。当他们开始使用GitHub以及提交代码后的Pull Request System时,代码审查才让他们意识到“内部的协作原来还能这么简单,以及个人工作完成后如何获取更多更好的反馈。”尽管有些人最初是被迫加入到这个项目当中的,代码审查还是“极大地增强了整个代码库的质量并且帮助所有人在JavaScript的技巧上有了明显的提升。”20多个月后,他们也从最初的7名开发人员增加到127名开发人员,并产生了26000次的代码提交。整个团队都实现了持续的内部融合。

\\

全新的系统界面是一个单页面的应用系统,该系统具有响应式设计,并可适应于多种尺寸的屏幕大小。根据该系统的功能比较表,Calypso由于具有接近即时页面加载,即时发布,多目标页内预览,无需重载、实时应用变更等功能而变得更加迅速。

\\

Peatling评论道,使用JavaScript响应式设计的其中一项好处是创建桌面端或手机客户端应用程序比原来更容易了。

\\

\

“在2015年中,Calypso代码库已经足够优秀以至于可以在网络浏览器之外进行使用。由于Calypso项目完全是由Javascript,HTML和CSS编写而成的,因此它能通过创建轻量级的Node.js服务器进而在设备本地运行。通过使用名为Electron的技术,我们建立了本地的桌面客户端,并在系统内部运行相同的代码。我们首先建立Mac版的桌面客户端,该客户端现在已经可以提供下载,很快我们就会上线Windows版和Linux版的桌面程序。当我看到这些程序逐个上线,并且内部已经开始使用的时候,真的开始觉得之前我们为了构建Calypso代码库所付出的所有辛苦都得到了证明。”

\

\\

Automattic已经对Calypso项目的源码进行了开放,但是Mullenweg称,他们仍然有“一堆问题去解决插件、扩展性、贡献、Windows和Linux发行版、API速度、本地化等问题以及深度融合the WordPress.com API和WP-API以便于它能更好地与Core WordPress进行协作。”当然,他们也将问题留给开发者社区来决定是否用Core WordPress中的Calypso所包含的内容来替换当下的管理界面。

\\

根据W3Techs的最新统计表明,WordPress如今被全世界1/4 的内容管理系统所使用,相比于它们2011年的数据提高了13%。

\\

查看英文原文:WordPress.com Replaces PHP with JavaScript

\\


感谢张龙对本文的审校。

\\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群(已满),InfoQ读者交流群(#2))。

WordPress.com使用JavaScript替换掉PHP相关推荐

  1. 厉害了!不重启JVM,替换掉已经加载的类

    欢迎关注方志朋的博客,回复"666"获面试宝典 在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话: &q ...

  2. 骚操作 | 不重启 JVM,替换掉已经加载的类,偷天换日?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:美团技术博客 Java对象行为 java.lang.inst ...

  3. 骚操作:不重启 JVM,如何替换掉已经加载的类?

    本文来源:美团技术博客 Java对象行为 java.lang.instrument.Instrumentation 直接操作字节码 BTrace Arthas 三生万物 在遥远的希艾斯星球爪哇国塞沃城 ...

  4. excel:替换问号?时会所有数据被替换掉(通配符问题)

    如图,替换问号?为#,会替换掉所有数据.因为?是通配符,可代表任意单个字符 解决方法:用~?转译? 总结:在Excel中通配符有3个,分别为?(问号).*(星号).~(波形符). ?代表任意单个字符: ...

  5. handlebars.js 用 br替换掉 内容的换行符

    handlebars.js 用 <br>替换掉 内容的换行符 JS: Handlebars.registerHelper('breaklines', function(text) {    ...

  6. 不重启JVM,替换掉已经加载的类,偷天换日?

    来源 | 美团技术博客 在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话: "Debug一下吧." &q ...

  7. 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | AMS 启动前使用动态代理替换掉插件 Activity 类 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  8. MobileIMSDK怎样修改服务端核心jar包的源码并替换掉Java服务端的jar包

    场景 MobileIMSDK怎样将Java服务端运行起来以及打成jar包运行: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/11 ...

  9. idea使用jar包依赖,替换掉项目依赖

    idea使用jar包依赖,替换掉项目依赖 最近遇到了个问题,父子项目中,原本一个项目在idea下默认是项目依赖于另一个子项目,但是由于当前开发分支里不包含相应的代码,最新代码在别的分支,导致项目依赖时 ...

最新文章

  1. QT代码格式化快捷键
  2. 国考中的电子信息类与计算机类,信息工程属于什么类-电子信息工程在公务员考试中属于计算机类吗 – 手机爱问...
  3. Elasticsearch 不同的搜索类型之间的区别
  4. boost::hana::sfinae用法的测试程序
  5. 多个php一个机器,如何利用docker在同一台机器上搭建多套php开发环境?
  6. 智能运维监管系统终端_什么系统能实现机房智能运维?
  7. 九张 Gif 图回顾 Web 设计的 25 年历史
  8. (二)stm32之中断配置
  9. SVN(TortoiseSVN)提交时忽略bin跟obj目录
  10. 微信小程序电商实战-购物车(上)
  11. TopJUI通过简单的代码实现复杂的批量提交功能
  12. python实现topsis法
  13. ABB机器人VGT文件_ABB机器人GSD文件
  14. android+国家区号api,android国际区号选择器
  15. php token过期时间,token过期是什么意思
  16. Cacti监控华为交换机不显示端口解决办法
  17. Spring源码系列(十三)——Spring源码编译及详细注解
  18. Photoshop Elements 2023(PSE简化版2023) 支持win/mac版
  19. Linux电脑睡眠后黑屏打不开,电脑睡眠后黑屏打不开怎么解决
  20. 2014腾讯校园招聘实习笔试题

热门文章

  1. 【rnnoise源码分析】rnn_train中的训练模型
  2. LeetCode 289. Game of Life--Java,Python解法
  3. Linux在shell终端中清空DNS缓存,刷新DNS的方法(ubuntu,debian)
  4. 【Zookeeper】Zookeeper一致性协议——ZAB
  5. Elasticsearch之Mapping
  6. html标签一对一绑定的组件,一种原生组件替换HTML标签的轻量级方法尝试
  7. 删不干净_华为手机照片删了又删,内存还是严重告急,终于知道是为什么了!...
  8. docker rails mysql_MySQL 进行 Docker 容器化之体验与感悟
  9. java array arraylist_java 基础 array arraylist..越详细越好。
  10. android6 运行,Xbox串流开放测试,只需安卓6即可运行