1
wujunze 2020-04-01 20:07:10 +08:00
加油💪
|
2
stabc 2020-04-01 20:13:02 +08:00
建议把东西说的通俗易懂一些。
|
3
panxianhai 2020-04-01 20:41:13 +08:00
和其他框架简单对比 是甩 laravel 6 几条街的意思吗
|
4
dvaknheo OP @panxianhai 我个人很感慨 laravel 的推广能力,但同时不喜欢 laravel 把 php 搞得那么复杂。
比如中间件系统, 搞得堆栈几乎没法看。我的解决方案,如果是普通程序,在 控制器 的构造和析构方法里解决就行了。再上一级的,就是用路由钩子前后钩挂,再上一级,那就是重写 run 方法。 控制器里写的,也就是普通代码人员的级别,一看就能看出来 再往上,钩子的级别,特殊的控制。这是小组长的干活。 重写 run 方法,除非是很特殊很特殊,才有意义。 调试程序,最怕之一就是:我明明这么写了,但是为什么代码没跑到这里,怎么调试。 blade 模板,这玩意让我想起了当年 smarty,写模板的还是 php 人员来写。我不认为模板引擎是框架的必备部分。 我以前写过一个模板引擎叫 TagFeather 。上个月想复活,然后发现那玩意当年写得太复杂了,没足够动力搞定。 人家是解析字符串方式解析模板, 我是解析 XML,而且是允许带 php 标记的 xml 。 那么这个模板引擎有什么好处呢? 静态 html 页面 + php 大纲页面 编译成最终 可读的 php 页面,用 jquery 选择器方式关联。 |
5
4IoNut698v3Xgc2p 2020-04-02 02:22:41 +08:00 via Android
就怕花费精力学了这个结果你跑路了
|
6
dvaknheo OP @praming 这框架两个特点
一是可以热修复, 所有东西都可以替换成你实现的版本,所以如果有漏洞了,第一时间是修改工程中的实现,而不用更新框架版本。 所有不满足这个特性的框架,都是不值得看的。 二是只有工程的几个核心文件才和框架文件相关联。替换成其他东西很容易,尽管这基本不用。 其他巧妙之处,我需要人来重新描述一下。给其他人方便理解。 |
7
qq1340691923 2020-04-02 09:32:45 +08:00
浪费在 php 上可惜了
|
8
king888 2020-04-02 10:08:14 +08:00
实现热修复的原理是什么
|
9
dvaknheo OP @king888
一, 入口类 DuckPhp\App 在 init() 开始阶段就替换成项目的 MY\Base\App extends DuckPhp\App 执行后续操作。 你可以在 MY\Base\App 里随便改实现。 二,可变单例,Duckphp 的组件都是用 G($object) 方法调用。你可以传入新的继承旧组件的类。 比如,My\Helper\ControllerHelper::GET() 调用的是 DuckPHP\App::GET() 返回 SuperGlobal::G()->_GET 。 你可以重写 My\Base\App::onInit(); 追加一个 My\SuperGlobal extends SuperGlobal 支持 workerman 或 swoole 更常出现的是 App::Pager(My\Base\Pager::G()); 自己 重写 Pager 类实现自己的渲染。 调用还是 echo C::PageHtml(); |
10
terrywater 2020-04-14 21:50:12 +08:00
技术框架推广能力?
Yii2,薛强在中国大陆根本没有推广,一大批人在用,的确是好用。 安全稳定是一个框架的首要因素,思想,另外还有生态,用你的这个框架连接 mongodb,redis 等,MQ,都得自己写,很累啊。 |