V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  dvaknheo  ›  全部回复第 12 页 / 共 14 页
回复总数  273
1 ... 4  5  6  7  8  9  10  11  12  13 ... 14  
❮ ❯
2019 年 8 月 19 日
回复了 tikazyq 创建的主题 › 程序员 › 如何打造一个上千 Star 的 Github 项目
买粉。 但有意义么。

能有一小撮人讨论起来是最好的。 启动的有 10 来个
至少有一个项目在应用。
这样就真的有动力继续了
2019 年 8 月 18 日
回复了 Antidictator 创建的主题 › 程序员 › 求推荐程序员本体,可装 15.6 寸电脑的双肩背包
有没 17.3 用的包包?
2019 年 8 月 12 日
回复了 zzhbbdbbd 创建的主题 › 程序员 › 千万不要被 Leader 的鬼话影响
@also24
组员:我觉得我们应该把 xx 拆分出去,方便下个项目复用
组长:你妹的这个项目工期还有 3 天了,你给下个项目省时间有个鬼用,别管啦。
组员:项目完工了,我们可以拆分了吧?
组长:得,跑得好好的,改出问题来你负责啊?
@random0O
怪不得 JavaBean 这么流行

String getName(){ return this.name; } 就解决了?
2019 年 8 月 11 日
回复了 jamfer 创建的主题 › 程序员 › 头条搜索来了, v2 没人聊么
有什么用, 在 PC Web 上搜,跳到 头条 App ?
@Rocka firefox 不能渲染 winding 字体。
2019 年 7 月 27 日
回复了 hbolive 创建的主题 › PHP › PHP 中变量的命名,你们是用驼峰法还是下划线?
一般用驼峰。

下划线公开方法用于不推荐但不得不公开的方法, 如回调。

下划线公开成员用于来自配置的变量,配置里用下划线。
2019 年 7 月 22 日
回复了 dvaknheo 创建的主题 › PHP › 小调查:你希望要什么样的框架?
@vincel PHP 必须解析 XML 才能开工? 那么 PHP 快速开发的趋势在哪。
有名的东西,并不见得优秀,Smarty 祸害了多少年?
问题是很多框架让作者把时间花在框架的理解上而不是核心代码上。
这就是我为什么提到的 优秀的框架, 和框架耦合的代码越少越好。

规模大,是因为额外需求多才大。不要想着用户要有那么多非核心需求先。
比如数据库,就不应该是框架的核心。
比如 .env 的解析这也不应该是框架的核心。

核心+扩展组件,扩展组件可以单独用,这才是最好的方式。
2019 年 7 月 20 日
回复了 dvaknheo 创建的主题 › PHP › 小调查:你希望要什么样的框架?
@wnh3yang slim 用了下面几个组件
container-interop pimple 处理 DI

monolog 做 Log 处理
fast-route 做 路由。


psr container http-message log // 这一堆现在的 PHP 框架都等着进官方扩展的。

slim /phpview 做模板,不用也可以
2019 年 7 月 20 日
回复了 dvaknheo 创建的主题 › PHP › 小调查:你希望要什么样的框架?
@jourdon 可以把那些组件单独拿出来,不要耦合太紧
2019 年 7 月 20 日
回复了 dvaknheo 创建的主题 › PHP › 小调查:你希望要什么样的框架?
迁移方便。 我不希望我代码和框架有太多耦合。

混用方便, 即 其他框架嵌入我的框架很容易。或我的框架嵌入其他框架也很容易
2019 年 7 月 7 日
回复了 louislivi 创建的主题 › PHP › SMProxy 新版本中将新增状态监控了!
虽然看不懂,看上去很厉害的样子
2019 年 7 月 6 日
回复了 huangzhhui 创建的主题 › PHP › 🚀 Hyperf v1.0 发布,全新企业级的 PHP 协程微服务框架
搞得太复杂了,没文档没法看懂
他说的是设置 .htaccess 吧,配置 path_info
2019 年 7 月 6 日
回复了 dvaknheo 创建的主题 › PHP › thinkphp 的 db 类能剥离出来使用么
@duola 不认识。上次在 github 讨论议题里加了这个需求,没见回应。


```
class MedooFixed extends \Medoo\Medoo
{
public function exec($query, $map = [])
{
if (isset($map[0])) {
array_unshift($map, null);
unset($map[0]);
}
return parent::exec($query, $map);
}
}
```
这就可以 $medoo->exec("select * from table_name where name=? and des=? " ,['a','b']);
方便多了
@doyouhaobaby 问题是,这解决了什么问题,“优雅” ?

不,是一群 JAVA 化的人员把大家带入的坑而已。
psr6 和 psr16 的故事。


如果坑了足够多的人,就可以让以后的学习者不得不捏着鼻子用。

中间件明明可以用两个接口,before ,after,却为了优雅,函数化,做成了一个。
不去考虑是否方便调试。
这背离了 PHP 方便,快速开发的初衷。

public function handle($request, Closure $next)
{
////
return $next($request);
}
再来个调试方面的问题,你能从堆栈里看出什么信息么?

#0 xx\Action\HomeAction->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/HandlerTrait.php:20]
#1 Lit\Nimo\Handlers\AbstractHandler->handle() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/voltage/RouterDispatchHandler.php:30]
#2 Lit\Voltage\RouterDispatchHandler->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/HandlerTrait.php:20]
#3 Lit\Nimo\Handlers\AbstractHandler->handle() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/MiddlewareTrait.php:43]
#4 Lit\Nimo\Middlewares\AbstractMiddleware->delegate() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:75]
#5 Lit\Nimo\Middlewares\MiddlewarePipe->loop() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:28]
#6 Lit\Nimo\Middlewares\MiddlewarePipe->Lit\Nimo\Middlewares\{closure}()
#7 call_user_func() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Handlers/CallableHandler.php:38]
#8 Lit\Nimo\Handlers\CallableHandler->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/HandlerTrait.php:20]
#9 Lit\Nimo\Handlers\AbstractHandler->handle() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/MiddlewareTrait.php:43]
#10 Lit\Nimo\Middlewares\AbstractMiddleware->delegate() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:75]
#11 Lit\Nimo\Middlewares\MiddlewarePipe->loop() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:65]
#12 Lit\Nimo\Middlewares\MiddlewarePipe->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/MiddlewareTrait.php:33]
#13 Lit\Nimo\Middlewares\AbstractMiddleware->process() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:78]
#14 Lit\Nimo\Middlewares\MiddlewarePipe->loop() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:28]
#15 Lit\Nimo\Middlewares\MiddlewarePipe->Lit\Nimo\Middlewares\{closure}()
#16 call_user_func() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Handlers/CallableHandler.php:38]
#17 Lit\Nimo\Handlers\CallableHandler->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/HandlerTrait.php:20]
#18 Lit\Nimo\Handlers\AbstractHandler->handle() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/MiddlewareTrait.php:43]
#19 Lit\Nimo\Middlewares\AbstractMiddleware->delegate() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/bolt/Middlewares/EventsHub.php:57]
#20 Lit\Bolt\Middlewares\EventsHub->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/MiddlewareTrait.php:33]
#21 Lit\Nimo\Middlewares\AbstractMiddleware->process() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:78]
#22 Lit\Nimo\Middlewares\MiddlewarePipe->loop() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:28]
#23 Lit\Nimo\Middlewares\MiddlewarePipe->Lit\Nimo\Middlewares\{closure}()
#24 call_user_func() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Handlers/CallableHandler.php:38]
#25 Lit\Nimo\Handlers\CallableHandler->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/HandlerTrait.php:20]
#26 Lit\Nimo\Handlers\AbstractHandler->handle() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/MiddlewareTrait.php:43]
#27 Lit\Bolt\Middlewares\RequestContext->delegate() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/bolt/Middlewares/RequestContext.php:35]
#28 Lit\Bolt\Middlewares\RequestContext->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/MiddlewareTrait.php:33]
#29 Lit\Bolt\Middlewares\RequestContext->process() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:78]
#30 Lit\Nimo\Middlewares\MiddlewarePipe->loop() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Middlewares/MiddlewarePipe.php:65]
#31 Lit\Nimo\Middlewares\MiddlewarePipe->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/MiddlewareTrait.php:33]
#32 Lit\Nimo\Middlewares\AbstractMiddleware->process() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/bolt/BoltApp.php:60]
#33 Lit\Bolt\BoltApp->main() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/nimo/Traits/HandlerTrait.php:20]
#34 Lit\Nimo\Handlers\AbstractHandler->handle() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/zendframework/zend-httphandlerrunner/src/RequestHandlerRunner.php:95]
#35 Zend\HttpHandlerRunner\RequestHandlerRunner->run() called at [/mnt/d/MyWork/sites/zzz/z/myproject/vendor/litphp/runner-zend-sapi/BoltZendRunner.php:21]
#36 Lit\Runner\ZendSapi\BoltZendRunner::run() called at [/mnt/d/MyWork/sites/zzz/z/myproject/public/index.php:9]

顺便对比 DNMVCS 的:

#0 MY\Controller\Main->index() called at [/mnt/d/MyWork/sites/DNMVCS/src/Core/Route.php:190]
#1 DNMVCS\Core\Route->run() called at [/mnt/d/MyWork/sites/DNMVCS/src/Core/App.php:246]
#2 DNMVCS\Core\App->run() called at [/mnt/d/MyWork/sites/DNMVCS/src/Core/App.php:87]
#3 DNMVCS\Core\App::RunQuickly() called at [/mnt/d/MyWork/sites/DNMVCS-FullTest/public/index.php:13]

都是在控制器方法里加这段代码

echo '<pre>';
debug_print_backtrace(2);
echo '</pre>';exit;
@mcfog 不以解决问题为导向的 PHP 代码都不是好代码。

回头看了 phptherightway 的中文版,不是老外的月亮就圆。

如果不为了解决 耦合 问题, 那么需要 DI 么?

尽管 PHP 不断升级为成熟的、面向对象的语言,但它作为模板语言 没有改善多少。编译模板,比如 Twig 或 Smarty* ,提供了模板专用的新语法,填补了这片空白。

Smarty 都死了多少年了?
Apache 和 PHP —— 用 apache 的都是老项目了。
1 ... 4  5  6  7  8  9  10  11  12  13 ... 14  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1574 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 16:31 · PVG 00:31 · LAX 09:31 · JFK 12:31
♥ Do have faith in what you're doing.