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 正则学习实例
Jul 30 PHP
PHP企业级应用之常见缓存技术篇
Jan 27 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
php中序列化与反序列化详解
Feb 13 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
Feb 23 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
php使用imagecopymerge()函数创建半透明水印
Jan 25 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 21 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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
php Session存储到Redis的方法
2013/11/04 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
python中字符串内置函数的用法总结
2018/09/13 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
悦木之源美国官网:Origins美国
2016/08/01 全球购物
Linux机考试题
2015/10/16 面试题
体育教师自我鉴定
2014/02/12 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
工作检讨书怎么写
2014/10/10 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
学生会干部任命书
2015/09/21 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
Python list列表删除元素的4种方法
2021/11/01 Python
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL