Web Development PHP MVC Framework

ApPHP MVC Framework is designed to provide modern and rapid development of websites, web applications and web services.

It implements the the Model-View-Controller (MVC) design pattern and principles, including separation of display, logic, and data layers. It provides an architecture, components and tools for developers to build a complex web applications faster and safer.

Choosing ApPHP MVC Framework allows you to release your applications earlier, host and scale them without problem, and easier long-term maintenance and expansion.

Download and install with easy!


Most Frequently Asked Questions

  • Q. Under what license you distribute this product?

    We distribute ApPHP Framework under GNU LGPL Version 3 (GNU LESSER GENERAL PUBLIC LICENSE - included in downloading archive).

  • Q. What language is ApPHP Framework written in?

    ApPHP Framework is written in PHP (min v5.4.0)

  • Q. What are the requirements for using this app?

    Minimum requirements is PHP v5.4.0 or higher.

    You must also have PDO extension enabled on your server, if your application is working with database.

  • Q. How does it work?

    Like most modern web programming frameworks, ApPHP Framework has been developed in accordance with the MVC pattern ("Model-View-Controller"). The MVC requires that the entire software logic should be separated into three loosely bound parts (layers):

    • Data management layer (Model)
    • View presentation layer
    • Business logic layer (Controller) which is responsible for receiving, validating and processing user requests as well as for obtaining data from the model (database) and preparing them for proper displaying in users' browsers

    You may find more information in our documentation.

  • Q. How much does it cost? Is it absolutely free and open-source?

    Yes, this framework is absolutelly free and 100% open-source. You can use it for yourself or in your projects to create free or paid web-applications to yourself or your customers.

Video Tutorials

Directy CMF is a multi-purpose cross-platform base web application with pre-build Admin Panel, based on ApPHP MVC Framework. Download from GitHub.

  • 1. Directy CMF Installation Guide

  • 2. Introduction to Directy CMF (Content Management Framework)

Real-Word Usage

This framework is used for some successful commercial and free products:


Framework Features

  • 100% Open-Source
  • MVC architecture pattern
  • Support for multiple projects on a single core without further manipulation
  • Secure codding: CSRF, XSS & SQL Injections prevention
  • Components and modules extensions
  • User-friendly debug mode
  • Custom session storage support
  • Flexible routing based on configuration files
  • PDO support
  • PHPUnit tests
  • Active Record (AR) pattern support
  • Don't Repeat Yourself (DRY) principle
  • Clean Separation of Concern (SOC) principle
  • Multi-Browser support
  • Multi-Database support
  • Multi-Language support
  • Fast performance
  • Smart caching support
  • Simple and readable code for developers
  • URL Routing (Clean URLS)
  • SEO-friendly URLs like /category/edit/1/
  • Built-In widgets extensions
  • Very clean, controlled HTML output
  • Display and Processing are separated
  • Five (5) working Demos embedded

Requirements & Supported

Script Requirements

  • PHP 5.4.0 or higher

Supported Browsers

  • FireFox
  • Chrome
  • Internet Explorer
  • Opera
  • Safari

Supported Databases

  • PDO Drivers: MySQL, PostgreSQL, SQLite etc.


Here are some screenshots showing ApPHP MVC Framework

Last Updates

Version 1.4.1

Released on 30 Feb, 2021
  • New added new helper CSecureHeaders with possibility to define secure headers
  • Enh added possibility to hide system queries in debug panel
  • Enh added possibility to close debug panel to minimum size
  • Enh added possibility to get records by chunks with chuck() method of Active Record
  • Fix bugs fixed

Version 1.3.2

Released on 09 Feb, 2020
  • New added CRecordEntity to ORM model
  • New added PHPUnit tests
  • Enh added possibility to use create() and update() methods in CActiveRecord
  • Enh changes in components CHttpRequest
  • Enh minor changes in database migrations
  • Enh added possibility to define order for CSS and JS registration files
  • Enh changes in helpers CValidator, CRss, CDebug, CHash, CGeoLocation, CConfig, CHtml
  • Enh in CDataForm and CFormView added new type of validation: "regex"
  • Enh code syntax changed according to new code convention
  • Enh added possibility to define lazy loading (by default) for components
  • Enh added possibility for lazy loading of core components via config
  • Fixbugs fixed

Version 1.2.2

Released on 04 Jan, 2019
  • New added possibility to define Captcha fields in CDataForm widget
  • New added possibility to define access permissions to controller actions via _accessRules() method
  • New added possibility to minify CSS and JS files via config file
  • New added Arabic language to i18n
  • Enh minimum requirements for PHP is defined as 5.4.0
  • Enh allowed creating and removing cache files by cache ID
  • Enh changes in helpers CFile, CDataForm, CHttpRequest, CValidator, CLocalTime
  • Enh added possibility to add watermark for uploaded images with CImage::addWatermark() in CDataForm
  • Enh added possibility to remove whole section in FormView by using 'disabled'=>true
  • Fixbugs fixed

Version 1.1.5

Released on 06 Jan, 2018
  • New added CDbCommand - query builder core class
  • New added possibility to define select list in CActiveRecord::FindAll() method
  • New added new type of CSRF tokens "multipages", that allows to generate tokens for separate pages
  • Enh minimum requirements for PHP is defined as 5.3.0
  • Enh for date and datetime fields default value defined as NULL, '0000-00-00' is deprecated
  • Enh TCPDF library updated to v6.2.13
  • Enh showed all variables that were defined in current view in Debug Panel
  • Enh added automatically added back quotes in SQL statements according to database driver
  • Enh minor changes in CLocale, CTime, CGridView, CString, CHtml helpers
  • Enh changes in CDatabase core class
  • Enh minor changes in code for PHP7 compatibility
  • Enh CHash::salt() is now compatible with PHP7.1 or later
  • Fixbugs fixed

Version 1.0.3

Released on 19 Jun, 2017
  • New added possibility to catch and handle global exceptions
  • New added possibility to use in config default error controller
  • New added possibility to return CActiveRecord find() result as array
  • New added new helper CMinify
  • Enh changes in CHtml, CArray, CValidator, CFile, CGridView helpers
  • Enh changed format of compression if config
  • Enh added multi-select for SELECT tags
  • Enh modules/ and vendors/ directories moved to assets/ directory
  • Enh PHPMailer upgraded to 5.2.22
  • Enh removed check for "magic_quotes" functions for PHP < 5.3
  • Enh added new parameter "redirection code" for method redirect() for controllers
  • Enh added possibility to define custom methods for model in CGridView
  • Enh added possibility to define db connection via sockets
  • Enh changed names for classes that compatible with PHP 5.3.0 or higher
  • Enh added alternative for PHP > 7.0.0 for mcrypt_encrypt/mcrypt_decrypt functions in CHash helper
  • Enh added styling for debug panel on mobile devices
  • Fixbugs fixed

Version 0.9.0

Released on 20 Dec, 2016
  • New added new components: CLogger, CMobileDetect
  • New added new helper: CLog
  • New added support for layouts
  • New added new field type in CDataForm and CFormView - "color"
  • Enh changes in A::app()->getLanguage()
  • Enh added _onEndRequest events in class A
  • Enh added isWritable() method for CFile system helper
  • Enh changes in helper Currencies
  • Enh added in COauth strategy for LinkedIn
  • Enh added validation for Short Open tags in utils/requirements
  • Enh PHPMailer upgraded to 5.2.16
  • Enh automatically adding $htmlOptions['enctype'] = 'multipart/form-data'; if it's missing in form options
  • Fixbugs fixed

Version 0.8.3

Released on 01 Jul, 2016
  • New added A::app()->load() method that allows to load library files
  • New added application libraries and files CLoader helper class
  • New added global backtrace for application
  • New namespaces support for modules
  • New added SOAP vendor - nusoap
  • New added OPAUTH vendor - opauthv
  • Enh minor changes in CDebug core class
  • Enh minor changes in CHtml::link() method - added automatically added rel="nofollow noopener" for target="_new"
  • Enh minor changes in helper CGeoLocation
  • Enh translattion in Spanish for core messages
  • Enh minor changes in CDatabase db class
  • Enh added new options for DB-level caching: "auto" and "manual"
  • Fixbugs fixed

Version 0.7.7

Released on 04 Dec, 2015
  • New added possibility to create view files in sub-directories upto 3rd level
  • New added new helpers: CGeoLocation, CConvert
  • New added new component: CShoppingCart
  • New added new translate method te() that allows to encode output
  • Enh added new helper CLocale that allows to display data in local settings format and language
  • Enh minor changes in CValidator, CLanguageSelector, CBreadCrumbs, CFile, CDataForm, CGridView, CValidator helpers
  • Enh added new functionality agregate functions to CGridView helper
  • Enh added decimalPoints attribute for decimal fields in CGridView helper
  • Enh added new validation type isHtmlSize to CDataForm and CFormValidator
  • Enh allowed to use CCaptcha for few forms on the same page
  • Enh allowed to return content in CView::render()
  • Enh added possibility to sort by numeric value for CGridView
  • Enh improved security in getting server port in CHttpRequest
  • Enh in CDebug panel added possibility to see all included files, executing time and more...
  • Enh if language constant doesn't exist in Debug Mode it gets a prefix '@@@'
  • Enh added possibility to disable filter fields in CGridView by 'disabled'=>true
  • Enh in CHttpSession startSession() redone into public method
  • Fixbugs fixed

Version 0.6.9

Released on 16 May, 2015
  • New added new vendor dBug component
  • New added new vendor CI_Security class
  • New added new vendor TCPDF component
  • New added new field type "fileUpload" for CDataForm widget
  • New added new component CUri for parsing of URIs
  • New added possibility to include one view from another view with $this->renderView() syntax
  • Enh placement of component views moved from directory protected/components/views/ to directory protected/views/components/
  • Enh added possibility to extend framework core classes
  • Enh added possibility to create helpers on application and module levels
  • Enh added possibility to override default Controller/Action from modules config files
  • Enh PHPMailer vendor updated to v5.2.9
  • Enh CDebug::display() renamed into CDebug::dump()
  • Enh added possibility to write log into console: CDebug::console() or CDebug::c()
  • Enh added new methods to CHttpRequest core class: isAjaxRequest(), isPutRequest(), isDeleteRequest() and getBrowser()
  • Enh minor changes in CDbHttpSession and CHttpSession core classes
  • Enh minor changes in CFile, CFormValidator, CValidator, CFormView helpers
  • Enh in CDebug panel added possibility to close debug panel with double click on active tab
  • Enh minor changes in syntax of models
  • Enh in class A added aliases to components - request, session, cookie etc.
  • Enh in components class CHttpRequest added aliases post() and get() to getPost/SetPost, getQuery/SetQuery
  • Enh added new method distinct() for CActiveRecords
  • Enh added possibility to define callback controller method for CDataForm
  • Enh added translation into Polish
  • Fixbugs fixed

About Us

About ApPHP

ApPHP Framework is developing by Advanced Power of PHP (ApPHP™). We are the international software company that provides cost effective (free or low-cost), professional and reliable PHP scripts and components.

Our site: www.apphp.com
Directy CMF: www.apphp.com/php-directy-cmf


For general questions, bug reports or press inquires please fill out the form below.

Oops! Please correct the highlighted fields...

Thanks! We'll get back to you shortly.