Heim >Backend-Entwicklung >PHP-Tutorial >Wie erstelle ich eine PHP-Bibliothek und aktiviere die Abhängigkeitsinjektion?

Wie erstelle ich eine PHP-Bibliothek und aktiviere die Abhängigkeitsinjektion?

WBOY
WBOYOriginal
2024-04-26 13:15:01472Durchsuche

So erstellen Sie eine PHP-Funktionsbibliothek, die Abhängigkeitsinjektion (DI) unterstützt: Erstellen Sie ein Composer-Paket als Funktionsbibliothek. Implementieren Sie Funktionen der Funktionsbibliothek, z. B. die Implementierung einer Begrüßungsfunktion in einer Datei. Installieren Sie den PHPDI-Container und erstellen Sie eine Containerkonfiguration, indem Sie die Funktionsbibliotheksklasse als Factory-Definition zum Container hinzufügen. Verwenden Sie Bibliotheken im Code und fügen Sie Abhängigkeiten ein, z. B. indem Sie Container verwenden, um Instanzen von Bibliotheksklassen abzurufen. In praktischen Anwendungen, wie dem Speichern von Benutzerdaten in der Datenbank, wird die Flexibilität durch das Einfügen von Datenbankverbindungen verbessert.

如何创建 PHP 函数库并使其支持依赖项注入?

So erstellen Sie eine PHP-Funktionsbibliothek und sorgen dafür, dass sie die Abhängigkeitsinjektion unterstützt

Einführung

Funktionsbibliotheken sind leistungsstarke Tools für die Wiederverwendung von Code in PHP. Durch die Verwendung der Abhängigkeitsinjektion (DI) können Sie flexiblere, testbare Bibliotheken schreiben. In diesem Artikel erfahren Sie, wie Sie eine PHP-Funktionsbibliothek erstellen und verwenden, die DI unterstützt.

Funktionsbibliothek erstellen

Zuerst müssen Sie ein Composer-Paket als Ihre Funktionsbibliothek erstellen. Erstellen Sie mit dem Composer-Paketmanager ein neues Paket, indem Sie den folgenden Befehl ausführen:

composer init

Geben Sie die Paketinformationen ein und führen Sie dann den folgenden Befehl aus, um den Composer-Autoloader zu installieren:

composer install

Erstellen Sie nun ein neues Verzeichnis in Ihrem Projekt, das Sie verwenden möchten als Funktionsbibliothekscode. Zum Beispiel:

php
└── vendor
└── my-library
    └── src
        └── FunctionLibrary.php

Implementieren Sie die Funktionsbibliothek

In FunctionLibrary.php implementieren Sie die Funktion der Funktionsbibliothek. Zum Beispiel: FunctionLibrary.php 中,实现函数库功能。例如:

namespace MyLibrary;

class FunctionLibrary
{
    public function greet(string $name): string
    {
        return "Hello, $name!";
    }
}

配置依赖项注入

为了支持 DI,您需要使用一个容器来解决依赖项。本文将使用 PhpDI 容器。

在您的函数库包中安装 PhpDI:

composer require php-di/phpdi

接下来,在 src/config.php

$containerBuilder = new \DI\ContainerBuilder();
$containerBuilder->addDefinitions([
    'MyLibrary\FunctionLibrary' => \DI\factory(function () {
        return new FunctionLibrary();
    })
]);

$container = $containerBuilder->build();

Konfigurieren der Abhängigkeitsinjektion

Um DI zu unterstützen, müssen Sie einen Container zum Auflösen von Abhängigkeiten verwenden. In diesem Artikel wird der PHPDI-Container verwendet.

Installieren Sie PHPDI in Ihrem Bibliothekspaket:

use MyLibrary\FunctionLibrary;
use DI\Container;

$container = new Container();

$functionLibrary = $container->get(FunctionLibrary::class);

echo $functionLibrary->greet('John'); // 输出:Hello, John!
Als nächstes erstellen Sie eine Containerkonfiguration in src/config.php:
namespace MyLibrary;

class UserRepository
{
    private $connection;

    public function __construct(\PDO $connection)
    {
        $this->connection = $connection;
    }

    public function persist(User $user): void
    {
        // 保存用户到数据库
    }
}

Verwenden der Bibliothek

Jetzt können Sie Ihre Bibliothek verwenden in Ihren Code ein und fügen Sie Abhängigkeiten ein: 🎜
$containerBuilder->addDefinitions([
    \PDO::class => \DI\factory(function () {
        return new \PDO('mysql:host=localhost;dbname=my_database', 'username', 'password');
    }),
    'MyLibrary\UserRepository' => \DI\factory(function (Container $container) {
        return new UserRepository($container->get(\PDO::class));
    })
]);
🎜🎜Ein praktisches Beispiel🎜🎜🎜Angenommen, Sie haben eine Bibliothek, die Benutzerdaten in einer Datenbank speichert. Sie können Ihre Bibliothek flexibler und testbarer machen, indem Sie die Datenbankverbindung in die Abhängigkeitsinjektion einfügen: 🎜rrreee🎜 Fügen Sie dann die folgende Definition in der Containerkonfiguration hinzu: 🎜rrreee

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine PHP-Bibliothek und aktiviere die Abhängigkeitsinjektion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn