Behind The Site
DASPRiD's v9.4 is powered by the following:
To always be able to decide by myself, which server features I need and which not, I'm owning my own dedicated server with a LAMP (Linux - Apache - MySQL - PHP). At the time of writing, my server used the following components:
- Ubuntu 9.10 - I was always a Debian/Debian-based guy, and I like the simplicity of apt-get and aptitude. Through them I can always keep my installation easily up-to-date.
- Apache 2.0 - The most popular Internet web server.
- MySQL 5.1 - The MySQL® database has become the world's most popular open source database because of its consistently fast performance, high reliability, and ease of use. It's used in more than 11 million installations ranging from large corporations to specialized embedded applications on every continent in the world.
- PHP 5.2.10 - The fastest, most robust and reliable PHP version available. Zend certifies that this version is optimum for production environments. PHP 5 supports object-oriented programming, easy web services and XML, and much more.
Zend Framework is used extensively used on this website. Not that it only brings the MVC pattern into the game, but it also provides easy interfaces to make the life of a coding easier. I have used the following components on my site:
- Zend_Acl and Zend_Auth - Zend_Auth in conjunction with Zend_Acl gives you an easy way to keep authentication and authorization away from your controller code, while also keeping maintaining of roles and rules quite simple. I've used it for the entire user managment.
- Zend_Config - a simple component, which can take XML, INI or simple arrays to store them in an object oriented way. In my case, I'm using multiple files, which get concetinated to one single array, which is then given to Zend_Config.
- Zend_Captcha - Zend_Captcha allows easy integration of the most well known CAPTCHA standards. In my case I'm using the figlet implementation made by myself, as it is not spread widely and thus not known by spam bots.
- Zend_Controller - Zend_Controller is the heart of Zend Framework's MVC (Model - View - Controller) implementation. It features a flexible helper and plugin architecture that allows customization of the workflow at multiple points in the application.
- Zend_Date - Zend_Date helps working with multiple dates and also does the formating in the right locale for you.
- Zend_Db - Zend_Db is a classic abstraction layer to the database. It allows easily swichting the storage backend of your application without any huge modifications. It also takes care of most possible security concerns.
- Zend_Feed_Writer - Zend_Feed_Writer is the successor of Zend_Feed to create news feeds.
- Zend_Form - Zend_form allows you to easily define your forms in your controllers directly, while the view-part is done by decorators, view helpers and your CSS code. It also combines filtering and validation, which makes your form-life a thousand times easier.
- Zend_Mail and Zend_Mime - Zend_Mail takes the thousand meters long RFC away from your mind and handles all the header and boundary stuff correctly.
- Zend_Paginator - Zend_Paginator handles pagination of data structures and makes it easy to create different pagination styles.
- Zend_Search_Lucene - Lucene is a search indexing technology originally written in Java. Zend_Search_Lucene is a PHP implementation that reads and creates binary-compatible Lucene indexes.
- Zend_Layout and Zend_View - Zend_View is the "V" in Zend Framework's MVC architecture. It provides simple ways to handle your entire Layout and gives you simple access to view helpers. It uses PHP itself by default as template engine.
Open Source Code
As I'm a lover of open source and guys are always asking me, how I'm doing
stuff and what may be "best practice", I decided to give everyone
access to the source code of dasprids.de.
This way you can learn, how to do specific stuff and how to use the
components of Zend Framework. You
can either use an SVN client to fetch the entire site or you can browse
the source directly by accessing it through your web-browser. In both cases,
the URL is the same: