@
xiaotuzi 没咋个明白,我觉得已经够简单了吧,那咋个更简单了,比如?
@
conn4575 这个其实是写着玩的,另外就是开源的框架中我喜欢 laravel 的代码,但是不喜欢 laravel 那种包都是依赖他自身生态的,我更喜欢 sf 框架那种组件化,每个包尽量少的依赖那种,所以会看到 sf 的包被大量的其他框架所引用,另外就是 lara 的代码写的比较绕
所以我就结合 n 多框架的实现,其中大量参考 laravel 的实现,简化提高可读性,另外就是减少依赖,当练手。
其实我建议新人都写一个自己的框架,练手也好,提高基础也好,这样会更能理解一个框架的运行原理,也更知道怎样的代码怎么写出来是具有可读性,可维护性,可扩展性特别是框架层面,在用其他框架的时候也会更加得心应手,很多时候以为框架很简单,但是只有自己去实现过一个后就觉得不是啥都是看起来那么理所当然,里边可能一个细节都是有思考的。
比如你写了框架你就知道用 composer 的好处不只是方便引入其他的包,对于框架还有个好处是,不让应用开发者随意更改框架核心代码(以后不便于升级或则框架 bug 修复啥的),但是为了在允许开发者自定义的地方要支持可扩展性,所以其实这些过程中的思考都能提高编码水平。
再比如,对异常的理解,如果吧 php 的异常和错误处理了解好了,就可以写出更好的代码,而不是通过 true false 之类,好多框架在这块的处理也不是很合适,比如错误发生的情况有的喜欢直接屏蔽,有的是直接 handle 处理了,其实更好的方式是转换为异常,这样写业务的时候,就算错误,你可以选择 catch,也可以不 catch 走全局的异常接管。这也是为啥不要直接裸写 php,框架其实对这些都做了处理可以减少新手犯错的可能,异常处理可以参考 laravel 和 yii 他们的处理方式,当然也可以参考我这里的一个包实现,
https://github.com/Jetea/exception