sanchothefat/wp-less — pull request #33 by franz-josef-kaiser (2013-01-24 08:27:38+00:00)
Title: Refactored

As per [Andreys request for an enhancement](https://github.com/sanchothefat/wp-less/issues/32), I re-factored the plugin structure. You can find the new structure for testing (which needs to get done) in the `refactored` branch. I also added a new tag for this version named `v0.3.0` so we can go ahead with sub-versions until a final release/merge into `master`.

I messed up the commit message as I had Bash and GUI open at the same time (hit "commit" by accident in GUI), so here's what this update does:

* fixed phpDocBlocks - basically did a constant styling for all blocks and removed the in-line tabs, so GitHub does align those properly. Added missing attributes and removed the empty line between `@param` and `@return` as some IDEs don't like this.
* Added a bootstrap/loader file & class that hooks into `plugins_loaded` on priority `5`. This way we load the classes at the earliest hooks, leaving other plugins still a chance. The hooking of actions and filters should anyway be done from inside `__construct()`. The bootstrap class has a property/var that holds the file- and classnames as associative array. Before requiring the files a check for the existance of the class happens to prevent conflicts in case the plugin is added as submodule elsewhere. Hooking of the `init()` methods of other classes like `wp_less´ still happens in their files to decouple things properly.
* Splitted into multiple files with multiple purpose
* Added an `wp_less_updates` class. This class currently only holds the deactivation method from M. Jaquith, but can later on be extending an automatic GitHub updater class as well.
* Added a public API file that loads after `wp_less` was required. That slims down the `wp-less.class.php` file as well as making the API more visible.

Basically that's it. Please don't forget to test this, as I don't have enough time at the moment, as I have to solve a conflict with my local dev stack. _There may be typos or logical mistakes in loading order._