Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源


Posted in PHP onJune 22, 2014

这回要说的是,如何给 Yii2 项目添加外部资源(external assets),以 FontAwesome 为例子。

Yii2 开始使用 composer 来做项目的依赖管理,这货是类似于 NodeJS 里面 npm 的东东,可以自动获取 Github 上最新版本的第三方库(比如 Bootstrap 啦,FontAwesome 啦之类的)。按官方教程装好后,就可以开始初始化项目了。

一、初始化项目

通过 Composer 来初始化

php composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic

然后开始码代码,Model Controller View 神马的,此处按下不表。

二、安装 FontAwesome

终于,你的项目发展到需要引用第三方库了,我们仍然通过 Composer 来安装。搜索packagist.org官方的包列表,我们找到了 FontAwesome 的配置。将 FortAwesome/Font-Awesome": "*" 添加到项目的 composer.json 配置文件里。

// ...
"require": {
 "php": ">=5.4.0",
 "hybridauth/hybridauth": "dev-master",
 "FortAwesome/Font-Awesome": "*", // <- 这里
 "yiisoft/yii2": "*",
 "yiisoft/yii2-swiftmailer": "*",
 "yiisoft/yii2-bootstrap": "*",
 "yiisoft/yii2-debug": "*",
 "yiisoft/yii2-gii": "*"
},
// ...

然后运行

php composer.phar update

从 Github 上拉取 FontAwesome 的包到项目本地。

三、创建 FontAwesome 资源包(asset bundle)

为了使用这些库,我们需要在项目的 /assets 目录下创建一个 FontAwesomeAsset.php

namespace assets;
use yii\web\AssetBundle;
class FontAwesomeAsset extends AssetBundle
{
 // 下面这些资源文件并不在 web 目录下,浏览器无法直接访问。所以我们需要
 // 指定 sourcePath 属性。注意 @vendor 这个 alias,表示 vender 目录
 public $sourcePath = '@vendor/fortawesome/font-awesome';
 public $css = [
  'css/font-awesome.css',
 ];
}

四、注册文件,引入资源

有两种方法。第一种,当你想在某一个特定页面引入这个资源包

// 这两句直接写在那一页的 view 里
use assets\FontAwesomeAsset;
FontAwesomeAsset::register($this);

第二种,在你的网站全局引入,或者将其作为另一个资源的依赖引用。在项目的 asset/AppAsset.php 中加上它:

class AppAsset extends AssetBundle
{
 public $basePath = '@webroot';
 public $baseUrl = '@web';
 public $css = [
  'css/site.css',
 ];
 public $js = [
 ];
 public $depends = [
  'yii\web\YiiAsset',
  'yii\bootstrap\BootstrapAsset',
  // 在这里加上我们的 FontAwesomeAsset 包类
  'assets\FontAwesomeAsset'
 ];
}

刷新页面,看看是不是已经引入了对应的 css、js 资源。

PHP 相关文章推荐
在PHP中读取和写入WORD文档的代码
Apr 09 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 29 PHP
php 面试碰到过的问题 在此做下记录
Jun 09 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
搭建基于Docker的PHP开发环境的详细教程
Jul 01 PHP
PHP精确计算功能示例
Nov 29 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
php项目中类的自动加载实例讲解
Sep 12 PHP
php依赖注入知识点详解
Sep 23 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
Jun 22 #PHP
PHP延迟静态绑定示例分享
Jun 22 #PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
Jun 22 #PHP
解决cPanel无法安装php5.2.17
Jun 22 #PHP
destoon设置自定义搜索的方法
Jun 21 #PHP
destoon后台网站设置变成空白的解决方法
Jun 21 #PHP
destoon常用的安全设置概述
Jun 21 #PHP
You might like
利用js调用后台php进行数据处理原码
2006/10/09 PHP
怎样去阅读一份php源代码
2009/08/21 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
11款基于Javascript的文件管理器
2009/10/25 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
python基于pyDes库实现des加密的方法
2017/04/29 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
python入门教程之基本算术运算符
2020/11/13 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
简历自荐信
2013/12/02 职场文书
教师党员思想汇报
2014/01/06 职场文书
更夫岗位责任制
2014/02/11 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
高一作文之乐趣
2019/11/21 职场文书
Java常用函数式接口总结
2021/06/29 Java/Android
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android