V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
catfan
V2EX  ›  分享创造

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

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


    这是继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
    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   ·   实用小工具   ·   3032 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:33 · PVG 08:33 · LAX 16:33 · JFK 19:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.