As in my last post, I explained how to install and use Composer in PHP. Today, we will learn how to install Composer packages in a PHP project. The packages we need to install are collections
and pestphp/pest
.
Searching for Packages
Open your browser and navigate to ( https://packagist.org/ )
Search for
collections
. Scroll down to find theilluminate/collections
package. We will install this package.
Installing Package
Open your terminal and run the composer
command to check if Composer is installed. If it is, run composer search collections
to search for the collections
package a list of collection packages is available. Then, run composer require illuminate/collections
to install the package.
Using Package
To use package we have to create a new file playground.php
in the public directory and add the following code to filter the numbers less then or equal to 5:
<?php
use Illuminate\Support\Collection;
require __DIR__.'/../vendor/autoload.php'; $numbers = new Collection([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
$lessThanOrEqualTo5 = $numbers->filter(fn($number) => $number <= 5); var_dump($lessThanOrEqualTo5);
Run php public/playground.php
in the terminal to see the output of filtered numbers.
Installing Pest Package
To install the pestphp/pest
package, run composer search test
a list of test packages show on screen and select one of the test packages. Then, run composer require pestphp/pest --dev
to install the package as a development dependency.
Configuring Pest Package
For configuration of pest package run php vendor/bin/pest --init
command. This will update the composer.json
file as:
{
"name": "admin/demo",
"authors": [
{
"name": "Ghulam Mujtaba",
"email": "[email protected]"
}
],
"require": {
"illuminate/collections": "^11.16"
},
"autoload": {
"psr-4": { "Core\\": "Core/" ,
"Http\\": "Http/" }
},
"require-dev": {
"pestphp/pest": "^2.34"
},
"config": {
"allow-plugins": {
"pestphp/pest-plugin": true
}
}
}
and create a new directory tests
with a file ExampleTest.php
.
<?php test('example', function(){ expect(true)->toBeTrue();
});
Running Tests
We have to run php vendor/bin/pest
command in the terminal to see the output of the test file. If you replace true
with false
, you will see an error message.
Binding Test
Let’s take a local binding test for container as something is resolved from this. So, Rename the file ContainerTest.php
and replace the code with:
<?php
use Core\Container;
test('it can resolve something out of the container', function () { $container = new Container(); $container->bind('foo', fn()=> 'foo'); $result = $container->resolve('foo'); expect($result)->toEqual('foo');
});
To test run php vendor/bin/pest
command again in terminal/prompt it shows output as there is no error in file
I hope that you have clearly understood it.