Comment installer et utiliser les packages Composer dans un projet PHP ?

PHPz
Libérer: 2024-07-19 18:36:27
original
1031 Les gens l'ont consulté

How to Install and Use Composer Packages in PHP Project?

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 the illuminate/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);
Copier après la connexion

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": "mujtabaofficial247@gmail.com"
        }
    ],
    "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
        }
    }
}
Copier après la connexion

and create a new directory tests with a file ExampleTest.php.

<?php

test('example', function(){

    expect(true)->toBeTrue();
});
Copier après la connexion

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');
});
Copier après la connexion

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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!