Architecture Guidelines
This is not the holy bible! It is more a set of architecture guidelines for your orientation. So when difficult design decisions arise, please rethink under the following aspects:
1. Do as much as possible with Laravel!
Do as many things as possible by laravel, especially topics like: logic and view. Don't put logical stuff in SQL.
2. Keep it modular!
We use laravel modules to enable modularity usage. A new module is required, when a new (and not already used topic) is addressed! More modules are often better.
See Write your own Application for more information.
3. Database independents matter!
One of our goals is to achieve database independents. For this purpose, we use the default laravel Eloquent Concept. See: https://laravel.com/docs/eloquent. This required as little as possible usage of direct DB connections – Don't use mysql_query() or avoid laravel DB:: command when possible
4. Base MVC is cool – use it!
Base MVC is our own core framework which extends the laravel framework to our special needs. Most of the things you will experience will go through it. See: Base MVC:
Only reusable and generic code goes in "Base MVC"!
NOTE: Only work in Base MVC context under the following aspects:
- You really know what you are doing!
- You will put a lot of effort into testing before the merge request comes!
5. Do not reinvent the world! Use Standard Linux!
Make as much as possible use of common standard Linux tools, like
- ISC DHCP
- Icinga
- Cacti and RRD
These are cool projects! So: USE THEM!
6. Design, look and feel matters!
For this purpose, we use bootstrap with the "Color Admin" Topic. So there is nothing wrong with producing a cool, modern, fancy, and responsive GUI. Most of our users care about this, they are no geeks. Checkout projects for more informations
- Bootstrap: http://getbootstrap.com/
- Topic: Color Admin: https://wrapbootstrap.com/theme/color-admin-admin-template-front-end-WB0N89JMK
7. Keep it simple!
8. Coding is Art: We love open source! Contribute!
9. Testing matters!
Testing is important!
TODO: phpunit stuff by Patrick Reichel for testing all MVCs!