About the Code

Filter is written in the Yii Framework for PHP. Yii is essentially an MVC framework like Ruby on Rails, but with all the simplicity and maturity of PHP. It’s fast, efficient and relatively straightforward. It also includes scaffolding/code generation, active record, transaction support, I18n localization, caching support et al. The documentation, community support and available plugins are also quite good. Check out Yii’s Playground demo.

If you want to install Filtered, read the Installation Guide. Or, read about how Filtered’s algorithms manage your email.

If you’d like to add features or extend Filtered for your own purposes, I suggest that you fork the code on Github. If I issue any updates or new features, you can merge the changes into your work at any time.

If you’d like to contribute to Filtered by adding features and asking us to include them in the main codebase, you can submit a pull request.

Git is an extremely powerful Internet-based, collaborative source code management tool – but it can be a bit confusing to get started with. Check out their help page for guides to common usages.



The Codebase

Browse the codebase and its folder layout at Github. Yii provides an MVC framework. So, in the codebase, you’ll see controllers, models and views for each function.

The DaemonController is run by cron as background tasks and calls the necessary model features on a regular basis.

An obvious future enhancement for Filtered is to create Yii Console Daemons that support IMAP Idle. This will greatly enhance performance and scalability of the platform.

The Remote model contains most all of the IMAP code. If you want to see Filter’s inner workings or see how to use the PHP IMAP library, study the Remote model.

The ImapLog table in your database tracks the duration of each background process on your server. This may help you get a sense for how your system is performing and whether you want to adjust some of the settings. If you need to adjust your PHP session lifetime in your php.ini file gc_maxlifetime.

If you have any questions, post a question in the community support forum.

[button link=”/filtered-open-source-imap-mail-filtering-software-for-php/related-links/” size=”medium” variation=”red” textColor=”#ffffff” align=”right”]Continue…[/button]