iamfat/gini

维护者

详细信息

github.com/iamfat/gini

源代码

问题

安装: 178

依赖: 0

建议: 0

安全: 0

星标: 25

关注者: 11

分支: 18

开放问题: 2

2.3.1 2024-09-26 09:58 UTC

README

Gini Logo

Gini 是一个基于松散模块依赖的MVC PHP框架,深受Kohana, Symphony和Composer的影响。

点击此处进入GitBook阅读具体文档

可用的Gini模块

易用的CLI

Gini 在命令行下提供了一个 gini 命令,和 composernpm 类似。你能够很容易地通过少数几条命令创建CLI的应用,然后通过 gini foo bar 的方式调用。

面向对象

Gini PHP框架基于PHP 5 OO。现在难道还有PHP框架不是OO的吗?

兼容Composer

你可以通过Composer来安装Gini,也可以独立使用Gini,或者在Gini框架中直接使用各种Composer第三方模块。

那些ORM

这是一个内建的ORM实现,方便大家采用OO的方式访问数据库。数据库SQL层完全被封装成了对象。你可以像定义类一样的方式定义你的数据库表结构。当你实例化对象并赋值属性,然后使用 save 方法时,系统会自动将对象的属性保存在数据表中。

同时, 那些ORM 提供了有趣的符合自然语义的语法来完成原本枯燥的SQL实现 (实验中...)。以下是个示例

// 查询所有名字以'J'开头, 爸爸的email中存在genee的用户
$users = those('users')
    ->whose('name')->beginWith('J')
    ->andWhose('father')->isIn(
        those('users')->whose('email')->contains('genee')
    );

内建JSON-RPC和REST的API与远程调用支持

以下是个示例

  1. JSON-RPC
// Client
$rpc = new \Gini\RPC('http://gini/api');
$sum = $rpc->hello->add(1, 2);

//Server
class Hello extends \Gini\Controller\API {
    public function actionAdd($a, $b) {
        return $a + $b;
    }
}
  1. REST
// Client
$rest = new \Gini\REST('https:///rest');
$sum = $rest->post('add', ['a'=>1, 'b'=>2]);

// Server
class Hello extends \Gini\Controller\REST {
    public function postAdd($a, $b) {
        return $a + $b;
    }
}