Mouf 2: Dependency injection... on steroids
Mouf is a PHP dependency injection framework with a nice web-based user interface.
Dependency injection solves the spaghetti code problem by externalizing all the instances declaration
into a configuration file. But soon, this file becomes a spaghetti configuration file.
Mouf solves that problem by providing a nice web-based UI to edit your file.
By solving that problem, Mouf opens a whole new world of possibities where most of your application is declared using a user interface instead of written in pure PHP code.
Want to learn more about dependency injection? Check out the dependency injection guide.
Want to see Mouf basic principles in action? Check the introduction to graphical dependency injection video.
Mouf is at the same time a graphical dependency injection framework (the core of Mouf), and a full featured web-framework with hundreds of packages available.
- If you are interested in Mouf's core dependency injection framework, stay here! You are at the right place.
- If you are interested in the global Mouf ecosystem, the MVC library, the database layer, etc..., you might want to start by having a look at the main packages chart or at the Getting things done with Mouf project. This is a kind of "distribution" of the most common libraries used with Mouf.
- You can also be interested in extending your existing project with Mouf. Mouf integrates easily with Wordpress, Drupal, Symfony 2, Silex, Doctrine or any project compatible with the container-interop project.
Each class can be injected using the Mouf dependency injection features. Because it is graphical and easy to use, you can push dependency injection to new limits. And if you want a nice graphical representation, you can add annotations to your code to add custom logos for your classes, etc...
To learn more about using dependency injection, please read the Dependency Injection guide.
Mouf provides a user interface to help you manage your composer dependencies.
Using an extension to the
composer.json file format, you can extend the Mouf user interface to add features to help your developer.
- You are developing a cache package? Add a "Purge" button in Mouf UI to let your developers purge the cache
- You are developing a database connection? Add a screen to create a new database connection, etc...
$ COMPOSER=composer-mouf.json composer <command> ... # e.g. COMPOSER=composer-mouf.json composer install