热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

回复内容:

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    

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


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

推荐阅读
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了Java集合库的使用方法,包括如何方便地重复使用集合以及下溯造型的应用。通过使用集合库,可以方便地取用各种集合,并将其插入到自己的程序中。为了使集合能够重复使用,Java提供了一种通用类型,即Object类型。通过添加指向集合的对象句柄,可以实现对集合的重复使用。然而,由于集合只能容纳Object类型,当向集合中添加对象句柄时,会丢失其身份或标识信息。为了恢复其本来面貌,可以使用下溯造型。本文还介绍了Java 1.2集合库的特点和优势。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • http:valor-software.comng2-bootstraphttps:www.primefaces.orgprimeng#autocomplete转载于:https: ... [详细]
  • PRML读书会第十四章 Combining Models(committees,Boosting,AdaBoost,决策树,条件混合模型)...
    主讲人网神(新浪微博:豆角茄子麻酱凉面)网神(66707180)18:57:18大家好,今天我们讲一下第14章combiningmodel ... [详细]
  • 基于SpringBoot打造在线教育系统(6)– 二级分类模块UI篇
    这一节来做二级分类,为了快速开发,一级分类只做新增,暂时不考虑修改和删除,如果一定要删,就去数据库删吧。我们接下来,需要通过一级分类,获取所有的二级分类。开始 ... [详细]
author-avatar
手机用户2702933093
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有