Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1678,6 +1678,7 @@ landingpage
lang
lavinmq
lazysizes
learnings
libxml
lifecycle
lifecycles
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,7 @@ We strongly recommend following Cypress's own best practices as well.

### Video

When it comes to dividing test types, selecting and prioritizing test cases, and thus designing tests, things get a bit more complicated. We have generally aligned our test strategy with the test pyramid, although not 100%. The pyramid states that end-to-end tests should be written in a few but well-chosen test cases because end-to-end tests are slow and expensive.

At [Shopware Community Day](https://scd.shopware.com/en-US/) 2020, we gave a talk on how we approach automated testing in Shopware, how far we have come on this journey, and what we have gained so far:

<YoutubeRef video="sxvQoWF4KS0" title="A matter of trust – test - #SCD20 (ENG) - YouTube" target="_blank" />

To sum it up briefly, the end-to-end tests are slow and thus expensive to maintain. That is why we need a way to prioritize our test cases.
When it comes to dividing test types, selecting and prioritizing test cases, and thus designing tests, things get a bit more complicated. We have generally aligned our test strategy with the test pyramid, although not 100%. The pyramid states that end-to-end tests should be written in a few but well-chosen test cases because end-to-end tests are slow and expensive. That is why we need a way to prioritize our test cases.

### When should I write an end-to-end test

Expand Down
8 changes: 7 additions & 1 deletion guides/plugins/plugins/bundle.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,4 +214,10 @@ Also check out these useful videos:

* [Bundle Methods in a plugin](https://www.youtube.com/watch?v=cUXcDwQwmPk)
* [Symfony services in Shopware 6](https://www.youtube.com/watch?v=l5QJ8EtilaY)
* The free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma)

For related Academy learnings on plugin lifecycle and services, see

* **[Plugin Lifecycle Management](https://hub.shopware.com/learn/unit/plugin-lifecycle-management)**
* **[Dependency Injection and Services](https://hub.shopware.com/learn/unit/dependency-injection-and-services)**

from the free **Shopware Backend Development Intermediate** learning path.
9 changes: 6 additions & 3 deletions guides/plugins/plugins/database/database-migrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ Migrations are PHP classes used to manage incremental database schema changes. S
To add your own database migrations for your plugin, you first need a plugin as a base. Therefore, you can refer to the [Plugin Base Guide](../plugin-base-guide.md).

::: info
Refer to this video on **[Database migrations](https://www.youtube.com/watch?v=__pWwaK6lxw)**. Also, available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For more free learning, refer to our learning path - **Shopware Backend Development Intermediate**

- **[Plugin Lifecycle Management](https://hub.shopware.com/learn/unit/plugin-lifecycle-management)** for plugin lifecycle and migration handling,
- **[Creating Entities](https://hub.shopware.com/learn/unit/creating-entities)** for migrations generated from custom entity definitions.
:::

## File structure
Expand Down Expand Up @@ -87,8 +90,8 @@ class Migration1611740369ExampleDescription extends MigrationStep

As you can see, your migration contains two methods:

* `getCreationTimestamp()`
* `update()`
- `getCreationTimestamp()`
- `update()`

There is no need to change `getCreationTimestamp()`, it returns the timestamp that's also part of the file name. Implement **all** schema and data changes for the plugin in `update()`. That method is what Shopware runs automatically when the plugin is installed or updated.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This guide is built upon the [Plugin base guide](../../plugin-base-guide), but a
In order to create data translations you need an existing entity, as this guide is based on the [Adding custom complex data](add-custom-complex-data) guide, you should have a look at it first.

::: info
Refer to this video on **[Translating your entity](https://www.youtube.com/watch?v=FfqxfQl3I4w)** that deals with data translations. Also available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For Academy learning content on custom entities and translations, see our free learning path **["Shopware 6 Backend Development Intermediate"](https://hub.shopware.com/learn/path/shopware-backend-development-intermediate)**.
:::

## Creating the migration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ This guide is built upon the [Plugin base guide](../../plugin-base-guide.md), so
You also might want to have a look at the concept behind the [Data abstraction layer](../../../../../concepts/framework/data-abstraction-layer.md) first to get a better grasp of how it works.

::: info
Refer to this video on **[Using repositories](https://www.youtube.com/watch?v=b3wOs_OWvP0)** that covers the basics of repositories. Also available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For Academy learning content on events, subscribers, and dependency injection, refer to this free course **[Data Abstraction Layer](https://hub.shopware.com/learn/course/data-abstraction-layer)** from **Shopware Backend Development Intermediate** learning path.
:::

## Writing data
Expand Down
2 changes: 1 addition & 1 deletion guides/plugins/plugins/framework/event/add-custom-event.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ In this guide, you will learn how to create your own event. You can read more ab
To create your own event for your plugin, you first need a plugin as base. Therefore, you can refer to the [Plugin Base Guide](../../plugin-base-guide).

::: info
Refer to this video on **[Event dispatching and handling](https://www.youtube.com/watch?v=JBpa5nBoC78)** which is a live coding example on custom events. Also available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For Academy learning content on events, subscribers, and dependency injection, refer to this free course **[Events and DI](https://hub.shopware.com/learn/course/events-and-di)** from **Shopware Backend Development Intermediate** learning path.
:::

## Event interfaces and classes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ In order to build your own subscriber for your plugin, of course, you first need
To create your own plugin, you can refer to the [Plugin Base Guide](../../plugin-base-guide.md).

::: info
Refer to this video on **[Live coding example with product.loaded event](https://www.youtube.com/watch?v=cJDaiuyjKJk)**.
Also, available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For Academy learning content on Shopware events, subscribers, and dependency injection, refer to our free course **[Events and DI](https://hub.shopware.com/learn/course/events-and-di)** from **Shopware Backend Development Intermediate** learning path.
:::

## Creating your own subscriber
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ A running plugin. Review the [Plugin Base Guide](../plugin-base-guide.md) for in
## Create your plugin configuration

::: info
This video is part of the free Shopware Academy online training ["Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For Academy learning content on defining plugin configuration with `config.xml`, refer to this free course **[Plugin Configuration](https://hub.shopware.com/learn/unit/plugin-configuration)** from **Shopware Backend Development Essentials** learning path.
:::

Create `src/Resources/config/config.xml` inside your plugin. The content of the `config.xml` will be dynamically rendered in the Administration. Start with a simple text field first; the available field types and advanced options are listed below.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Quite often one might want to run any type of code on a regular basis, e.g. to c
This guide builds on the [Plugin Base Guide](../plugin-base-guide.md). Familiarity with `services.php` is helpful — see [Dependency Injection](../services/dependency-injection.md) and [Creating a service](../services/add-custom-service.md).

::: info
Refer to this video on **[Adding scheduled tasks](https://www.youtube.com/watch?v=88S9P3x6wYE)**. Also, available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
Refer to this video on **[Adding scheduled tasks](https://www.youtube.com/watch?v=88S9P3x6wYE)**. Also, available on our free online training ["Shopware 6 Backend Development"](https://hub.shopware.com/learn/path/shopware-backend-development-intermediate).
:::
Comment thread
sushmangupta marked this conversation as resolved.
Resolved

## Registering a scheduled task in the DI container
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ public function uninstall(UninstallContext $context): void
```

::: info
Refer to this video on **[Uninstalling a plugin](https://www.youtube.com/watch?v=v9OXrUJzC1I)** when dealing with plugin uninstall routines. Also available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For Academy learning content on plugin lifecycle methods, updates, migrations, and uninstall cleanup, refer to this free course **[Plugin Lifecycle Management](https://hub.shopware.com/learn/unit/plugin-lifecycle-management)** from **Shopware Backend Development Intermediate** learning path.
:::

## Next steps
Expand Down
2 changes: 1 addition & 1 deletion guides/plugins/plugins/services/adjusting-service.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ This guide explains how to adjust a service using decoration. For more details,
This guide builds on the [Plugin Base Guide](../plugin-base-guide.md).

::: info
Refer to this video on **[Decorating services](https://www.youtube.com/watch?v=Rgf4c9rd1kw)** explaining service decorations with an easy example. Also available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For Academy learning content on dependency injection, services, and service decoration, refer to this free course **[Dependency Injection and Services](https://hub.shopware.com/learn/unit/dependency-injection-and-services)** from **Shopware Backend Development Intermediate** learning path.
:::

## Decorating the service
Expand Down
3 changes: 1 addition & 2 deletions guides/plugins/plugins/services/dependency-injection.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ This guide explains how to inject services into other services. For more details
This guide builds on the [Plugin Base Guide](../plugin-base-guide.md) and requires a working service — see [Add Custom Service](add-custom-service.md).

::: info
Refer to this video on **[Injecting services into a command](https://www.youtube.com/watch?v=Z4kyx9J1xaQ)** explaining DI based on the example of a custom CLI command.
It is also available on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For Academy learning content on dependency injection, service registration, constructor injection, and service decoration, refer to this free course **[Dependency Injection and Services](https://hub.shopware.com/learn/unit/dependency-injection-and-services)** from **Shopware Backend Development Intermediate** learning path.
:::

## Injecting another service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ In order to add your own controller for your plugin, you first need a plugin as
Therefore, you can refer to the [Plugin Base Guide](../../plugin-base-guide.md).

::: info
Refer to this video on **[Common Storefront controller tasks](https://www.youtube.com/watch?v=5eXXNh4cQG0)** explaining the basics about Storefront controllers.
Available also on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For current Academy learning content on connecting a Storefront controller with routes, service registration, and Twig template output, refer to this free course **[Storefront Controller: Routes, Services, and Template](https://hub.shopware.com/learn/unit/storefront-controller-routes-services-and-template)** from **Shopware Backend Development Essentials** learning path.
:::

## Adding custom Storefront controller
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,11 @@ It combines and builds upon the guides about [adding custom JavaScript](../javas
For this guide we will use a very simple controller that returns a timestamp wrapped in the JSON format.

::: info
Refer to this video on **[Creating a JSON controller](https://www.youtube.com/watch?v=VzREUDdpZ3E)** dealing with the creation of a controller that returns JSON data.
Available also on our free online training ["Shopware 6 Backend Development"](https://academy.shopware.com/courses/shopware-6-backend-development-with-jisse-reitsma).
For related free Academy courses, see:

- **[Storefront Controller: Routes, Services, and Template](https://hub.shopware.com/learn/unit/storefront-controller-routes-services-and-template)** from the **Shopware Backend Development Essentials** learning path.
- **[Custom JavaScript](https://hub.shopware.com/learn/unit/custom-js)** from the **Shopware Frontend Development Essentials** learning path.
- **[Storefront Core Features](https://hub.shopware.com/learn/unit/storefront-core-features)** from the **Shopware Frontend Development Intermediate** learning path.
:::

As mentioned before this guide builds up upon the [adding a custom controller](../controllers/add-custom-controller.md) guide.
Expand Down
4 changes: 3 additions & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ Whereas **Concepts** convey the ideas, inner workings and architectural consider

These two sections are complemented by the **References**, which contain structured code references, lists of flags, commands, endpoints which are useful for development.

Visit the [academy](https://academy.shopware.com/collections?category=developer-sw6) for video content. If you have any questions left, you can always ask them on [StackOverflow](https://stackoverflow.com/questions/tagged/shopware6?tab=Newest) or join our awesome community on [Discord](https://discord.com/channels/1308047705309708348/1309107911175176217).
Visit the [Academy in the Community Hub](https://hub.shopware.com/learn) for guided learning content.

If you have any questions left, you can always ask them on [StackOverflow](https://stackoverflow.com/questions/tagged/shopware6?tab=Newest) or join our awesome community on [Discord](https://discord.com/channels/1308047705309708348/1309107911175176217).

To begin developing, [start here with our installation guide](guides/installation/index.md).

Expand Down
Loading