Event-driven process
Events in CakePHP can also be used to define complex workflows in your application. In this recipe, we'll process a package, which was just created, to generate a PDF order and send the resulting file by e-mail (attachment) for further manual processing.
We'll chain the execution of two listeners for a specific event. The partial results of each listener will be stacked in our event, thus allowing listeners to use partial results from listeners that were executed earlier in the event manager queue.
Note that as discussed earlier, sending e-mails and generating PDF files are slow operations, so you should consider moving this logic to a job queue, instead of running them while the user waits.
Getting ready
For this recipe, we'll need to set up the CakePDF plugin and the related templates to generate a PDF file based on a Package
model. We'll use git modules for the setup, but if you're not using git, you can simply download the ZIP file using the following command and place...