What is Phenotype?

Phenotype CMS is a PHP/MYSQL based Open Source Content Management Framework dedicated to serve two basic principles:

I Easy Editing

Phenotype CMS offers a unique generic usability. It doesn’t matter what content you want to manage, Phenotype provides three very intuitive ways to manage it:

  • 1. Page Oriented Editing - Managing Content like Playing with Building Bricks
  • 2. Content Oriented Editing - Managing Content like Having a Card Index Box
  • 3. Media Oriented Editing - Integrated Lightwight Media Management

Speaking of Lightwight. Phenotype was designed to have just as many features as necessary. Nothing to be of little usefullness went into to the product. Majority does benefit from it. You rarely have to explain how to use Phenotype → Easy Editing.

Page Oriented Editing Content Oriented Editing Like Having a Card Index Box Media Management Online Image Editing Integrated Site Statistic Task Management

II Simple Efficiency

Phenotype CMS provides a very robust groundwork for your content driven web application. The whole application is manageable within the backend, meaning when you create new component (classes), you create them guided. As a consequence you always have a great overview on your application. Differential Phenotype applications gets structured very similarly - even stronger than with the already really good approach of “convention over configuration”.

Don’t be afraid, that solid structuring doesn’t handicap you when developing. In fact developing with Phenotype feels pretty old-skool. You can concentrate on realizing your solution. The framework is putting everything together.

All components are derivatives of Phenotype system classes. You customize your application by implementing, enhancing and overwriting their default values and methods and inserting the desired logic for your solution by plain PHP programming.

Basically you have to handle 5 component types. Pages and Request ($myPage and $myRequest) are representing your current scope and always available. Page Components and Content Objects do represent any content entered by your editors and do have - for example - display()-methods to be implemented. Finally Includes carry any functionality you may want to develop. Those Includes are automatically integrated into the Phenotype Caching Mechanism and connected to the Smarty Template Engine.

Configuring a Layout Overview Page Components Editing a Page Group Overview Includes Editing PHP Code of a Class (here from an Include) Editing a Template (here from an Include) Overview Content Classes Configuring Availability of Content Objects Editing a Component Group Editing a Role Debug Console Unique Database Schema

All content is stored in a MySQL database with an uniform database layout. It’s valid for all Phenotype applications. You access content by instantiating the equivalent objects (like Pages, Page Components, Content Objects and Images) or by retrieving them with help of the PhenotypePeer class. You rarely have to write your own read queries and there won’t be any reason for direct SQL based data manipulation at all.

When to use Phenotype?

Referring the two basic principles Phenotype is built upon, Phenotype fits best whenever you want to satisfy your ordinary users. It’s really simply to edit content with Phenotype. Give it a try here.

Besides that, Phenotype is suitable for almost any content driven web application. Consider, that Phenotype - as a framework - needs a little more complexity to display it’s qualities. But then it supports you powerfull without standing in your way. It’s very open for any possible HTML/XML/TXT output you might want to realize.

Last but not least Phenotype is very supportive to rapdid prototyping, ever changing requirements and agile software development methods.

I am a developer. Is Phenotype the right system for me?

I figured out, that many developers have a tendency to correspond to one of the following types:

Developer Main TypePotential QuoteMatch
Hunter-Gatherer“I recently jumped over that extension, which is almost doing what we need here…“Poor
Expert“I agree, everything is working fine, but I think we must use the Mediator Behavioral Pattern here!”Very depending
Do-it-Yourselfer“I think we should rebuild that from scratch. I already have an idea how to do it.”Eventually
Pragmatist“Hey guys, we’re just a building a website here, not the control center of a nuclear power plant!”Great!

As stated above we don’t want Phenotype to be the all-in-one device suitable for every purpose. Thus it cannot be an appropriate system for every type of developer either … There’s no plugin or extension repository of any kind, so if you’re used to realize your applications by customizing existing code, Phenotype is definitely not a system for you. Also you need a basic understanding of OOP and we recommend to be accustomed to an IDE.

Phenotype is simultaneously more and less than lots of other content management systems. It’s perfect for all developers, that have a strong interest in controlling their own applications and just want a supporting frame(work). And it’s perfect for all developers who want to achieve their goals very fast, who need to provide substantial quality and performance in a reasonable time and agree to break new grounds to reach that goal, even if it means to ignore best practices.

So ask yourself, wether you’re the kind of developer Phenotype is meant for. If so don’t hesitate to join us. Welcome :)

How do I get started?

First take a look on our online demo. After that you should read the introductory documentation, especially the page ”How could/should you realize this and that with Phenotype?”.

You can always download the latest version here and check the features list here.

Have fun

Bookmark and Share