Composer基础应用1
先唠叨唠叨一些琐碎的事。本人最早从事.Net开发,后来处于好奇慢慢转到了php,因为.net从一早就使用了命名空间(反正从我使用就存在这玩意了),所以在转php时很自然的就使用了命名空间,但是在使用过程,发现php的use和.net中的using完全不是一个概念。
一、学习composer前的历程
1、在.net中,若调用某个类,直接using 命名空间.类名即可;而php中虽然有命名空间这玩意,你也可以use 引入命名空间,但若想调用某个类,则必须require或include。说实话,刚开始觉得特别特别的别扭,差点让我对php失去好奇。
2、随着学习的深入,发现了php中的__autoload(),这个函数能实现类的自动加载,即在初始化类时,若未找到该类文件,则调用__autoload()方法,这样我们就能很轻松的在__autoload()方法中使用require或者include了;后来又发现了一个spl_autoload_register,这个函数其实就是注册__autoload()方法,当然你也可以注册自定义的方法,而且可以注册多个。
3、后来在使用laravel框架时,发现该框架是使用Composer来管理依赖以及自动加载的,于是就学习了下Composer。
二、composer安装。
1、下载、安装composer,在终端执行:curl -sS https://getcomposer.org/installer | php 。命令执行完毕后,会在当前目录下下载一个composer.phar
2、检查composer是否能正常工作,在终端执行:php composer.phar。
3、设置全局命令,在终端执行:mv composer.phar /usr/local/bin/composer
4、查看composer版本:composer -V
以上四步则完成了composer安装。
三、如何使用composer来管理依赖呢?假设我们要创建一个demo的项目,在demo文件夹下创建composer.json文件,在composer.json中定义项目的依赖。
1、假设你的项目需要依赖三方monolog,则在composer.json中写:
{ "require":
{
"monolog/monolog": "1.2.*"
}
}
2、下载依赖到你的本地项目:composer install。将会创建 vendor/monolog/monolog 目录并下载三方组件。扩展:install 将会创建一个composer.lock文件,该文件会于composer.json同一目录层级(即根目录下)。在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件,锁定该项目需要依赖组件的版本,这样能保证所有开发人员能使用一致的组件。当然要是你想更新组件的版本,则可以使用:composer update;若只想更新某个组件,则可以使用:composer update monolog/monolog
四、composer自动加载。
1、若要实现项目中的类自动加载,很简单,只要在项目入口文件中率先引入autoload.php文件即可:require 'vendor/autoload.php';
2、你可以在 composer.json 的 autoload 字段中增加自己的 autoloader(定义要加载的命名空间与具体路径的键值对)。
"autoload": {
"psr-4": {"App\\": "app/"}
}
添加完毕以后,需要再次执行:composer install,自定义的autoloader才生效。
此时,我们可以在项目创建app文件夹,假设我们还创建A类、B类,两个的命名空间我们设定为App。我们要在A类中调用B类,只需要在A类中use App\B 即可
到此,Composer的基础应用算告一段落,若还有补充则会另开一篇。
Composer基础应用1的更多相关文章
- Composer基础
摘要 本文介绍Composer的入门知识,包括require和autoload部分. Java有Maven, Node.js有npm, ROR有gem, 这些语言的程序员在开心地使用包管理工具加速开发 ...
- 这一次,真正掌握composer
思维导图 composer是现代PHP的基石 现代高级编程语言,依赖管理工具是必不可少的.Java有Maven,Python有pip,Nodejs有npm, 而在composer出现之前,PHP只 ...
- VMware vSphere 服务器虚拟化之二十八 桌面虚拟化之安装View传输服务器
VMware vSphere 服务器虚拟化之二十八 桌面虚拟化之安装View传输服务器 View 传输服务器用于管理和简化数据中心与在最终用户本地系统上检出使用的 View 桌面之间的数据传输.必须安 ...
- VMware vSphere 服务器虚拟化之十六 桌面虚拟化之VMware Horizon View
VMware vSphere服务器虚拟化之十六 桌面虚拟化之VMware Horizon View VMware Horizon View (原VMware View的升级版现在版本5.2)是 ...
- Yii2中如何使用CodeCeption
Yii2和CodeCeption CodeCeption是一个全栈的PHP测试框架,关于CodeCeption的介绍见:CodeCeption官方文档. Yii2官方增加了对CodeCeption的支 ...
- swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?
date: 2018-8-01 14:22:17title: swoft| 源码解读系列二: 启动阶段, swoft 都干了些啥?description: 阅读 sowft 框架源码, 了解 sowf ...
- 利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备
『Composer 一统天下的时代已经到来!』——白岩松 “一个时代结束了,另一个时代开始了.” Framework Interoperability Group(框架可互用性小组),简称 FIG,成 ...
- 基于Composer Player 模型加载和相关属性设置
主要是基于达索软件Composer Player.的基础上做些二次开发. public class ComposerToolBarSetting { public bool AntiAliasingO ...
- 在linux上如何通过composer安装yii
Composer可以理解成一个依赖管理工具 它能解决以下问题 a) 你有一个项目依赖于若干个库. b) 其中一些库依赖于其他库. c) 你声明你所依赖的东西. d) Composer 会找出哪个版 ...
随机推荐
- nginx+keepalived实现双机热备高可用性
搭建准备: 机器两台 ip分别为192.168.100.128 192.168.100.129(能够用虚拟机測试.虚拟机网络模式为NET模式.且为静态ip) 另外须要准备一个虚拟ip对外提供服务.即通 ...
- C语言批量数据到动态二维数组
上一篇文章将文件读取放到静态创建的二维数组中,可是结合网络上感觉到今天的DT时代,这样批量大量读取一个上百行的数据,分配的内存是否可能由于大量的数据而产生溢出呢,近期一直研究里malloc函数.通过它 ...
- ETL拉链算法汇总大全
拉链算法总结大全: 一.0610算法(追加) 1.删除仓库表的载入日期是本次载入日期的数据,以支持重跑 delete from xxx where start_dt >=$tx_date; 2. ...
- 配置fio支持rbd測试引擎
fio的rbd測试引擎能够非常方便的对rbd进行測试.以下示范怎样安装fio支持rbd引擎. git clone git://git.kernel.dk/fio.git $ cd fio $ ./co ...
- C与C++在形參的一点小差别
先看一下以下的代码: int fun(a,b) int a; int b; { return 10; } void main(int argc, char ** argv) { fun(10); re ...
- 推荐TED演讲:20岁光阴不再来(Why 30 is not the new 20)
缘起 早上起来在电脑上看到"自强不息"群(群号)中骆宏给大家分享的视频."20岁光阴不再来",利用短暂的时间浏览了一下.就像把这个TED视频分享给很多其它的朋友 ...
- HDFS源码分析心跳汇报之整体结构
我们知道,HDFS全称是Hadoop Distribute FileSystem,即Hadoop分布式文件系统.既然它是一个分布式文件系统,那么肯定存在很多物理节点,而这其中,就会有主从节点之分.在H ...
- 删除rabbitmq的队列和队列中的数据
访问http://{rabbitmq安装IP}:15672,帐号guest,密码guest(也可以使用自己创建的帐号). 登录后访问http://{rabbitmq安装IP}:15672/#/qu ...
- js中scrollLeft、scrollWidth、offsetTop等相关位置属性的理解(转)
1.常见的事件位置属性 e.pageX——相对整个页面的坐标 注意:IE6.IE7.IE8无该属性 e.layerX——相对当前坐标系的border左上角开始的坐标 注意:在opera.IE6.IE7 ...
- 【BZOJ1786】[Ahoi2008]Pair 配对 DP
[BZOJ1786][Ahoi2008]Pair 配对 Description Input Output Sample Input 5 4 4 2 -1 -1 3 Sample Output 4 题解 ...