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的基础应用算告一段落,若还有补充则会另开一篇。
转载于:https://www.cnblogs.com/lxz88/p/6262982.html
Composer基础应用1相关推荐
- Composer 基础使用
基础命令展开目录 创建项目展开目录 composer create-project [包名] [目录] [版本号] 可以使用 Composer 从现有的包中创建一个新的项目,相当于 git clone ...
- composer 笔记
记笔记 ...记笔记.... 第三次学习 composer,学了好几次了,看文档或者视频.但是由于用的少,很快就忘了. 看来做笔记是不可少的,还有强化练习. composer安装 在自己电脑安装过一次 ...
- 桌面虚拟化最佳实践4—存储规划(下)
上面我们从系统层面以及VIEW的软件层面详细描述了如何进行存储的优化,下面我们从硬件以及协议层面来看看如何规划桌面虚拟化项目中的存储. 存储协议选项 VMware ESX 3.0 及更高版本支持为虚拟 ...
- 002开发、部署一个共享自行车区块链网络
前言 在本系列第 1 部分文章的中,我们一起学习了 Fabric.Composer 基础知识,利用 Hyperledger Compose 搭建了 Fabric 本地开发环境,运行了一个示例区块链网络 ...
- composer搭建php框架,用 Composer构建自己的 PHP 框架之基础准备
『Composer 一统天下的时代已经到来!』 --白岩松 "一个时代结束了,另一个时代开始了." Framework Interoperability Group(框架可互用性小 ...
- php 建立自己的框架,利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备...
"一个时代结束了,另一个时代开始了." Framework Interoperability Group(框架可互用性小组),简称 FIG,成立于 2009 年.FIG 最初由几位 ...
- 零基础学习MSP430F552LP开发板,学习前期准备,Code Composer Studio(CCS)软件的安装
零基础学习MSP430F552LP开发板 一.前言 零基础学习MSP430F552LP开发板,为电子设计竞赛做准备以及学好这一款芯片. 在选择比赛题目时,发现有的题目时规定使用ti的芯片作为控制MCU ...
- composer搭建php框架,利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备...
『Composer 一统天下的时代已经到来!』--白岩松 "一个时代结束了,另一个时代开始了." Framework Interoperability Group(框架可互用性小组 ...
- laravel框架的基础学习路线(不带composer的)
首先,博主这里一直用的都是laravel的一键安装包,所以一直没有用composer来操作过laravel.很多事情不用composer也能完成.这里主要是写给公司同事的一个laravel框架入手顺序 ...
最新文章
- 人工智能改善客户服务体验
- 分布式id生成策略,我和面试官扯了一个半小时
- 为小区物业开发一个停车位租赁系统
- 集成 websocket 的四种方案
- xtrabackup mysql8.0_Percona XtraBackup 8.0, 安装与测试
- 用tensorflow实现矩阵分解
- 使用ASM实现动态代理
- ExtJS视频教程 ExtJS入门到精通教程下载
- 建模方法(四)-因子分析定义和应用
- 2023南京财经大学计算机考研信息汇总
- 计算机老是蓝屏需要重新启动3,电脑蓝屏重启,教您电脑经常自动蓝屏重启怎么办...
- 微信小程序中集成有赞UI自定义Tabbar组件
- 人人都知“双十一”,几人仍记“光棍节”
- 服务器2003设置共享文件夹共享文件夹,WinServer2003 文件夹共享 方法设置
- i3 9350KF和i5 9400F的区别
- 打印机定影膜引起的诡异故障
- android_驱动_qcom_【高通SDM660平台】(4) --- Camera Init 初始化流程
- 玩转华为数据中心交换机系列 | 配置基于接口划分VLAN示例
- Css中路径data:image/png;base64的用法详解 (转载)
- AVA 代码覆盖率工具 JaCoCo-实践篇
热门文章
- java构造反射和函数_反射类的构造函数和方法
- OpenCV-Python实战(11)——OpenCV轮廓检测相关应用
- java语言生日蛋糕代码_AcWing 168. 【Java】生日蛋糕
- grep 去掉 grep_使用grep的regex的10个实用示例
- 简要说明下maven的作用_Maven资料库–简要指南
- adalm pluto_Apache Pluto和PHP集成示例教程
- Java Thread等待,通知和notifyAll示例
- 开课吧课堂-Java面试题:面向对象的特征有哪些方面?
- 这些Java面试题,你一定要记住!
- Java基础篇:循环语句之while语句