As developers, we often have code that we use on multiple projects. It could be as simple as string manipulation, but we would be lost without the code we are familiar with.
This is where packages come in useful. They give a great way of organizing, re-using, and sharing your code. Packages can contain all sorts of code, such as models, configurations, and even third-party libraries.
Due to the class structure of FuelPHP and other packages, it's possible to extend other packages and to the FuelPHP core. This is all possible without changing the core files—making upgrades easier and more straightforward.
Although there is a lot that packages can do, there are some things that packages can't do. For example, they can't map to a URL; this is the role of the application or project code. If there is a functionality that you'll re-use in multiple projects and which also requires URL access, it is recommended to use modules. These will be introduced in the next chapter.
Running through...