In this section you will learn about the internals of the workshop application which will enable you to build robust and advanced workshops.
You can use this section as a useful reference to refer back to during the development of your workshop.
For a walk through approach detailing the initial setup of a workshop and the development of your first exercise, check out the Workshop Tutorial.
The workshop utilises a container to build and publish services. Learn how to register new services and replace existing ones.
Learn about the services exposed by the container, many of them utilities you can use in your exercises, checks and other services.
Exercises can be of either
CGI type. Learn about the differences here and which one is right for your exercise.
Exercise solutions can consist of one or many files, which could consist of an entire application. They can also contain Composer dependencies in order to model real-world scenarios.
Learn about Results and Result Renderers.
Learn what Exercise Checks are and how to use them in your exercise.
Learn about the available Exercise Checks in the workshop framework and how to use them.
Learn how to create your own Simple Check.
Create a custom result to use in your check.
Create a renderer for your result.
Learn about all the events available for listening to in the workshop framework and how to listen to them.
Learn how to utilise events to build a Listener Check by following a tutorial to build a Couch DB check.
Add simple checking logic directly in your exercise.
Listen to events directly in your exercise instead of building a custom check.
Learn how to modify the student's solution on the fly, injecting variables, wrapping code in
try/catch blocks, registering error handlers and so on.