SMART is a simple PHP script to help developers to modularise their code and so, keep it clean, well structured and scalable. It doesn't provide many reusable PHP classes, as it is the case in other frameworks. It's the job of the module designer to include the required packages.
The module mechanism is based on event handlers. The modules can talk to each other through events. This event concept is even used in templates. SMART has a build in templates support, which was never planned but, which inevitable rose from the internal logic of SMART. From inside templates you can control their behaviour through such events. So the template language is PHP. But of course if your are not convenient with the build in template engine you can use your prefered engine. This count also for a database layer. SMART isnt fixed to a specific DB layer. This is the choice of the module designer to include the required layer.