Heim > Backend-Entwicklung > PHP-Tutorial > Upgrade von Sylius The TDD Way: Erforschung von PHPSPEC

Upgrade von Sylius The TDD Way: Erforschung von PHPSPEC

Christopher Nolan
Freigeben: 2025-02-10 11:13:13
Original
557 Leute haben es durchsucht

Dieser Artikel zeigt, wie die Kernfunktionalität von Sylius mithilfe der Test-gesteuerten Entwicklung (TDD) erweitert wird, um das Inventarmanagement zu verbessern. Wir werden der Produktliste farblich codierte Low-Standard-Indikatoren hinzufügen. Dies wird eine Backend -Implementierung sein. Visuelle Tests mit Behat werden in einem zukünftigen Artikel behandelt. Angenommen, Sie haben eine funktionierende Sylius -Instanz.

Upgrading Sylius the TDD Way: Exploring PhpSpec

Sylius bietet ein robustes Bestandsverwaltung, aber wir können es verbessern. Derzeit fehlen der Admin -Produktliste Aktieninformationen. Während die Variantendetails die Bestandsstufen und das Tracking zeigen, verbessert das Hinzufügen dieser zur Produktliste die Benutzerfreundlichkeit. Wir werden auch ein abgestuftes Warnsystem einführen (z. B. grün für reichlich Bestand, gelb für niedrige Bestände, rot für außer Lager).

Erweiterung ProductVariant und Product Modelle

Um Informationen zur Verfügbarkeit von Aktien hinzuzufügen, erweitern wir die Modelle von Sylius ProductVariant und Product.

1. Erstellen Sie ein Bundle

erstellen src/AppBundle/AppBundle.php:

<?php
namespace AppBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AppBundle extends Bundle
{
}
Nach dem Login kopieren

Registrieren Sie es in app/AppKernel.php:

<?php
// ...
public function registerBundles()
{
    $bundles = [
        // ...
        new AppBundle\AppBundle(),
    ];
}
Nach dem Login kopieren

update composer.json 's autoload Abschnitt:

{
  // ...
  "autoload": {
    "psr-4": {
      // ...
      "AppBundle\": "src/AppBundle"
    }
  }
  // ...
}
Nach dem Login kopieren

run composer dump-autoload.

2. SpecBDD -Tests

Wir werden PHPSPEC für die verhaltensgetriebene Entwicklung verwenden. In phpspec.yml.dist hinzufügen:

AppBundle: { namespace: AppBundle\Entity, psr4_prefix: AppBundle\Entity, spec_path: src/AppBundle/Entity, src_path: src/AppBundle/Entity }
Nach dem Login kopieren

Löschen Sie den Cache: php bin/console cache:clear.

Spezifikationen generieren mit:

php bin/phpspec desc AppBundle/Entity/ProductVariant
php bin/phpspec desc AppBundle/Entity/Product
Nach dem Login kopieren

Schnittstellen erstellen: ProductInterface und ProductVariantInterface ihre Sylius -Gegenstücke erweitern. Erstellen Sie dann Product.php und ProductVariant.php die Sylius -Klassen und implementieren Sie die neuen Schnittstellen.

Fügen Sie eine $reorderLevel -Meigenschaft zu ProductVariant.php:

hinzu
<?php
// src/AppBundle/Entity/ProductVariant.php
// ...
class ProductVariant extends BaseProductVariant implements ProductVariantInterface
{
    const REORDER_LEVEL = 5;
    private $reorderLevel;
    // ...
}
Nach dem Login kopieren

3. Übergeordnete Sylius -Klassen

Sylius konfigurieren, um unsere erweiterten Klassen in app/config/config.yml:

zu verwenden
sylius_product:
    resources:
        product:
            classes:
                model: AppBundle\Entity\Product
        product_variant:
            classes:
                model: AppBundle\Entity\ProductVariant
Nach dem Login kopieren

4. Datenbankaktualisierung

Migrationen erzeugen und ausführen:

php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate
Nach dem Login kopieren

(oder bei Bedarf php bin/console doctrine:schema:update --force verwenden). Erstellen Sie ProductVariant.orm.yml, um die Spalte reorderLevel in der Datenbank zu definieren. Erstellen Sie ein leeres Product.orm.yml, da wir die Tabelle sylius_product nicht ändern.

5. Weitere Spekbdd -Tests

PHPSPEC -Tests für ProductVariant und Product schreiben, wobei Methoden wie getReorderLevel(), setReorderLevel(), isReorderable(), getOnHand() und isTracked() nach Bedarf implementiert werden, um sicherzustellen, dass alle Tests bestehen. Die Tests sollten verschiedene Szenarien abdecken, einschließlich unterschiedlicher Aktienniveaus und Nachbestellniveaus. Denken Sie daran, die Schnittstellen mit den erforderlichen Methoden zu aktualisieren.

6. Schlussfolgerung

Dieser TDD -Ansatz sorgt für einen robusten Code. Der nächste Artikel behandelt Behat -Tests zur visuellen Überprüfung.

Upgrading Sylius the TDD Way: Exploring PhpSpec

Upgrading Sylius the TDD Way: Exploring PhpSpec

Upgrading Sylius the TDD Way: Exploring PhpSpec

(FAQS-Abschnitt für Kürze ausgelassen, da er weitgehend nicht mit dem Kerncode-Beispiel zu tun hat und die Antwortlänge erheblich erhöht. Die bereitgestellten FAQs sind gut geschrieben und können leicht eingeschlossen werden.)

Das obige ist der detaillierte Inhalt vonUpgrade von Sylius The TDD Way: Erforschung von PHPSPEC. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage