首页 > YII2中的结构感觉好混乱。是我跟不上形势了吗?

YII2中的结构感觉好混乱。是我跟不上形势了吗?

YII2 使用composer来创建项目。而且多出来好多额外的东西。总感觉好像写的不太正式。
而且受用vendor来管理倒入,是不是性能会下降?


不太了解Yii/Yii2, 你的问题其实应该是为何要用Composer吧? 我觉得简单的来说就一句话:

对于开发者来说, 用composer太爽了.

Composer首先是一个是用于PHP开发的依赖管理工具(@bigqiang 谢纠正), 在https://packagist.org/有各式各样的包, 能帮助你解决各种依赖问题。在进行开发的时候,拿来权威的轮子总比自己费心费力造的省时省力,还经受住了大众的检验。比如Laravel就使用了很多 Symfony的独立组件库。有Composer这样的工具,你就不必在去特意的下载某个库, 组织目录, 维护库的版本,还有考虑怎么将库融入你的项目中。

Composer的自动加载机制, 并不会使性能下降(或则说就算有, 也是微乎其微的)。因为每个包都会定义自己的加载机制, 比如classmap, psr-0, psr-4, Composer只是按这种机制进行类的自动加载, 而不是将他们全部或部分加载, 或者有一个冗长的加载列表(但是有时存放加载列表的数组确实不小, 但这对性能的影响真的不大)。


PS: 如果我们在版本控制工具下工作, 那么一般会排除/vendor, 这样做的好处是, 工程的文件只有你自己的代码, 不会变的很大(前阵子我写的东东, 仅仅使composer引入的库就达到了100M+)。然后我们只需要在另一个环境上 composer install 就可以得到指定的、更新的、更稳定的依赖库了。


习惯就好,我感觉Yii2.0不错


是的。



我也有深刻的同感,yii2给我的感觉,在使用一种十分落后的方式进行一次彻底的重构。
比如 bootstrap,他为什么要非得 先在模板里面进行 $this->registerCssFile() $this->registerJsFile(),但问题是我的bootstrap 模板是这样的

html    <!--[if lt IE 9]>
    <script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->

他又如何在 $this->registerJsFile() 中实现呢?
用另一种方式重构一个功能完善和强大程序而已,没有创新,开发出这样一套框架得花费大量的精力和心血,居然一个人完成的,不可思议


补充:
对比ci、thinkphp、yii2,认为yii2还是非常不错的,xueqiang一个人开发这样一套框架,把java的模式硬搬过来,有一点牵强附会,会让只写PHP的程序员感觉比较别扭。

【热门文章】
【热门文章】