🧪 Composer Practice Exercises (PHP)
🟢 Level 1: Basics (Beginner)
✅ Exercise 1: Install Composer
- Install Composer on your system
- Run:
composer -v
👉 Output should show version
✅ Exercise 2: Create First Project
- Create a new folder
composer-practice - Run:
composer init
- Fill details (name, description, etc.)
👉 Check: composer.json created
✅ Exercise 3: Install First Package
Install a simple package:
composer require monolog/monolog
👉 Task:
- Open
composer.json - Verify package added
- Check
vendor/folder
🟡 Level 2: Usage (Intermediate)
✅ Exercise 4: Use Installed Package
👉 Create index.php
<?php
require 'vendor/autoload.php';use Monolog\Logger;
use Monolog\Handler\StreamHandler;$log = new Logger('app');
$log->pushHandler(new StreamHandler('app.log', Logger::WARNING));$log->warning('This is a warning!');
$log->error('This is an error!');
👉 Task:
- Run file
- Check
app.logcreated
✅ Exercise 5: Install PHPMailer
composer require phpmailer/phpmailer
👉 Task:
- Create a PHP script to send email
- (Use dummy SMTP if needed)
✅ Exercise 6: Remove Package
composer remove monolog/monolog
👉 Task:
- Check:
composer.jsonvendor/
🟠 Level 3: Autoloading
✅ Exercise 7: Manual vs Autoload
👉 Without Composer:
- Create 3 PHP class files
- Include using
require
👉 With Composer:
- Use:
require 'vendor/autoload.php';
👉 Task:
- Compare code length and readability
✅ Exercise 8: PSR-4 Autoload
👉 Step 1: Update composer.json
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
👉 Step 2:
composer dump-autoload
👉 Step 3: Create class
📁 src/User.php
<?php
namespace App;class User {
public function sayHello() {
return "Hello User!";
}
}
👉 Step 4: Use it
<?php
require 'vendor/autoload.php';use App\User;$user = new User();
echo $user->sayHello();
🔴 Level 4: Real-World Practice
✅ Exercise 9: Build Logger System
👉 Task:
- Use Monolog
- Create logs for:
- Login success
- Login failure
- Errors
✅ Exercise 10: API Integration
👉 Task:
- Install:
composer require guzzlehttp/guzzle
- Fetch data from:
https://jsonplaceholder.typicode.com/posts
👉 Display:
- First 5 posts
✅ Exercise 11: Mini Project (Important)
👉 Build: Simple Contact Form System
Requirements:
- Use PHPMailer (via Composer)
- Form fields:
- Name
- Message
- Send email on submit
🧠 Bonus Challenges (Advanced)
🚀 Challenge 1:
Create your own PHP package and install it using Composer locally
🚀 Challenge 2:
- Add version constraints in
composer.json - Try:
"phpmailer/phpmailer": "^6.0"
👉 Test:
- Run
composer update
🚀 Challenge 3:
- Delete
vendor/ - Run:
composer install
👉 Understand:
- Difference between
installvsupdate
🎯 Tip (For You)
- 🧪 1 task per day






