📖 Scenario: You are building a simple PHP project that needs to use an external library for handling HTTP requests. Composer is the tool that helps you manage these external libraries, called dependencies.In this project, you will learn how to add a dependency using Composer and check that it is installed correctly.
🎯 Goal: Learn how to use composer require to add a dependency to your PHP project and verify it is installed by checking the vendor folder and composer.json file.
📋 What You'll Learn
Create a new PHP project folder
Initialize Composer in the project
Use composer require to add the Guzzle HTTP client library
Verify the dependency is installed and listed in composer.json
💡 Why This Matters
🌍 Real World
Composer is the standard tool for managing PHP project dependencies. It helps you add, update, and remove libraries easily without manual downloads.
💼 Career
Knowing Composer is essential for PHP developers to manage project libraries efficiently and keep projects up to date with the latest versions.
Progress0 / 4 steps
1
Initialize a new Composer project
Open your terminal and run composer init --no-interaction inside your project folder to create a composer.json file with default settings.
PHP
Hint
Use the terminal command composer init --no-interaction to quickly create a composer.json file.
2
Add Guzzle HTTP client dependency
Run composer require guzzlehttp/guzzle in your terminal to add the Guzzle HTTP client library as a dependency to your project.
PHP
Hint
Use composer require guzzlehttp/guzzle to add the Guzzle library.
3
Check installed dependencies
Open the composer.json file and verify that guzzlehttp/guzzle is listed under the require section. Also, check that the vendor folder exists in your project directory.
PHP
Hint
Open composer.json in a text editor and look for the require section. The vendor folder should be created after installing dependencies.
4
Use Guzzle in a PHP script and output version
Create a PHP file named test_guzzle.php with code that loads Composer's autoloader and prints the Guzzle version using GuzzleHttp\Client::VERSION. Run the script and print the output.
PHP
Hint
Use require 'vendor/autoload.php'; to load dependencies. Then print \GuzzleHttp\Client::VERSION to show the version.
Practice
(1/5)
1. What does the composer require command do in a PHP project?
easy
A. It adds a new package to composer.json and installs it.
B. It removes a package from the project.
C. It updates PHP to the latest version.
D. It creates a new PHP project from scratch.
Solution
Step 1: Understand the purpose of composer require
This command adds a new package to the composer.json file and downloads the package files into the project.
Step 2: Compare with other options
Removing packages is done with composer remove, updating PHP is unrelated, and creating projects uses other tools.
Final Answer:
It adds a new package to composer.json and installs it. -> Option A
Quick Check:
composer require = add and install package [OK]
Hint: Remember: require means add and install package [OK]
Common Mistakes:
Confusing require with remove command
Thinking it updates PHP version
Assuming it creates new projects
2. Which of the following is the correct syntax to add the package monolog/monolog using Composer?
easy
A. composer install monolog/monolog
B. composer add monolog/monolog
C. composer require monolog/monolog
D. composer update monolog/monolog
Solution
Step 1: Recall Composer commands for adding packages
The correct command to add a package is composer require <package-name>.
Step 2: Check other commands
composer add is invalid, install installs all dependencies, and update updates existing packages.
Final Answer:
composer require monolog/monolog -> Option C
Quick Check:
Require = add package [OK]
Hint: Use 'composer require' to add packages, not 'add' or 'install' [OK]
Common Mistakes:
Using 'composer add' instead of 'require'
Confusing 'install' with adding packages
Trying to update instead of add
3. Given the command composer require guzzlehttp/guzzle:^7.0, what will happen?
medium
A. Composer installs any version of guzzlehttp/guzzle.
B. Composer installs version 7.0 or higher but less than 8.0 of guzzlehttp/guzzle.
C. Composer installs exactly version 7.0 of guzzlehttp/guzzle.
D. Composer installs the latest version ignoring the version constraint.
Solution
Step 1: Understand version constraints in Composer
The caret (^) means compatible versions starting from 7.0 up to but not including 8.0.
Step 2: Analyze the command effect
Composer will install the latest version that matches ^7.0, so any 7.x version but not 8.x or higher.
Final Answer:
Composer installs version 7.0 or higher but less than 8.0 of guzzlehttp/guzzle. -> Option B
Quick Check:
^7.0 means >=7.0 <8.0 [OK]
Hint: Caret (^) means compatible versions, not exact [OK]
Common Mistakes:
Thinking ^7.0 means exactly 7.0
Assuming it installs latest ignoring version
Confusing caret with tilde (~) version
4. You ran composer require symfony/console but got an error: "Could not find package symfony/console". What is the most likely cause?
medium
A. You misspelled the package name.
B. Composer is not installed on your system.
C. You need to run composer update first.
D. Your PHP version is too new.
Solution
Step 1: Analyze the error message
The error says the package could not be found, which usually means the package name is incorrect or misspelled.
Step 2: Check other options
If Composer was not installed, the command wouldn't run at all. Running update first is not required to add a new package. PHP version too new usually causes different errors.
Final Answer:
You misspelled the package name. -> Option A
Quick Check:
Package not found = wrong name [OK]
Hint: Check spelling of package name if 'not found' error appears [OK]
Common Mistakes:
Assuming Composer is missing
Running update unnecessarily
Blaming PHP version without checking
5. You want to add a package but only for development (not in production). Which command should you use?
hard
A. composer update --dev phpunit/phpunit
B. composer require phpunit/phpunit
C. composer install --dev phpunit/phpunit
D. composer require --dev phpunit/phpunit
Solution
Step 1: Understand dev dependencies in Composer
To add a package only for development, use the --dev flag with composer require.
Step 2: Check other commands
composer install and composer update do not add packages; they manage existing dependencies.
Final Answer:
composer require --dev phpunit/phpunit -> Option D
Quick Check:
Use --dev with require to add dev-only packages [OK]
Hint: Add dev packages with 'composer require --dev' [OK]
Common Mistakes:
Using require without --dev for dev packages
Trying to add packages with install or update
Confusing --dev flag usage
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.