使用新的 composer 在 Yii2 项目中安装库
Using new composer to install libraries in Yii2 Project
我已经通过存档安装了 Yii2 Advanced 模板,并且已经完成了一半的应用程序,但现在我想安装一些可以通过 composer 安装的库,所以我也安装了 composer,但现在我该如何安装使用该作曲家的 yii2 项目的库?
运行命令:
composer global require "fxp/composer-asset-plugin:~1.1.1"
从安装指南(http://www.yiiframework.com/doc-2.0/guide-start-installation.html#installing-via-composer)通过 Composer 获取 bower 和 npm 包,然后创建一个 composer.json 文件,一个干净的示例高级模板安装:
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Application Template",
"keywords": ["yii2", "framework", "advanced", "application template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "dev",
"prefer-stable" : true,
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "*",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*",
},
"config": {
"process-timeout": 1800
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
我按照你刚才说的做,可以吗?完成了吗?或者我必须做的任何步骤?
哪个文件可以检查我的 yii 文件是否已经与 composer 连接?
使用 Composer 包
许多第三方库都是以 Composer 包的形式发布的。您可以通过以下两个简单步骤安装此类库:
- 修改您的应用程序的composer.json文件并指定
您要安装的 Composer 包。
- 运行 composer install 安装指定的包。
使用下载的库
如果库未作为 Composer 包发布,则应按照其安装说明进行安装。在大多数情况下,您需要手动下载一个发布文件并将其解压到 BasePath/vendor 目录中,其中 BasePath 代表基础您的应用程序的路径。
如果库带有自己的 class 自动加载器,您可以将其安装在应用程序的入口脚本中。建议在包含 Yii.php 文件之前完成安装,以便 Yii class 自动加载器可以优先自动加载 classes。
如果库不提供 class 自动加载器,但其 class 命名遵循 PSR-4,您可以使用 Yii class 自动加载器来自动加载 class是的。您需要做的只是为在其 classes 中使用的每个根命名空间声明一个根别名。例如,假设你在目录 vendor/foo/bar 下安装了一个库,并且库 classes 在 xyz 根命名空间。您可以在应用程序配置中包含以下代码:
[
'aliases' => [
'@xyz' => '@vendor/foo/bar',
],
]
如果以上两种情况都不是,则库可能依赖 PHP 包含路径配置来正确定位和包含 class 文件。只需按照其有关如何配置 PHP 包含路径的说明进行操作即可。
在最坏的情况下,当库需要明确包含每个 class 文件时,您可以使用以下方法按需包含 classes:
- 确定图书馆包含哪些 classes。
列出classes和Yii::$classMap中对应的文件路径
在应用程序的入口脚本中。例如,
Yii::$classMap['Class1'] = 'path/to/Class1.php';
Yii::$classMap['Class2'] = 'path/to/Class2.php';
可在此处找到更多参考信息:http://www.yiiframework.com/doc-2.0/guide-tutorial-yii-integration.html
我已经通过存档安装了 Yii2 Advanced 模板,并且已经完成了一半的应用程序,但现在我想安装一些可以通过 composer 安装的库,所以我也安装了 composer,但现在我该如何安装使用该作曲家的 yii2 项目的库?
运行命令:
composer global require "fxp/composer-asset-plugin:~1.1.1"
从安装指南(http://www.yiiframework.com/doc-2.0/guide-start-installation.html#installing-via-composer)通过 Composer 获取 bower 和 npm 包,然后创建一个 composer.json 文件,一个干净的示例高级模板安装:
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Application Template",
"keywords": ["yii2", "framework", "advanced", "application template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "dev",
"prefer-stable" : true,
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "*",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*",
},
"config": {
"process-timeout": 1800
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower"
}
}
}
我按照你刚才说的做,可以吗?完成了吗?或者我必须做的任何步骤? 哪个文件可以检查我的 yii 文件是否已经与 composer 连接?
使用 Composer 包 许多第三方库都是以 Composer 包的形式发布的。您可以通过以下两个简单步骤安装此类库:
- 修改您的应用程序的composer.json文件并指定 您要安装的 Composer 包。
- 运行 composer install 安装指定的包。
使用下载的库 如果库未作为 Composer 包发布,则应按照其安装说明进行安装。在大多数情况下,您需要手动下载一个发布文件并将其解压到 BasePath/vendor 目录中,其中 BasePath 代表基础您的应用程序的路径。
如果库带有自己的 class 自动加载器,您可以将其安装在应用程序的入口脚本中。建议在包含 Yii.php 文件之前完成安装,以便 Yii class 自动加载器可以优先自动加载 classes。
如果库不提供 class 自动加载器,但其 class 命名遵循 PSR-4,您可以使用 Yii class 自动加载器来自动加载 class是的。您需要做的只是为在其 classes 中使用的每个根命名空间声明一个根别名。例如,假设你在目录 vendor/foo/bar 下安装了一个库,并且库 classes 在 xyz 根命名空间。您可以在应用程序配置中包含以下代码:
[
'aliases' => [
'@xyz' => '@vendor/foo/bar',
],
]
如果以上两种情况都不是,则库可能依赖 PHP 包含路径配置来正确定位和包含 class 文件。只需按照其有关如何配置 PHP 包含路径的说明进行操作即可。
在最坏的情况下,当库需要明确包含每个 class 文件时,您可以使用以下方法按需包含 classes:
- 确定图书馆包含哪些 classes。
列出classes和Yii::$classMap中对应的文件路径 在应用程序的入口脚本中。例如,
Yii::$classMap['Class1'] = 'path/to/Class1.php'; Yii::$classMap['Class2'] = 'path/to/Class2.php';
可在此处找到更多参考信息:http://www.yiiframework.com/doc-2.0/guide-tutorial-yii-integration.html