cari
Rumahalat pembangunancomposerComposer之常用命令和版本约束

下面由composer使用教程栏目为大家讲解常用的包管理命令以及包的版本如何进行约束,希望对需要的朋友有所帮助!

Composer之常用命令和版本约束

常用命令

require命令

在《Composer教程》中已经简单介绍过使用install命令安装依赖的方式。除了install命令,我们还可以使用require命令快速的安装一个依赖而不需要手动在composer.json里添加依赖信息:

$ composer require monolog/monolog
Using version ^1.19 for monolog/monolog
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing psr/log (1.0.0)
    Downloading: 100%         
 
  - Installing monolog/monolog (1.19.0)
    Downloading: 100%         
 
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
......
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
Writing lock file
Generating autoload files

Composer会先找到合适的版本,然后更新composer.json文件,在require那添加monolog/monolog包的相关信息,再把相关的依赖下载下来进行安装,最后更新composer.lock文件并生成php的自动加载文件。

update命令

通过update命令,可以更新项目里所有的包,或者指定的某些包。

# 更新所有依赖
$ composer update
 
# 更新指定的包
$ composer update monolog/monolog
 
# 更新指定的多个包
$ composer update monolog/monolog symfony/dependency-injection
 
# 还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*

需要注意的时,包能升级的版本会受到版本约束的约束,包不会升级到超出约束的版本的范围。例如如果composer.json里包的版本约束为^1.10,而最新版本为2.0。那么update命令是不能把包升级到2.0版本的,只能最高升级到1.x版本。关于版本约束请看后面的介绍。

remove命令

使用remove命令可以移除一个包及其依赖(在依赖没有被其他包使用的情况下):

$ composer remove monolog/monolog
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing monolog/monolog (1.19.0)
  - Removing psr/log (1.0.0)
Writing lock file
Generating autoload files

search命令

使用search命令可以进行包的搜索:

$ composer search monolog
monolog/monolog Sends your logs to files, sockets, inboxes, databases and various web services
 
# 如果只是想匹配名称可以使用--only-name选项
$ composer search --only-name monolog

show命令

使用show命令可以列出项目目前所安装的包的信息:

# 列出所有已经安装的包
$ composer show
 
# 可以通过通配符进行筛选
$ composer show monolog/*
 
# 显示具体某个包的信息
$ composer show monolog/monolog

以上是常用命令的介绍。

版本约束

前面说到,我们可以指定要下载的包的版本。例如我们想要下载版本1.19的monolog。我们可以通过composer.json文件:

{
    "require": {
        "monolog/monolog": "1.19"
    }
}

然后运行install命令,或者通过require命令达到目的:

$ composer require monolog/monolog:1.19
 
# 或者
$ composer require monolog/monolog=1.19
 
# 或者
$composer require monolog/monolog 1.19

除了像上面那样指定具体的版本,我们还可以通过不同的约束方式去指定版本。

基本约束

精确版本

可以指定具体的版本,告诉Composer只能安装这个版本。但是如果其他的依赖需要用到其他的版本,则包的安装或者更新最后会失败并终止。

例子:1.0.2

范围

使用比较操作符你可以指定包的范围。这些操作符包括:>,>=,da0f849c9c2860dbe08309cbd037971e=的版本,而连字符的右边情况则稍微有点复杂。如果右边的版本不是完整的版本号,则会被使用通配符进行补全。例如1.0 - 2.0等同于>=1.0.0 bd73cbb1ea5e968706f6a3dada96e1fa=1.0.0 cdeb7e1fcf53710a04144c4e38ae118b=1.0 0ddaf87e17b76c022d13121d105f5fc5=1.2 09ff4873314034171838b9e304c79d99=1.2.3 9da645189b1eceb6f6be8cd86ae3e5d0=1.2.3 a66e09eac547dd966f3d617552b8b614=0.3.0 <0.4.0对待。

例子:^1.2.3

版本稳定性

如果你没有显式的指定版本的稳定性,Composer会根据使用的操作符,默认在内部指定为-dev或者-stable。例如:

a4d42d5ffea0489b69e63c52383972d.png

如果你想指定版本只要稳定版本,你可以在版本后面添加后缀-stable。

minimum-stability 配置项定义了包在选择版本时对稳定性的选择的默认行为。默认是stable。它的值如下(按照稳定性排序):dev,alpha,beta,RC和stable。除了修改这个配置去修改这个默认行为,我们还可以通过稳定性标识(例如@stable和@dev)来安装一个相比于默认配置不同稳定性的版本。例如:

{
    "require": {
        "monolog/monolog": "1.0.*@beta",
        "acme/foo": "@dev"
    }
}

以上是版本约束的介绍。

Atas ialah kandungan terperinci Composer之常用命令和版本约束. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:cuiqingcai. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Komposer dan AI: Kemungkinan Baru dalam Pembangunan PHPKomposer dan AI: Kemungkinan Baru dalam Pembangunan PHPApr 19, 2025 am 12:03 AM

Gabungan AI dan komposer dapat meningkatkan kecekapan dan keselamatan pembangunan PHP. Khususnya dicerminkan dalam: 1. Analisis dan Pengoptimuman Ketergantungan: AI boleh meramalkan kebergantungan dan mengurangkan konflik. 2. Pemeriksaan keselamatan automatik: AI dapat mengenal pasti kelemahan keselamatan, dan disyorkan untuk mengemas kini mereka. 3. Penjanaan Kod dan Pengoptimuman: AI secara automatik boleh menjana dan mengoptimumkan kod yang berkaitan.

Menggunakan DICR/YII2-Google untuk mengintegrasikan API Google di YII2Menggunakan DICR/YII2-Google untuk mengintegrasikan API Google di YII2Apr 18, 2025 am 11:54 AM

VProcesserAzrabotKiveB-disengajakan, мнепришосоаookaнноаяадачейтераце hadapan LeavallysumballanceFriablanceFaumdoptomification, čtookazalovnetakprosto, Kakaožidal.posenesko

Cara Menggunakan Komposer Untuk Menyelesaikan Masalah Pengesahan Skema JSONCara Menggunakan Komposer Untuk Menyelesaikan Masalah Pengesahan Skema JSONApr 18, 2025 am 11:51 AM

Saya menghadapi masalah yang sukar apabila membangunkan aplikasi berasaskan simfoni: bagaimana untuk mengesahkan format data JSON dengan berkesan. Pada mulanya, saya cuba menggunakan kod pengesahan manual, tetapi ini bukan sahaja rumit, tetapi juga rawan ralat. Selepas beberapa penjelajahan, saya dapati pakej komposer yang dipanggil Ptyhard/JSON-Schema-Bundle, yang membawa kemudahan dan kecekapan yang besar kepada projek saya.

Gunakan komposer untuk menyelesaikan dilema sistem cadangan: Andres-Montanez/Cadangan-BundleGunakan komposer untuk menyelesaikan dilema sistem cadangan: Andres-Montanez/Cadangan-BundleApr 18, 2025 am 11:48 AM

Apabila membangunkan laman web e-dagang, saya menghadapi masalah yang sukar: bagaimana menyediakan pengguna dengan cadangan produk yang diperibadikan. Pada mulanya, saya mencuba beberapa algoritma cadangan mudah, tetapi hasilnya tidak sesuai, dan kepuasan pengguna juga terjejas. Untuk meningkatkan ketepatan dan kecekapan sistem cadangan, saya memutuskan untuk menggunakan penyelesaian yang lebih profesional. Akhirnya, saya memasang Andres-Montanez/Cadangan-Bundle melalui komposer, yang bukan sahaja menyelesaikan masalah saya, tetapi juga meningkatkan prestasi sistem cadangan. Anda boleh belajar komposer melalui alamat berikut:

Cara Cepat Membangun Templat Projek Lanjutan Fecmall Menggunakan KomposerCara Cepat Membangun Templat Projek Lanjutan Fecmall Menggunakan KomposerApr 18, 2025 am 11:45 AM

Apabila membangunkan platform e-dagang, adalah penting untuk memilih rangka kerja dan alat yang betul. Baru-baru ini, ketika saya cuba membina laman web e-dagang yang kaya dengan ciri-ciri, saya menghadapi masalah yang sukar: bagaimana dengan cepat membina platform e-dagang yang berskala dan berfungsi sepenuhnya. Saya mencuba pelbagai penyelesaian dan akhirnya memilih template projek lanjutan FECMALL (FECMALL/FBBCBASE-APP-Advanced). Dengan menggunakan komposer, proses ini menjadi sangat mudah dan cekap. Komposer dapat dipelajari melalui alamat berikut: Alamat Pembelajaran

Meningkatkan kecekapan siri entiti doktrin: Penggunaan Sidus/Doktrin-Serializer-BundleMeningkatkan kecekapan siri entiti doktrin: Penggunaan Sidus/Doktrin-Serializer-BundleApr 18, 2025 am 11:42 AM

Saya mempunyai masalah yang sukar apabila mengerjakan projek dengan sejumlah besar entiti doktrin: Setiap kali entiti bersiri dan deserialized, prestasi menjadi sangat tidak cekap, mengakibatkan peningkatan yang signifikan dalam masa tindak balas sistem. Saya telah mencuba pelbagai kaedah pengoptimuman, tetapi ia tidak berfungsi dengan baik. Nasib baik, dengan menggunakan Sidus/Doctrine-Serializer-Bundle, saya berjaya menyelesaikan masalah ini, dengan ketara meningkatkan prestasi projek.

Gunakan komposer untuk menyelesaikan masalah pembalakan ralat dalam projek laravelGunakan komposer untuk menyelesaikan masalah pembalakan ralat dalam projek laravelApr 18, 2025 am 11:39 AM

Apabila membangunkan projek Laravel, pengurusan log ralat adalah pautan yang sangat kritikal. Baru -baru ini, saya menghadapi masalah dalam projek saya: bagaimana untuk menangkap dan merekodkan semua jenis kesilapan dan memastikan bahawa mesej ralat ini dapat diproses tepat pada masanya. Selepas beberapa penyelidikan, saya dapati pakej Lukeboy25/errorlogger. Ia dipasang melalui komposer dan dapat memudahkan proses pengurusan log ralat. Anda boleh belajar komposer melalui alamat berikut:

Cara Menggunakan Komposer Untuk Meningkatkan Keamanan Aplikasi Laravel: Aplikasi Perpustakaan Wiebenieuwenhuis/Laravel-2FACara Menggunakan Komposer Untuk Meningkatkan Keamanan Aplikasi Laravel: Aplikasi Perpustakaan Wiebenieuwenhuis/Laravel-2FAApr 18, 2025 am 11:36 AM

Apabila membangunkan aplikasi Laravel, saya menghadapi masalah yang sama tetapi sukar: bagaimana untuk meningkatkan keselamatan akaun pengguna. Dengan peningkatan kerumitan serangan siber, perlindungan kata laluan tunggal tidak lagi cukup untuk memastikan keselamatan data pengguna. Saya mencuba beberapa kaedah, tetapi hasilnya tidak memuaskan. Akhirnya, saya memasang perpustakaan Wiebenieuwenhuis/Laravel-2FA melalui komposer dan berjaya menambah pengesahan dua faktor (2FA) ke aplikasi saya, sangat meningkatkan keselamatan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa