Composer ni dependency manager ya PHP inayoruhusu:

Install external packages automatically

Manage package versions kwa usahihi

Autoload classes bila kuandika require za kila file

Simplify project maintenance

Goal: Enhance PHP web projects with ready-made libraries efficiently.

⚙️ 2. Installing Composer

Download Composer: https://getcomposer.org/download/

Verify installation:

composer --version


Expected output: Composer version x.x.x ...

🧩 3. Creating composer.json

Navigate to your project root and run:

composer init


Follow prompts: project name, description, author, etc.

Generates composer.json

Example composer.json:

{
"name": "faustine/web-project",
"description": "PHP web project using Composer packages",
"require": {
"monolog/monolog": "^3.0",
"guzzlehttp/guzzle": "^7.8"
},
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}

🧩 4. Installing Packages
composer install


Creates vendor/ folder

Generates vendor/autoload.php for autoloading

To update packages:

composer update

🧩 5. Using Packages in Your PHP Project
a) Logging with Monolog
<?php
require_once __DIR__ . '/vendor/autoload.php';

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// Create a log channel
$log = new Logger('web_project');
$log->pushHandler(new StreamHandler(__DIR__.'/app.log', Logger::DEBUG));

// Add records
$log->info('Website loaded successfully');
$log->error('An error occurred');

b) HTTP Requests with Guzzle
<?php
require_once __DIR__ . '/vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('https://jsonplaceholder.typicode.com/posts/1&apos;);
echo $response->getBody();


💡 Maelezo: Composer handles autoloading automatically, no manual require needed.

🔑 6. Best Practices

Commit composer.json and composer.lock, not vendor/.

Use PSR-4 autoloading – keep project classes organized

Choose stable versions of packages

Avoid manually including libraries – let Composer handle it

Document package usage in project README

✅ 7. Hitimisho

Composer packages simplify development, maintenance, and scalability

Allows integration of ready-made libraries for logging, HTTP requests, validation, and more

Essential for modern PHP web projects

🔗 Tembelea:

👉 https://www.faulink.com/

Kwa mafunzo zaidi ya PHP, Composer, na packages za web development.