Composer is a new generation of PHP dependency management tool. This article introduces five tips for using Composer, hoping to bring convenience to your PHP development.
1. Only update a single library
You only want to update a specific library and don’t want to update all its dependencies. It’s very simple
composer update foo/bar
In addition, this technique can also be used to solve the "warning message problem". You must have seen warning messages like this:
Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.
Rub, what went wrong? Don't panic! If you edit composer.json, you should see something like this. For example, if you add or update details such as a library description, author, more parameters, or even just add a space, it will change the md5sum of the file. Composer will then warn you that the hash value is different from the one recorded in composer.lock.
So what should we do? The update command can update the lock file, but if it only adds some descriptions, it should not update any libraries. In this case, just update nothing:
$ composer update nothing Loading composer repositories with package information Updating dependencies Nothing to install or update Writing lock file Generating autoload files
In this way, Composer will not update the library, but it will update composer.lock. Note that nothing is not a keyword in the update command. There is just nothing this package causes. If you type foobar, the result is the same.
If the Composer version you are using is new enough, you can use the --lock option directly:
composer update --lock
2. Install the library without editing composer.json
You may find it too troublesome to modify composer.json every time you install a library, so you can use the require command directly.
composer require "foo/bar:1.0.0"
This method can also be used to quickly open a new project. The init command has the --require option, which can automatically write composer.json: (note that we use -n so that we don’t have to answer the question)
$ composer init --require=foo/bar:1.0.0 -n $ cat composer.json { "require": { "foo/bar": "1.0.0" } }
3. Derivation is easy
When initializing, Have you tried the create-project command?
composer create-project doctrine/orm path 2.2.0
This will automatically clone the repository and check out the specified version. This command is very convenient to use when cloning a library, as there is no need to search for the original URI.
4. Consider caching, give priority to dist packages
Composer from the past year will automatically archive the dist package you downloaded. By default, the dist package is used for tagged versions, such as "symfony/symfony": "v2.1.4", or wildcards or version ranges, "2.1.*" or ">=2.2,
dist package can also be used for branches such as dev-master. Github allows you to download a compressed package referenced by git. To force the use of a tarball instead of cloning the source code, you can use the --prefer-dist option of install and update.
The following is an example (I used the --profile option to display execution time):
$ composer init --require="twig/twig:1.*" -n --profile Memory usage: 3.94MB (peak: 4.08MB), time: 0s $ composer install --profile Loading composer repositories with package information Installing dependencies - Installing twig/twig (v1.12.2) Downloading: 100% Writing lock file Generating autoload files Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s $ rm -rf vendor $ composer install --profile Loading composer repositories with package information Installing dependencies from lock file - Installing twig/twig (v1.12.2) Loading from cache Generating autoload files Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s
Here, the compressed package of twig/twig:1.12.2 is saved in ~/.composer /cache/files/twig/twig/1.12.2.0-v1.12.2.zip. Use it directly when reinstalling the package.
5. If you want to modify, source code first
When you need to modify the library, cloning the source code is more convenient than downloading the package. You can use --prefer-source to force selection of clone source code.
composer update symfony/yaml --prefer-source
Next you can modify the file:
composer status -v You have changes in the following dependencies: /path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml: M Dumper.php
When you try to update a modified library, Composer will remind you and ask whether to abandon the modification:
$ composer update Loading composer repositories with package information Updating dependencies - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0) The package has modified files: M Dumper.php Discard changes [y,n,v,s,?]?
Preparing for the production environment
Finally, as a reminder, when deploying code to the production environment, don’t forget to optimize automatic loading:
composer dump-autoload --optimize
You can also use --optimize- when installing packages autoloader. Without this option, you may see a 20% to 25% performance loss.
For more composer-related technical articles, please visit the composer column: https://www.php.cn/tool/composer/
The above is the detailed content of 5 Composer Tips PHP Developers Should Know. For more information, please follow other related articles on the PHP Chinese website!

Composer is a dependency management tool for PHP, which is used to manage libraries and packages required by projects. 1) It defines dependencies through composer.json file, 2) installs and updates using command line tools, 3) automates the dependency management process, improves development efficiency, 4) supports advanced functions such as dynamically adding dependencies and automatic loading, 5) Ensures consistency of the team environment through composer.lock file.

Composer is a dependency management tool for PHP, and manages project dependencies through composer.json and composer.lock files. 1. Create the composer.json file and run the composerinstall installation dependency. 2. Use composerrequire to add new dependencies. 3. Configure autoload to implement automatic loading of classes. 4. Use composerdiagnose to check the health status of the project. 5. Optimize dependency management: specify the package name update, use composerdump-autoload-o to optimize the autoloader, use composerinstall--no-d in the production environment

The combination of AI and Composer can improve PHP development efficiency and security. Specifically reflected in: 1. Dependency analysis and optimization: AI can predict dependencies and reduce conflicts. 2. Automated security checks: AI can identify security vulnerabilities, and it is recommended to update them. 3. Code generation and optimization: AI can automatically generate and optimize related code.

VprocesserazrabotkiveB-enclosed, Мнепришлостольностьсясзадачейтерациигооглапидляпапакробоглесхетсigootrive. LEAVALLYSUMBALLANCEFRIABLANCEFAUMDOPTOMATIFICATION, ČtookazaLovnetakProsto, Kakaožidal.Posenesko

I'm having a tricky problem when developing a Symfony-based application: how to effectively validate JSON data format. Initially, I tried using manual verification code, but this was not only complicated, but also error-prone. After some exploration, I discovered a Composer package called ptyhard/json-schema-bundle, which brought great convenience and efficiency to my project.

When developing an e-commerce website, I encountered a difficult problem: how to provide users with personalized product recommendations. Initially, I tried some simple recommendation algorithms, but the results were not ideal, and user satisfaction was also affected. In order to improve the accuracy and efficiency of the recommendation system, I decided to adopt a more professional solution. Finally, I installed andres-montanez/recommendations-bundle through Composer, which not only solved my problem, but also greatly improved the performance of the recommendation system. You can learn composer through the following address:

When developing an e-commerce platform, it is crucial to choose the right framework and tools. Recently, when I was trying to build a feature-rich e-commerce website, I encountered a difficult problem: how to quickly build a scalable and fully functional e-commerce platform. I tried multiple solutions and ended up choosing Fecmall's advanced project template (fecmall/fbbcbase-app-advanced). By using Composer, this process becomes very simple and efficient. Composer can be learned through the following address: Learning address

I had a tough problem when working on a project with a large number of Doctrine entities: Every time the entity is serialized and deserialized, the performance becomes very inefficient, resulting in a significant increase in system response time. I've tried multiple optimization methods, but it doesn't work well. Fortunately, by using sidus/doctrine-serializer-bundle, I successfully solved this problem, significantly improving the performance of the project.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Atom editor mac version download
The most popular open source editor

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

Zend Studio 13.0.1
Powerful PHP integrated development environment