在 Yii2 项目中使用 Composer 添加 FontAwesome 字体资源
前天帮同事改个十年前的网站 bug,页面上一堆 include require 不禁让人抱头痛哭。看到 V2EX 上的讨论说,写 PHP 不用框架等同于耍流氓。Yii Framework 是我使用了 2 年多的 PHP 框架,器大活好,皮实耐操。 Yii2 还在 Beta 中,不过不影响拿来预研。
这回要说的是,如何给 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 配置文件里。
// ... |
然后运行
php composer.phar update |
从 Github 上拉取 FontAwesome 的包到项目本地。
三、创建 FontAwesome 资源包(asset bundle)
为了使用这些库,我们需要在项目的 /assets 目录下创建一个 FontAwesomeAsset.php
namespace assets; |
四、注册文件,引入资源
有两种方法。第一种,当你想在某一个特定页面引入这个资源包
// 这两句直接写在那一页的 view 里 |
第二种,在你的网站全局引入,或者将其作为另一个资源的依赖引用。在项目的 asset/AppAsset.php 中加上它:
class AppAsset extends AssetBundle |
在 Yii2 项目中使用 Composer 添加 七牛
字体资源
在 Yii2 项目中使用 Composer 添加 FontAwesome 字体资源的更多相关文章
- yii2项目中运行composer 过程中遇到的问题
问题1: Your requirements could not be resolved to an installable set of packages 则表明 未安装fxp/composer-a ...
- 如何在项目中使用composer的相关功能
最近要在公司的magento项目中引用第三方库,用了composer来进行管理,composer还是非常方便的: 1.在应用的根目录下添加文件:composer.json { "nam ...
- 项目中引入composer
众所周知,composer可以自定义加载插件库和依赖,它也是用PHP写的,怎样在自己的项目中引入并使用composer呢?. 1.新建一个项目,在项目的根目录创建composer.json文件,用过一 ...
- 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片
在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...
- 【spring】【spring mvc】【spring boot】获取spring cloud项目中所有spring mvc的请求资源
实现的方法: 1.在父级项目中 或者 每个微服务都引用的项目中添加实体类Resource 2.在父级项目中 或者 每个为服务都引用的项目中写一个工具类,作用是用来获取请求资源 3.在每一个微服务的启动 ...
- 如何在Web项目中给没有添加API核心组件添加APIController的帮助页HelpPage
前言: ASP.NET中的Web项目可以通过APIController控制器来为其他项目提供接口. 而我们在调试这些接口时,可以选择单元测试,网页测试(Get接口),自己写测试代码或者第三方测试工具 ...
- 记录一次项目中使用memcatch添加端口以及自动运行
具体原因:多个项目同时使用一个memcatch服务情况需要分别为项目添加端口,如果只有一个项目使用则不需要去修改端口(memcatch有默认端口),当然已可以去修改默认端口. 下面我记录下我自己的使用 ...
- yii2.0中Rbac 怎么添加超加管理员
最笨的是定义常量.具体怎么做?看下面: //定义在控制器声明上面define('BEST_PHPER',serialize(array('admin','admin1')));//设置admin管理员 ...
- spring项目中web-inf下不能引用页面资源
1.spring项目结构 2.spring结构说明 web-inf目录是不对外开放的,外部没办法直接访问到(即通过url访问),只有通过映射来访问,如映射一个action或servlet通过服务器端跳 ...
随机推荐
- hdu2475Box(splay树形转线性)
链接 推荐一篇帖子 http://blog.csdn.net/lyhypacm/article/details/6734748 这题暴力不可行主要是因为这颗树可能极度不平衡,不能用并查集是不能路径压缩 ...
- android开发学习 ------- 自定义View 圆 ,其点击事件 及 确定当前view的层级关系
我需要实现下面的效果: 参考文章:https://blog.csdn.net/halaoda/article/details/78177069 涉及的View事件分发机制 https://www. ...
- JS中数组的介绍
一.数组: 一组数据的集合: 二.JS中数组的特点: 1.数组定义时无需指定数据类型: 2.数组定义时可以无需指定数组长度: 3.数组可以存储任何类型的数据: 4.一般是相同的数据类型: 三.数组的创 ...
- python搭建ftp服务器
1 # coding: utf-8 import os from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handler ...
- Ubuntu安装新英伟达驱动出现问题解决方法
ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible wit ...
- bunzip2命令
bunzip2——解压缩.bz2格式文件 命令所在路径:/usr/bin/bunzip2 示例1: # bunzip2 yum.log.bz2 解压当前目录下的yum.log.bz2为yum.log, ...
- layui 数据table隐藏表头
$('.layui-table .layui-table-cell > span').css({'font-weight': 'bold'});//表头字体样式 /*$('th').css({' ...
- 产生式模型(生成式模型)与判别式模型<转载>
转自http://dongzipnf.blog.sohu.com/189983746.html 产生式模型与判别式模型 产生式模型(Generative Model)与判别式模型(Discrimiti ...
- OpenCascade: 获取边的端点
FirstV = TopExp::FirstVertex(aEdge1); LastV = TopExp::LastVertex(aEdge1);
- CPP-STL:STL备忘
STL备忘(转) 1. string.empty() 不是用来清空字符串,而是判断string是否为空,清空使用string.clear(); 2. string.find等查找的结果要和string ...