教你用Composer管理相依性

发布时间:2024-07-19
下面由composer教程栏目给大家介绍用composer管理相依性,希望对需要的朋友有所帮助!
composer原本是symfony这个php framework中,设计来管理套件相依性的工具,因为简单又好用,现在已经成为一个独立的开放原始码计画。许多framework以及程式库,现在都可以使用composer来安装管理。
其实在php上,很早就有这类的套件相依性管理工具,也就是pear。不过pear的设定过于繁复,也很难针对个别专案设定各自的相依性,所以现在composer受到大众的喜爱。
这个简介只针对使用者,所以不会对于套件开发者需要知道的部份着墨。
* 安装
如果是windows的使用者,只需要下载安装档并且执行安装:
https://getcomposer.org/composer-setup.exe如果要手动安装,可以参考官网的指引:
http://getcomposer.org/doc/00-intro.md#installation-windows如果是unix like系统的使用者,可以透过这样的指令来安装:(需要先安装curl)
curl -ss https://getcomposer.org/installer | php安装程式会检查php的设定,然后下载composer.phar到当前的目录。要执行composer的话,可以执行
php composer.phar或是干脆把它改成执行档
>mv composer.phar composer>chmod x composer然后执行./composer。
不过如果再不同的工作目录中都需要的话,而且执行权限也没问题,也可以直接把档案复制到/usr/local/bin。
* 设定相依性
在专案中使用composer时,首先要产生一个composer.json档,里面指定要使用的套件与版本。例如需要用phpmailer来寄信时,可以这样指定:
{"require": {"phpmailer/phpmailer": "~5.2.7"}}然后执行安装:
eng-hsu-pingteki-macbook-air:2-1a fillano$ composer installloading composer repositories with package informationinstalling dependencies (including require-dev) - installing phpmailer/phpmailer (v5.2.7) downloading: 100% writing lock filegenerating autoload filesfeng-hsu-pingteki-macbook-air:2-1a fillano$这样就安装好了。看一看到底装了什么:
feng-hsu-pingteki-macbook-air:2-1a fillano$ ls -ltotal 16-rw-r--r-- 1 fillano staff 66 10 11 18:15 composer.json-rw-r--r-- 1 fillano staff 2330 10 11 18:16 composer.lockdrwxr-xr-x 5 fillano staff 170 10 11 18:16 vendor根据目录中的档案可以发现,本来只有composer.json档案,安装之后多了一个composer.lock档案以及vendor目录。先看一下composer.lock的内容:
feng-hsu-pingteki-macbook-air:2-1a fillano$ cat composer.lock{ "_readme": [ "this file locks the dependencies of your project to a known state", "read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" ], "hash": "065c23f92d5ae579cb91beff67f41196", "packages": [ { "name": "phpmailer/phpmailer", "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/phpmailer/phpmailer.git", "reference": "8717a79565b2c0ed67f851d70e1949febdf3b226" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/phpmailer/phpmailer/zipball/8717a79565b2c0ed67f851d70e1949febdf3b226", "reference": "8717a79565b2c0ed67f851d70e1949febdf3b226", "shasum": "" }, "require": { "php": ">=5.0.0" }, "require-dev": { "phpdocumentor/phpdocumentor": "*", "phpunit/phpunit": "*" }, "type": "library", "autoload": { "classmap": [ "class.phpmailer.php", "class.pop3.php", "class.smtp.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "lgpl-2.1" ], "authors": [....下略看起来是刚刚安装套件的资讯。
再看一下vendor目录有什么东西:
feng-hsu-pingteki-macbook-air:2-1a fillano$ tree vendorvendor├── autoload.php├── composer│ ├── classloader.php│ ├── autoload_classmap.php│ ├── autoload_namespaces.php│ ├── autoload_real.php│ └── installed.json└── phpmailer └── phpmailer ├── license ├── phpmailerautoload.php ├── readme.md ├── changelog.md ├── class.phpmailer.php
上一个:锅炉房丙烷气体泄漏探测器
下一个:流量积算控制仪/迅鹏WPR22HC-IKR

RC2512JK-07390RL,2512 390Ω 5% 1W 电阻
发动机水泵的维护
React必知必会的35个面试题
com.hk域名有什么区别
便携式水产养殖快速检测箱
2022年最新亚马逊FBA海运滞箱费是什么?集装箱中各种成本是怎样造成的?
设计对齿轮铸造来说是z关键的步骤
表面粗糙度仪允许误差
梅花秋季巧养护
预涂层袋式除尘器的特点与应用