从php到Ruby

原文 https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-php/

PHP是广泛使用的Web应用程序,但是如果你想使用的Ruby on Rails或只是想要一个更适合于一般用途的语言,Ruby是值得一试。


在php和ruby 中的相似之处:

  • Ruby和php一样 ,都是动态语言,所以不用担心声明变量的问题
  • 他们拥有类,你可以像php5中一样使用 (public,protected,private)
  • 一些变量以$开头,和php中一样(在ruby中不是全部都是)
  • 都有eval
  • 在php中 是“$foo is a $bar”,在ruby中 "#{foo} is a #{bar}". 只适用于双引号,不是单引号
  • ruby 和 php 一样都有异常
  • 都有一个相当大的标准库
  • 数组和hash差不多一样,如果你把数组转换成成hash,array('a' => 'b') 就变成了{'a' => 'b'}
  • true和false和php一样 ,只是null在ruby中是nil


ruby不同于php之处:

  • 数据类型明确。你需要 to_s, to_i等去进行字符串,整数之间等转换。而不是单单仅靠语言来完成。
  • 字符串,数字,数组,hash等都是对象。abs(-1)表示的是  - 1.ABS。
  • 括号中是可选的,除非明确说明哪个方法调用
  • 标准库和扩展的模块和类的命名都是有约定的,如下划线
  • 对象自带Reflection(反射),而不是像php5中需要用Reflection类(反射类)
  • 变量引用的方式。
  • 没有抽象类或接口。 
  • hash和数组是不通用的。 
  • 只有false和nil是假的:0,array()和 “” 都是true。 
  • 几乎所有的东西是一个方法,甚至raise(在PHP中的 throw)。 

rubyPHP的高性能体现在以下几个方面: 1.页面缓存。页面缓存指之前加载过的页面以文件方式缓存在服务器中,在一段时间内再次加载相同页面时无需重新执行页面逻辑直接加载静态页面rubyPHP页面缓存是自动进行的,在config/tpl.php中可配置是否启用缓存以及缓存文件的有效期。当然这仅仅是全局设置,在调用视图时可重新指定是否启用缓存以及缓存有效期。 2.SQL缓存。sql缓存指之前执行过的查询sql语句以及他的结果缓存在内存中,在一段时间内用相同的sql语句执行查询操作时不经过数据库直接返回内存中数据。rubyPHP使用Redis以键值方式缓存sql语句以及他的对应结果。rubyPHP能够在php7上完美运行。(附:关于windows php7 redis 扩展的下载参照我的另一篇博客:http://blog.csdn.net/fanghailiang2016/article/details/51396649)。rubyPHP重写了mysql_query以及mongo_query方法,在执行查询sql查询语句时会优先加载未过期的缓存数据。与页面缓存类似,sql缓存的全局配置路径为config/redis.php,在具体执行sql语句前可重新执行是否使用缓存以及缓存有效期。 3.读写分离。读写分离是建立在主从同步基础上为了减轻服务器压力,将查询语句转移到从服务器上执行的解决方案。rubyPHP重写了mysql_query,mongo_query函数,除了对查询语句进行内存级缓存的优化,同时也将查询语句放到了从服务器上执行。mysql的主从配置文件路径为config/mysql.php
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值