composer的原理和使⽤(上)--phar的相关
简书markdown不⽀持⽬录.png
什么是composer
在之前的PHP开发中,我也仅仅是使⽤composer来进⾏依赖的管理,没有深度去理解到底什么是composer,今天有时间就开始深⼊的研究⼀下。
Composer 不是⼀个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项⽬的基础上进⾏管理,在你项⽬的某个⽬录中(例如 vendor)进⾏安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是⼀个依赖管理。 --来⾃composer的官⽅⽂档
其实上⾯的⽂案在⼀开始接触composer的时候我是能明⽩他说什么的,但是今天仔细分析⼜发现对其中的很多表述还是⽐较模糊。⾸先是包管理器的理解。
包管理器⼜称软件包管理系统,它是在电脑中⾃动安装、配制、卸载和升级软件包的⼯具组合,在各种系统软件和应⽤软件的安装管理中均有⼴泛应⽤。 --百度百科
软件包(SoftWare Package)是指具有特定的功能,⽤来完成特定任务的⼀个程序或⼀组程序。可分为应⽤软件包和系统软件包两⼤类。应⽤软件包与特定的应⽤领域有关,⼜可分为通⽤包及专⽤包两类。通⽤软件包根据社会的⼀些共同需求开发,专⽤软件包则是⽣产者根据⽤户的具体需求定制的,可以为适合其特殊需要进⾏修改或变更
通过软件包管理器能理解,包管理器更多的管理的能直接执⾏的应⽤程序,像rpm,apt,brew,yum都是指定的类Unix系统的包管理器。⽽对于PHP脚本语⾔,在开发者编写的脚本 ⼀般依赖的是各种库的脚本。所以在composer定义中先说明composer不是⼀个包管理器。
终于后⾯它涉及 "packages" 和 "libraries" ,我⼀直想接着查询 "packages" 和 "libraries"区别,但是没有到相关描述。但是定义最后⼀句明确说明了,他是⼀个依赖管理⼯具。
phar ⽂件
在我们下载composer的时候都可以看到是下载⼀个composer.phar ⽂件。那么phar ⽂件是什么类型的⽂件,他和PHP的关系是什么?所以要深⼊了解composer应该先从phar开始
phar打包PHP程序
PHAR (“Php ARchive”) 是PHP⾥类似于JAR的⼀种打包⽂件。如果你使⽤的是 PHP 5.3 或更⾼版本,那么Phar后缀⽂件是默认开启⽀持
如何运行php项目phar manifest format.png
phar ⽂件是⽀持权限和分组的。
The Phar manifest is a highly optimized format that allows per-file specification of file compression, file permissions, and even user-defined meta-data such as file user or group. All values greater than 1 byte are stored in little-endian byte order, with the exception of the API version, which for historical reasons is stored as 3 nibbles in big-endian order.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论