In this chapter, you should have learned about the things we can do with a package. We started by moving some of our previous add-ons into a package, making it easier to handle and install. Creating a package is often about the installation process, which is one reason why you have to wrap add-ons in a package if you want to publish them on the concrete5 marketplace.
We also had a quick look at events, a nice but advanced feature that you can use to execute custom code upon certain events happening in the concrete5 core. An example: Being able to hook into actions happening on your user database allows you to synchronize accounts with another system. Think about third-party forum software you want to use—if you already have a concrete5 website, you could create an interface to keep both user databases up to date without needing your website's users to register twice.
Next, we created a maintenance job, which checks for broken links on your website. This was just one example. Maintenance...