谁一开始就是大神?

关于yii2使用composer安装模块/扩展的问题(10分赏金)[2.0]

yii2在项目根目录使用composer安装扩展的时候会自动安装到核心框架的文件里面
请问怎么直接安装到某个app里面?
如果可以直接安装到app里面,所安装的扩展的依赖组件又是如何处理安装的?
尝试过在backend文件夹下直接执行安装扩展的命令,但是会自动创建一个核心文件的文件夹,除了依赖组件外还讲yii2的核心框架在backend下又安装了一遍。
请大神解惑…

首先声明一下,我不是冲着你特意写在标题中的(10分赏金)来的。O(∩_∩)O哈哈~
在composer管理的项目里面,代码应该被分成两部分。一部分是自己写的,包括安装Yii高级或者基础版所默认提供的应用脚手架。另一部分就是那些第三方的包,说白了就是vendor目录。然后依靠composer提供的自动加载机制去使用那些包,于是你在index.php里发现了这么一句话
所以如果你想用composer管理你的项目依赖,包便不可以安装到你指定的APP下,因为那会再造就一个项目,而且是和原有项目毫不相关的一堆文件。
其实在composer眼里,一个composer.json就是一个包,就是一个项目。而你项目的composer.json已经在项目根目录下存在了。
其实composer 中文文档会解决你所有的疑惑,并且这是唯一正统的光明之道。
我也没有研究过Yii和composer各自的自动加载实现的过程,但他们必定遵循着一种规范,他就是 psr-4,这个链接会给你很大的帮助的。
另外,composer其实更准确来说称其为依赖管理工具较好,你所敲下的Yii代码实际上是依赖于 /vendor/yiisoft/ 下的各种包的。而当然,他们会依赖于其他各种包。为妥善管理这些依赖关系,composer就诞生了。
所以说,composer其实是比yii “大” 的,因为在composer的眼中,yii仅仅只是万千包中的一个。更别说其下的一个小小的extension.php文件了。那个文件应该是为了yii本身某些特别的需要,和composer自动加载没有关系的。
当你引入一个第三方包的时候,如果它提供了composer安装的方式,那他在被composer正确安装的时候,便已实现了自动加载而无需你做任何事的。

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 关于yii2使用composer安装模块/扩展的问题(10分赏金)[2.0]

评论 抢沙发

登录

找回密码

注册