[开源项目第二弹] Medoo - 我们仍然记得那天妹抖帮我们处理SQL杂项的各种修罗场 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
catfan
V2EX    分享创造

[开源项目第二弹] Medoo - 我们仍然记得那天妹抖帮我们处理SQL杂项的各种修罗场

  •  1
     
  •   catfan 2013-04-08 18:52:40 +08:00 7341 次点击
    这是一个创建于 4570 天前的主题,其中的信息可能已经有所发展或是发生改变。


    这是继Qatrix Javascript开源项目后的第二弹了,名字就叫Medoo(读音似妹抖,但不要想歪了,是来自拉丁词缀转意来的,人家才不是女仆呢!)

    Medoo是一个超轻量级的PHP SQL数据库框架,提供了简单,易学,灵活的API,提升开发Web应用的效率与性能,而且体积只有8KB不到!

    而且还有如下福利:
    * 轻量级,只有一个文件
    * 简单易学,数据结构一目了然
    * 支持多种SQL语法,以及支持复杂的查询条件
    * 支持多种数据库,包括MySQL, MSSQL, SQLite等等
    * 安全,可防止SQL注入
    * 免费,基于MIT协议

    步骤:
    1. 在medoo.php里面配置好服务器,数据库用户密码
    2. 使用如下代码便可
    // Include Medoo
    require_once 'medoo.php';

    // Initialize
    $database = new medoo('my_database');

    // Enjoy
    $database->insert('account', [
    'user_name' => 'foo'
    'email' => '[email protected]',
    'age' => 25,
    'lang' => ['en', 'fr', 'jp', 'cn']
    ]);

    官方网站: http://medoo.in

    Github: https://github.com/catfan/Medoo

    API文档: http://medoo.in/doc

    下载: http://medoo.in/download

    当然,目前项目还处于萌芽发展期,希望大家多提些意见和测试,我会尽力让这个项目做得更加完善,为开源界贡献一份力量,谢谢!m(_ _)m

    如果有项目使用此框架,不妨邮件告知,有机会会放在首页以供展示咯。

    --喵大
    25 条回复    1970-01-01 08:00:00 +08:00
    coosir
        1
    coosir  
       2013-04-08 18:56:57 +08:00 via Android
    不错不错,现在看到很多项目都有国际范
    talentsnail
        2
    talentsnail  
       2013-04-08 19:04:11 +08:00
    支持下,不错啦
    AstroProfundis
        3
    AstroProfundis  
       2013-04-08 19:05:26 +08:00
    很不错的样子,马克了,过一阵估计能用上w

    网站上 http://medoo.in/api/new
    All Medoo example code are used [] instead of array().

    貌似应该是 are using ?
    tamamaxox
        4
    tamamaxox  
       2013-04-08 19:15:24 +08:00
    goodgood,支持开源项目
    catfan
        5
    catfan  
    OP
       2013-04-08 20:30:57 +08:00
    @AstroProfundis 小错误就不要介意了
    siw
        6
    siw  
       2013-04-08 22:06:13 +08:00
    我怎么觉得怪怪的, 一个库 框架 怎能源码修改 variable 才能用
    那个 $type, $username, $password ....
    shinwood
        7
    shinwood  
       2013-04-08 22:29:21 +08:00
    不得不说,楼主的代码风格看起来让人赏心悦目。
    drush
        8
    drush  
       2013-04-08 22:34:20 +08:00
    现在一般也直接用框架自带的,有机会写小程序试试 mark 个支持
    catfan
        9
    catfan  
    OP
       2013-04-08 23:14:56 +08:00
    @siw 目前为了实现只需要include一个文件的特性,唯有这样设计。当然,不排除日后还有更好的实现方式。
    yangzh
        10
    yangzh  
       2013-04-09 12:15:54 +08:00
    把 $type, $username, $password 放到构造函数里面会有什么问题?

    变成

    $database = new medoo('my_database', 'mysql', 'localhost', 'username', 'password');

    可以不?

    对 php 不熟,有错误莫怪。
    crossmaya
        11
    crossmaya  
       2013-04-09 13:34:47 +08:00
    我觉得你写的复杂了,可读性一般。where or and join 等只需要一个变量然后最后统一解析比较好 这样拼凑的sql不易于添加新的条件。不过支持开源
    catfan
        12
    catfan  
    OP
       2013-04-09 14:21:32 +08:00
    @yangzh 确实可以,不过这样每次调用都需要填写用户名和密码了,不利于统一保存。如果还要用户写一个通用函数来调用Medoo的话,又会增加配置的复杂性。如果把配置作为一个变量写在class外头,也会有泄露的危险。
    xmbaozi
        13
    xmbaozi  
       2013-04-10 19:55:44 +08:00 via Android
    好像不错,名字又好
    kofj
        14
    kofj  
       2013-04-10 23:30:20 +08:00
    Mark一下~
    catfan
        15
    catfan  
    OP
       2013-04-11 17:27:02 +08:00
    @xmbaozi 话说这名字想了足足差不多一个月
    catfan
        16
    catfan  
    OP
       2013-04-14 21:08:57 +08:00
    这项目现在在国外的关注数比国内还要高.....
    shinwood
        17
    shinwood  
       2013-04-14 21:28:02 +08:00
    似乎用楼主的代码遇到了 utf8 编码的问题。
    catfan
        18
    catfan  
    OP
       2013-04-21 16:05:41 +08:00
    @shinwood 新版本已增加编码的支持
    catfan
        19
    catfan  
    OP
       2013-05-28 13:57:40 +08:00
    升级到0.8.2了,配置方式比之前的更加灵活:)
    catfan
        20
    catfan  
    OP
       2013-06-10 11:14:13 +08:00
    @yangzh 这方法在0.8.2中已经支持,只是写的方式略有不同 http://medoo.in/api/new
    tylerchao
        21
    strong>tylerchao  
       2013-08-07 13:38:18 +08:00
    怎么能没有中文的说明文档
    catfan
        22
    catfan  
    OP
       2013-08-08 17:19:55 +08:00
    @tylerchao 文档本来就很简单易懂,看看例子便可。不过也有热心人士翻译了一下,网上找找就能找到。
    kiancyc
        23
    kiancyc  
       2013-08-15 14:45:39 +08:00
    @catfan
    第一次用composer没装成功。
    "require": {
    "catfan/medoo": "*"
    },
    "minimum-stability": "dev"
    加了"minimum-stability": "dev" 才装成功

    现在在迁移项目中尝试,原来的SQL很乱。

    话说packigist里面的包有讨论的地方吗?
    garth
        24
    garth  
       2014-03-22 23:32:51 +08:00
    正好可以用上!!哈哈……
    wwek
        25
    wwek  
       2014-04-24 12:42:10 +08:00
    不错
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3741 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:16 PVG 12:16 LAX 21:16 JFK 00:16
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86