php 架构 推荐,为快速开发API设计的特色框架/-
2021-10-31
推荐,一个专为快速API开发而设计的PHP框架,它可以帮助开发者更多地关注业务本身,将原来开发中不得不做却又重复的枯燥的事情,比如编写接口文档、参数校验和远程调用代码等。
特征
框架提供了很多主流的特性,比如IOC、AOP、ORM等,这些特性都是经过精心设计和挑选的(有些是第三方开源代码,比如PHP-DI)php 架构,但是与其他框架相比,最显着的特点是:
1. 以面向对象的方式编写接口
你一定见过这样的代码:
// **不用** PhpBoot 的代码
class BookController
{
public function findBooks(Request $request)
{
$name = $request->get('name');
...
return new Response(['total'=>$total, 'data'=>$books]);
}
public function createBook(Request $request)
...
}
许多主流框架都需要编写类似代码的接口。但是这种代码的一个问题是方法的输入和输出隐藏在实现中,这不是我们通常提倡的编码方法。如果对代码有更高的要求,也可以实现一层接口,直接调用里面的接口即可。并且使用,你可以更自然地定义和实现接口。上面的例子,在框架中实现是这样的:
/**
* @path /books/
*/
class Books
{
/**
* @route GET /
* @return Book[]
*/
public function findBooks($name, &$total=null, $offset=0, $limit=10)
{
$total = ...
...
return $books;
}
/**
* @route POST /
* @param Book $book {@bind request.request} bind $book with http body
* @return string id of created book
*/
public function createBook(Book $book)
{
$id = ...
return $id;
}
}
上面两段代码执行的效果是一样的。可以看到写出的代码更符合面向对象编程的原则。上述代码的完整版本请参见/-。
2. 轻松支持
是目前最流行的界面文档框架。虽然通过扩展可以支持很多框架,但是一般不需要写很多额外的注释,或者只能导出基本的路由信息,但是不能导出详细的输入输出参数。并且您可以轻松完成上述任务,而不会增加额外的编码负担。下图显示了相应的文档。有关更多信息,请参阅 2.0 文档和在线演示。
3. 简单易用的分布式支持
使用可以非常简单地构建分布式应用程序。通过下面的代码,可以很方便的远程访问上例中的界面:
$books = $app->make(RpcProxy::class, [
'interface'=>Books::class,
'prefix'=>'http://x.x.x.x/'
]);
$books->findBooks(...);
同时可以方便的发起并发请求,比如:
$res = MultiRpc::run([
function()use($service1){
return $service1->doSomething();
},
function()use($service2){
return $service2->doSomething();
},
]);
更多信息请查看RPC-2.0文档
4. IDE 友好
IDE的代码提示功能可以让开发者轻松很多,但是很多框架在这方面做得并不好。您必须阅读文档或代码才能了解某个函数的用法。一开始,我们非常关注框架的IDE友好性,并通过代码提示尽可能保持框架的准确性。例如下图展示了DB库的使用:
如您所见,IDE 的提示符合 SQL 语法规则php 架构,而不是简单地列出所有 SQL 命令。
主要功能帮助和文档
-2.0 个文件