The framework for people who already know PHP.
  • download
    get the latest version.
  • why?
    what makes Cognifty next generation?
  • docs
    check out the tutorial.
  • about
    a brief overview of Cognifty's concepts.

Cognifty is a sound framework based on tested, proven ideas of building Web apps. The simple, object-oriented design has been used on the largest and smallest applications on the Web. Cognifty lets you program PHP, it doesn't try to be any other language or any other framework. Here are some things Cognifty has that you won't find in other "frameworks"
  • Users and groups
  • Pluggable handlers for controllers, templating, configuration, and layout
  • 3-level Module / Service / Event structure
  • Real applications are built with Cognifty
  • Run apps built with other "frameworks"

Release Notes for Cognifty-0017


Cognifty is the new PHP framework based on old ideas. Flexible enough to run other frameworks inside itself, Cognifty is the perfect choice for new integration or legacy development. This is a standard release.

Upgrade complexity level: High

  • Database changes required: yes
  • Changes to config file definitions: no
  • Breaking changes to custom code: yes

New Features

  • Add 'getPrimaryKey' to Data Model to pass through to Data Item library.
  • Changed data model's load to return whether or not the pkey == the supplied ID after loading.
  • Added paginated admin table view to library and content image viewer.
  • Added paginated next/prev links to the embedded content linker window.
  • Added checkbox column renderer to MVC table view.
  • Added ability to add completely cusotm javascript to admin toolbar buttons.
  • Added mass erasing of objects from the trash can.
  • Added option to hide submit button on forms with setShowSubmit().
  • Added setJsOnChange() to all form elements.
  • Added loadVisibleListAsArray method to data model list objects.
  • Updated admin ticket runner to handle ajax requests like the front-end runner.
  • Changed installation steps to read RAW sql files as well as ask for 2 DNS entries.
  • Added the ability to set a "Page" as the "Default Home Page" via the CGN Admin System. A new toolbar option "Set a Homepage" is available in "Pages". The idea was to create a simple visualization tool to manage the home page content. ONLY ONE PAGEshould be set as the default Home Page content. If more than one page is set, the last page found will be displayed.
  • Added security checks throughout entire install module.
  • Added "loadExisting" method to data items to attempt to load 1 row with all the set values of the object.
  • Added "setModel" method to data model list objects so they can wrap

the data items in data models if they choose.

  • Always force a new link in the mysqldriver, shared links are

already handled with the DSN concept higher up.

  • Changed Menu Item Maintenance - module & external url menu items

Added the ability to set a Parent Link to these types of menu items. This feature was missing for only these 2 items. Modified the type-local and the loadLocalForm function at the bottom of the file.

  • Added directory specifically for custom administration modules.
  • Altered admin service runner to check for overridden local admin modules.
  • Fixed login for admin system and added a slip-stream login service for admin just like front-end modules. (SILENT)
  • Added cleanMultiLine method to clean input and allow new-lines, tabs, and line feeds.
  • Added simple "isNew" method to the session object to test whether this is the first request

from a given session or not.

  • Completed basic functionality for front end and backend service cruds.
  • Added start of Identicon visualization library.
  • Added the cleanFloat method.
  • Adding identicon front-end service into mod 'webutil'
  • Added GUID based identicons to content browser for pages, articles, and files.
  • Added an 'access module' button for admin modules to the tool bar when viewing module details.
  • added the ability to supply an action to the cgn_form cancel button.
  • Added 3 signals to user registration module.
  • Added simple database backup system.
  • Use zip extension to compress database backups if it's built-in and safe_mode is on (i.e. no exec).
  • Shut off comments for posts older than 1 month.
  • Added tutorial page for migrating template themes to cognifty.

Download Cognifty 0017 from Sourceforge.net

Release Notes

Release 17 consists mainly of bug fixes. Two new features include an "identicon" library for generating unique graphics and a simple database backup tool. Over 200 individual changes are present in release 17, meaning that a lot of bugs were fixed and a lot of code was cleaned up. One big change was the addition of the "Cgn_Request::cleanMultiLine()" method. cleanString() will no longer allow new lines in the input. cleanMultiLine() does allow new line characters, but strips all ASCII control characters, like backspace and vertical tab.

All code which cleans input needs to differentiate between code which should accept new line characters and those which should not. If you are cleaning input which comes from a text area you need to switch to cleanMultiLine().

Release Notes for Cognifty-0014


Cognifty is the new PHP framework based on old ideas. Flexible enough to run other frameworks inside itself, Cognifty is the perfect choice for new integration or legacy development. This is a standard release.

Upgrade complexity level: Low

Database changes required: no Changes to config file definitions: yes Breaking changes to custom code: no *New fields were added for module overrides and module customizations

New Features

  • Made admin navigation more consistent by using better names for pages.
  • Added more specific CGI handling for nanoweb in the initRequestTickets function.
  • Added flimsy support for rowCount into the pdo sqlite library.
  • Added support for local module overrides
  • Added a browse section to article sections.
  • Changed bootstrap and Cgn_ObjectStore to use lazy loading techniques. Cached config settings are even faster now.

Download Cognifty 0014 from Sourceforge.net

Write Your Own Virtual Host Control Panel - Part 1

the story of embedded PHP servers

Virtual host control panels are a major boon for anyone managing more than 2-3 hosts on the same server. I’ve heard a lot of people say that these Web tools are useless because if you know the all of the server commands then you don’t need the help of a GUI. These people feel that you should know how to do everything by hand, not just understand the basic concepts behind virtual hosts, DNS entries, stopping and starting services, etc.

The flip side of the coin is that these control panels can add a lot of consistency to your work. They reduce the margin of error that a human can bring to the table when editing files and performing commands “by hand”.

Release Notes for Cognifty-0013


Cognifty is the new PHP framework based on old ideas. Flexible enough to run other frameworks inside itself, Cognifty is the perfect choice for new integration or legacy development.

This is mainly a bug-fix relase for 12 with new search and 404 handling capabilities.

Upgrade complexity level: Low

  1. Database changes required: no
  2. Changes to config file definitions: no
  3. Breaking changes to custom code: no

Release Notes for Cognifty-0012


Cognifty is the new PHP framework based on old ideas. Flexible enough to run other frameworks inside itself, Cognifty is the perfect choice for new integration or legacy development.

This release includes a lot of new features in the blog module. The signal/slot mechanism now can support multiple slots per signal.

Upgrade complexity level: Medium

  1. Database changes required: yes
  2. Changes to config file definitions: yes *
  3. Breaking changes to custom code: no

* Changes were made to the way the signals/slots are defined in the signal.ini file.

New Features

  • Added tagline and description saving to blogs.
  • Altered blog module to set the site tag line and display the blog description.
  • Added an article's title to the html page title.
  • Added 4th init parameter to trusted services.
  • Altered redirectHome and getHomeUrl methods to take an extra array of parameters to pass along.
  • Made significant speedups to the bootstrap process.
  • Added PDO-mysql database driver.
  • Added ability to have local.ini on a per module basis for local config settings.
  • Changed slot/signal configuration syntax to support multiple slots per signal.
  • Added styleshout's ReFresh 1.0 as the default template.
  • Added support for using excerpts in blog posts.
  • Added social bookmarks to the blog module.
  • Added next and previous links to main blog page.

Bug Fixes

  • Fixed unpublish/delete links for blog posts.
  • Fixed a potential problem when freeing MySQL result sets out of order.
  • Fixed problem with saving excerpt field for blogs and pages.
  • Fixed page numbering bug which caused page 1 to appear twice in the blog.

Minor Changes

  • Added new object store unit test.
  • Small spacing tweak to refresh template.
  • Added template function to set the global site tag line.
  • Added loading gif for suckerfish to admin template to stop bad 404s
  • Minor speedups to the most commonly used functions.
  • If a user is not accepting cookies, consider them to be flooding for the purposes of throttling trust plugin.