Qcodo

Last updated
Qcodo
Original author(s) Mike Ho, Quasidea Development
Developer(s) Qcodo Community
Initial releaseOctober 18, 2005 (2005-10-18)
Stable release
0.5.34 / December 26, 2023 (2023-12-26) [1]
Written in PHP, SQL
Operating system Cross-platform
Type Web application framework
License MIT License
Website www.qcodo.com

Qcodo is an open-source PHP web application framework which builds an object-relational model (ORM), [2] CRUD (create, retrieve, update, delete) [3] UI pages, and AJAX hooks from an existing data model. It additionally includes a tightly integrated HTML and JavaScript form toolkit which interfaces directly with the generated entities. It is a robust, comprehensive framework which can be utilized by small and large Web applications alike.

Contents

Structure

The framework consists of three main components: a code generator, QForms [2] (OOP generated stateful Ajax- or server-processed webform), QQuery (OOP based SQL query builder) -- all of which can be used independently of each other. The code generator parses an existing relational database structure, and builds an object-relational mapping (ORM), as well as several remote interfaces (SOAP, AJAX) to the ORM. The ORM in Qcodo can be extended to provide user-maintained functionality (via object subclassing). QForms is an ASP.NET-inspired templating engine in which each form element is an object exposing its functionality and state via methods and attributes.

QForms maintain page as well as form state, and include the ability to validate fields, trigger events, and associate AJAX calls. QForms bind tightly to the ORM, allowing developers to rapidly and iteratively change any of three components in the model–view–controller (MVC) architecture with little impact to the other components.

The Qcodo Package Manager (QPM) was introduced starting with Qcodo v0.4.0 to allow community members a much more streamlined and efficient way to post and share modules, enhancements and fixes of the Qcodo development framework with each other. The Qcodo.com website can be used to view user-submitted QPM packages that community members have contributed at the QPM Section of the website.

Qcodo was conceived and developed by Mike Ho, and his company Quasidea Development acts as the central maintainer with dozens of contributors from the Qcodo Community that provide new features and releases via the Qcodo website.

The website, itself, is written in Qcodo and custom developed for the community, including suite of tools like online forums, bug/issue tracking, online showcase and QPM management. It is integrated with GitHub to manage releases of the Qcodo Framework itself. The code for Qcodo.com is also open sourced and available at GitHub as well.

Uses

The framework is mature and has been deployed in many production environments in everything from highly trafficked social networks to large Fortune 500 and government organizations, including:

The framework has been presented at many conferences across the nation, including the Zend/PHP Conference, the MySQL User's Conference, MySQL's Dev Zone, AjaxWorld conference and expo, and DC PHP. It has over 250,000 downloads from thousands of users spanning over a hundred countries.[ citation needed ]

Related Research Articles

Object–relational mapping in computer science is a programming technique for converting data between a relational database and the heap of an object-oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language.

<span class="mw-page-title-main">Object–relational database</span> Database management system

An object–relational database (ORD), or object–relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inheritance are directly supported in database schemas and in the query language. In addition, just as with pure relational systems, it supports extension of the data model with custom data types and methods.

Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

ADO.NET is a data access technology from the Microsoft .NET Framework that provides communication between relational and non-relational systems through a common set of components. ADO.NET is a set of computer software components that programmers can use to access data and data services from a database. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems, though it can also access data in non-relational data sources. ADO.NET is sometimes considered an evolution of ActiveX Data Objects (ADO) technology, but was changed so extensively that it can be considered an entirely new product.

<span class="mw-page-title-main">Mantis Bug Tracker</span> Bug tracking system

Mantis Bug Tracker is a free and open source, web-based bug tracking system. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool.

Object–relational impedance mismatch creates difficulties going from data in relational data stores to usage in domain-driven object models. Object-orientation (OO) is the default method for business-centric design in programming languages. The problem lies in neither relational nor OO, but in the conceptual difficulty mapping between the two logic models. Both are logical models implementable differently on database servers, programming languages, design patterns, or other technologies. Issues range from application to enterprise scale, whenever stored relational data is used in domain-driven object models, and vice versa. Object-oriented data stores can trade this problem for other implementation difficulties.

<span class="mw-page-title-main">Django (web framework)</span> Python web framework

Django is a free and open-source, Python-based web framework that runs on a web server. It follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

<span class="mw-page-title-main">CakePHP</span> Open-source web framework in PHP

CakePHP is an open-source web framework. It follows the model–view–controller (MVC) approach and is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License.

Laminas Project is an open source, object-oriented web application framework implemented in PHP 7 and licensed under the New BSD License. The framework is basically a collection of professional PHP-based packages. The framework uses various packages by the use of Composer as part of its package dependency managers; some of them are PHPUnit for testing all packages, Travis CI for continuous Integration Services. Laminas provides to users a support of the model–view–controller (MVC) in combination with Front Controller solution. MVC implementation in Laminas has five main areas. The router and dispatcher functions to decide which controller to run based on data from URL, and controller functions in combination with the model and view to develop and create the final web page.

<span class="mw-page-title-main">Silverstripe CMS</span> Content management system

Silverstripe CMS is a free and open source content management system (CMS) and framework for creating and maintaining websites and web applications. It provides an out of the box web-based administration panel that enables users to make modifications to parts of the website, which includes a WYSIWYG website editor. The core of the software is Silverstripe Framework, a PHP Web application framework.

Morfik Technology Pty Ltd. is an Australian software company that was acquired by Altium in 2010.

The Doctrine Project is a set of PHP libraries primarily focused on providing persistence services and related functionality. Its most commonly known projects are the object–relational mapper (ORM) and the database abstraction layer it is built on top of.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

RedBeanPHP is an independent, free, BSD licensed, open-source object–relational mapping (ORM) software written by Gabor de Mooij. It is a stand-alone library, not part of any framework. RedBeanPHP is an on-the-fly object–relational mapper, this means there is no upfront configuration. The system relies on conventions entirely and adapts the database schema to fit the needs of the program. This way, it strikes a balance between NoSQL and traditional RDBMS solutions.

<span class="mw-page-title-main">FuelPHP</span>

FuelPHP is an open-source web application framework written in PHP which implements the HMVC pattern.

<span class="mw-page-title-main">Laravel</span> Open source web application framework, written in PHP

Laravel is a free and open-source PHP web framework, created by Taylor Otwell and intended for the development of web applications following the model–view–controller (MVC) architectural pattern and based on Symfony. Some of the features of Laravel are a modular packaging system with a dedicated dependency manager, different ways for accessing relational databases, utilities that aid in application deployment and maintenance, and its orientation toward syntactic sugar.

References

  1. Qcodo PHP Development Framework
  2. 1 2 Porębski, Bartosz; Przystalski, Karol; Nowak, Leszek (2011). Building PHP applications with Symfony, CakePHP, and Zend framework. Indianapolis, Ind.: Wiley Pub. p. 64. ISBN   9781118067925 . Retrieved 6 May 2022.
  3. Grehan, Rick. "Fabulous PHP frameworks: Qcodo, Lithium, Seagull, and Yii". InfoWorld . IDG Communications, Inc. Retrieved 6 May 2022.
  4. Levri, J.A.; Deng, B.; Welch, J.; Ho, M.C.; Hogan, J.A. (2009) "Online Project Information System (OPIS) Description, Annual Reporting Outcomes, and Resulting Improvements" 39th International Conference on Environmental Systems, SAE 2009-01-2513.