项目地址:
https://github.com/dvaknheo/duckphp作者 QQ: 85811616
官方 QQ 群: 714610448
支持 windows 。作为一个对初学者友好的框架,这是重要而难度不大的。
最大变更是架构更新。
原先的 Service 重命名为 Business 。
MVC 缺的这个层,之前称呼为 Service 。 现在发现 Service 被叫混乱了。
第三方的东西,以及部分完成 业务逻辑 的也被称呼为 Service 了。
请大声回答, 业务 的英文单词是什么。
Business! 所以就叫 Business 。
这导致了模板文件目录的变更
Service 目录改名 business 了。
Base 也是 B 开始的,所以换成 System 目录, 里面还是 Base 开始的。
--
不管这些怎么变,我们的业务代码也基本不用变。哦,变的是
DB_R ,DB_W 这样混乱的写法,重新整成 DbForRead DbForWrite 了。
我们规范函数名字里的缩写词,统一用大写开头全小写形式。
添加了事件系统,而且是一对多的,这回可以到处飞事件了。
有了部分的自动文档脚本。 模板文件里有中文注释了。和文档的注释是统一的。
说不定哪天,我们需要英化呢。
也带有了 api 服务器的功能 可以看相关例子,要优化好用就下个版本的事情了。
不到 50 行的演示例子。template/public/full/api.php
```php
<?php declare(strict_types=1);
/**
* DuckPhp
* From this time, you never be alone~
*/
require_once(__DIR__.'/../../autoload.php'); // @
DUCKPHP_HEADFILEuse DuckPhp\DuckPhp;
class BaseApi
{
//use \DuckPhp\SingletonEx\SingletonEx;
}
$options = [
'is_debug' => true,
'skip_setting_file' => true,
'override_class' => '',
'ext' => [
'DuckPhp\\Ext\\RouteHookApiServer' => true,
],
'api_class_base' => 'BaseApi',
'api_class_prefix' => 'Api_',
];
DuckPhp::RunQuickly($options);
////
/// 后面是业务代码
// 这里自己加 api
class API_test extends BaseApi
{
public function foo()
{
return DATE(DATE_ATOM);
}
public function foo2($a, $b)
{
return [$a + $b, DATE(DATE_ATOM)];
}
}
////////////////
// 访问方式
http://duckphp.demo.dev/api.php/test.foo2?a=1&b=2// 访问方式
http://duckphp.demo.dev/api.php/test.foo//
```
--
从 6 月 22 日发布 1.2.5 到 9 月 16 日发布 1.2.6 。 本来是想做一些小调整后一个月发布的。
第一个月懒,没什么改,然后 8 月初想到了大改动。 所以延迟到现在。
这个版本应该能作为 1.3 的基底了吧。能转入其他杀手级应用的开发来带动了吧。
我曾经在 4 月底的时候,用 1.2.3 重写了 yii3 的 demo
定个要求就是下个版本上 techempower 对比一下。加油!
--
尝试贴图一下
这是除了事件和异常之外的应用架构图
![DuckPhp](
https://raw.githubusercontent.com/dvaknheo/duckphp/master/doc/arch_all.gv.svg)
框架系统架构图,可以和其他框架对比着看
![DuckPhp](
https://raw.githubusercontent.com/dvaknheo/duckphp/master/doc/duckphp.gv.svg)