V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
adkudao
V2EX  ›  问与答

请问有没有 php 或者 ruby 可以用的, 类似 LeanCloud 的服务

  •  1
     
  •   adkudao · 2015-09-11 13:10:12 +08:00 · 3374 次点击
    这是一个创建于 3363 天前的主题,其中的信息可能已经有所发展或是发生改变。
    LeanCloud 开发移动端确实是神器啊, 可是他们公司没有 php/ruby 工程师;

    网上的第三方 SDK 很难保证稳定性;

    请问国内有没有 php/ruby 能用的, 类似 LeanCloud 这样的 BaaS 服务?
    20 条回复    2016-02-02 17:26:06 +08:00
    qinix
        1
    qinix  
       2015-09-11 14:39:42 +08:00   ❤️ 1
    直接用他们的 REST API 呗
    cnpaas
        2
    cnpaas  
       2015-09-11 21:07:24 +08:00   ❤️ 1
    试试 CNPaaS :
    http://www.cnpaas.io/
    adkudao
        3
    adkudao  
    OP
       2015-09-11 23:04:46 +08:00
    @qinix 没原生代码好用


    @cnpaas 谢谢, 但这个应该还在测试阶段吧, 生死未卜, 我可不敢用他们的服务
    hjiang
        4
    hjiang  
       2015-09-21 15:55:09 +08:00
    LeanCloud 的官方 PHP SDK 已经在开发了。
    adkudao
        5
    adkudao  
    OP
       2015-09-21 20:51:03 +08:00
    @hjiang

    非常期待, 我前几天自学 node.js 和 python 分别写了一套基于 LeanCloud 的系统,不是很顺手, 然后又自己用 REST API 写了一套 php 的系统
    adkudao
        6
    adkudao  
    OP
       2015-09-21 20:51:22 +08:00
    @hjiang

    提两点建议:

    一. 能否添加对 SQL 语句 的支持?

    在不考虑后台的情况下, LeanCloud 对于快速推出产品原型很有帮助, 但如果考虑同时生成后台的话,个人感觉 LeanCloud 并不是很方便;

    举例 1: 在读取 test 这张表(Object)时, 我要用 '字段 1 > 字段 2' 这样的条件来筛选:
    如果用 SQL 语句, 直接 'where 字段 1 > 字段 2'就可以了,
    但如果用 LeanCloud 提供的接口, 很难完成这样的操作;


    举例 2: 我要获取在 2015-06-29 当天发布的微博, 如果用官方提供的查询方法, 大概类似这样:
    --data-urlencode 'where={"createdAt":{"$gte":{"__type":"Date","iso":"2015-06-29T00:00:00.000Z"},"$lt":{"__type":"Date","iso":"2015-06-30T00:00:00.000Z"}}}' \

    如果用 SQL 语句, 只要这样就可以了:
    'where time > 时间 1 and time < 时间 2'


    而且这只是查询,如果再加上排序等其他条件的话, LeanCloud 现有的接口真的太复杂,太不方便了,如果可以简化的跟 SQL 语句一样的话, 绝对是功德无量, 造福大家的;

    我个人建议可以参考常见的 Web 框架, 进行 CURD 操作, 比如读取列表可以这么写
    $list = M('表名 /Object 名') -> where(SQL 条件) -> order(排序条件) -> limit(索引条件) -> select();

    $list = M('Test') -> where('quota > finish and time > XX 时间') -> order('time desc, id asc') -> limit(20, 10) -> select();




    二. 能否修改字段属性?
    比如我在使用 REST API 的时候, 明明存储的字段是数字, 结果到控制台一看, 就变成了字符串, 在做条件查询时, 也必须按字符串来做查询约束,否则出错; 我想在控制台更改该字段的属性, 结果发现改不了, 只能删了以后再手工添加一个, 可这么一来, 数据就没了;
    hjiang
        7
    hjiang  
       2015-09-22 12:47:25 +08:00
    @adkudao LeanCloud 本来用的就不是 SQL 数据库,所以是不能支持 SQL 的所有功能的,这并不是一个语法上支持的问题。但是我们支持一个类似的 DSL ,我们把它叫做 CQL : https://leancloud.cn/docs/cql_guide.html 可以看文档了解。

    关于第二个问题,应该是你在传递 JSON 数据时使用的格式造成的,数字两边打上了引号就变成了字符串。对于已经有数据的表,我们不好支持修改字段类型,因为没有通用的处理办法。
    adkudao
        8
    adkudao  
    OP
       2015-09-23 02:37:38 +08:00
    @hjiang

    CQL 太好了, 粗略看了一下, 果然跟 SQL 语句差不多, 我下一个项目的技术选型就试试它, 非常希望可以成为你们的付费用户!

    加油, 祝 LeanCloud 越来越简单易用, 接口越来越强大, 付费用户越来越多.
    LeanCloudRRY
        9
    LeanCloudRRY  
       2015-10-09 11:47:54 +08:00   ❤️ 1
    PHP SDK 已经发布并开源→ https://github.com/leancloud/php-sdk
    adkudao
        10
    adkudao  
    OP
       2015-10-09 21:10:11 +08:00
    @LeanCloudRRY 太漂亮了! 鼎力支持! 只是, 说好的文档呢?
    adkudao
        11
    adkudao  
    OP
       2015-10-09 21:30:50 +08:00
    @LeanCloudRRY

    还有一个很重要的地方, CQL 语言是如何调用的呢? 我翻遍了 tests 文件夹, 貌似没有找到
    CQL 语言对于快速查找遍历数据很有用, 怎能少得了它~
    juvenn
        12
    juvenn  
       2015-10-10 14:30:49 +08:00
    @adkudao php-sdk 正在全力开发中,功能还在完善中。我们会尽快发布,敬请期待。
    adkudao
        13
    adkudao  
    OP
       2015-10-10 16:56:34 +08:00
    @juvenn 无比期待 CQL 能够尽快集成,支持你们!
    LeanCloudRRY
        14
    LeanCloudRRY  
       2015-11-09 13:48:06 +08:00
    @adkudao 正式发布了哟,再 mark 一下,希望能够给我们提出意见和建议~
    adkudao
        15
    adkudao  
    OP
       2016-01-19 15:12:50 +08:00
    @LeanCloudRRY 不好意思, 前段时间没上 V 站, 我现在看下, 晚点给你们意见
    adkudao
        16
    adkudao  
    OP
       2016-01-20 03:13:19 +08:00
    @LeanCloudRRY @juvenn

    我看了你们的 Github, 不知道你们希望是以技术驱动产品还是以市场驱动产品?

    如果想以市场驱动的话, 我这里有个建议:

    你们作为一款 BaaS 产品, 要扩大份额就要靠易入门和宣传;

    要保住份额的话, 最重要的是稳定和速度;

    易入门你们已经做的很好了,不过还可以更好, 比如我发现你们写文档时, 似乎优先去做你们的那些 LeanObject,LeanQuery 类;

    但我觉得你们优先把重点放在 CQL 上效果会更好;


    还是用我上面举的例子,我要获取在 2015-06-29 当天发布的微博,

    如果用你们提供的文档, 我可能需要耐着性子去一个一个看你们声明的各种方法, 格式, 结构...
    最后可能才能勉强拼出下面这段代码
    --data-urlencode 'where={"createdAt":{"$gte":{"__type":"Date","iso":"2015-06-29T00:00:00.000Z"},"$lt":
    {"__type":"Date","iso":"2015-06-30T00:00:00.000Z"}}}' \

    作为一个想使用你们产品的新人, 恐怕很多人看了第一个方法后就直接放弃了,更别提还要组合;

    一个是未必能弄懂怎么去组合这些查询方法, 二个是勉强组合出来的代码, 有很大可能性会出错, 运行不了, 然后, 就再也不会使用你们产品了, 你懂的..


    但如果你们一开始大书特书你们的 CQL 查询方法, 告诉别人就像用 SQL 一样去使用就行了, 比如要实现我刚说的查询, 只要下面这行代码就够了:
    'where time > 时间 1 and time < 时间 2'

    那么我很难想出不用你们产品的理由;


    ----------------------------------------------------------------------

    这就是我给你们的建议: 优先做 CQL, 加强 CQL, 完善 CQL:
    1. 把学习成本降低到近乎为 0, 把易入门做到极致;
    2. 让开发更简单, 节约用户大量的开发成本;

    ----------------------------------------------------------------------



    我看你们文档里有提到使用 CQL 可能会导致性能的一些下降, 不过既然用了你们的产品, 想必不会对速度要求特别高, 而且, 程序员的时间, 比机器时间更宝贵, 不是吗?
    adkudao
        17
    adkudao  
    OP
       2016-01-20 03:23:38 +08:00
    @hjiang @LeanCloudRRY @juvenn

    对了, 除了刚才的建议, 正好问你们一件事,

    你们的 JavaScript SDK 的 AV.File 接口 , 能否实现在安卓手机浏览器下的文件上传?

    我们都知道安卓有不少版本, 都把 file input 给屏蔽了, 用普通的上传文件方法根本上传不了文件, 我一般都是用微信的上传接口上传的文件, 不知道你们的接口是否可以突破这个限制?

    如果可以, 是否可以扩大一点, 比如能否在 AppCan, APICloud 这种 Hybrid 混合方式用使用? APICloud 他们也做了一个轻 BaaS 平台, 好像是可以上传文件的, 只要能连 HTTP, 就可以通过转码的方式上传;

    希望你们有这个功能, 对于需要适配 Android 的移动网页开发者来说, 应该是个刚需;
    adkudao
        18
    adkudao  
    OP
       2016-02-01 04:17:00 +08:00
    @hjiang @LeanCloudRRY @juvenn

    PHP SDK 完全不能用, 直接用你们的代码, KEY 什么的都没问题, 一个实例都运行不了, PHP 版本 5.3, 5.4 都用过了
    leeyeh
        19
    leeyeh  
       2016-02-02 17:24:53 +08:00
    JavaScript SDK 支持包括微信 webview 在内的 Android 运行环境,具体方式请参考 https://leancloud.cn/docs/js_guide.html#文件。

    Android 微信无法通过 file input 上传文件的问题我搜到的资料都比较旧了,不知道现在的支持情况如何。除了使用原生的 file input 控件我们还支持通过 base64 上传文件、保存一个现有存储在其他服务上的 URL 的文件对象。

    对于 Hybird 应用,我们最新的测试版提供了 [React Native 的支持]( https://blog.leancloud.cn/3993/)。此外如果解决方案使用的是 Webview 来运行代码的话,那么理论上也是支持的。
    juvenn
        20
    juvenn  
       2016-02-02 17:26:06 +08:00
    @adkudao 方便描述你在使用 php sdk 的具体问题吗?如错误栈等?如果以后遇到类似的问题,欢迎你在 github.com/leancloud/php-sdk 提交 issue 。同时我们也有用户论坛 forum.leancloud.cn ,正常情况我们都能在 1 天内跟进。

    关于性能上的问题,我们的平台有较大的客户,对速度可用性等的要求都很高,是非常在乎性能的。 CQL 是我们对 key-value 数据库的一个扩展,提供了类 SQL 的接口,在效率和可表达性上做了权衡,但并不能完全与 SQL 兼容。

    关于手机浏览器上传文件的问题,我会反馈给同事。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4200 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:29 · PVG 13:29 · LAX 21:29 · JFK 00:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.