Extending Saaze
Under the hood, Saaze uses what's known as a "container" to manage all of the class dependencies of the application. This is a common practice in modern PHP development and allows us to do some nifty things. Most importantly, it allows us to bind interfaces to implementations which makes it very easy to extend Saaze to add your own implementations if you need to.
To swap out one of the default implementations, create a definitions.php
file in the root of your Saaze project that returns an array. This file will be auto-loaded by Saaze if it exists. Add your custom implementation class to the array, using the relevant interface as the key.
Custom Tags Example
As an example, let's say you want to add a custom content parser that converts [alert][/alert]
tags in your markdown to HTML <div class="alert"></div>
tags. First, create a new PHP class at src/CustomContentParser.php
that extends the default Saaze\Content\MarkdownContentParser
class:
Note: The MarkdownContentParser
class implements the Saaze\Interfaces\ContentParserInterface
interface.
Next, create the definitions.php
file in the root of your Saaze project. Then require
your custom class and return it in the array:
Finally, update the toHtml()
method of your CustomContentParser
class to process the content: