CoughPHP is a collection handling framework.
Cough is an extremely lightweight PHP ORM framework for dealing with objects that have single table counterparts in a database. Cough is built to be easy to learn, use, aCoughPHP is a collection handling framework.nd extend.
Cough generates all the code you need for managing the object model-to-relational model mapping. This includes simple methods for all your CRUD functionality. This also includes Cough Collection classes that represent the relationships between tables in your data model.
Unlike many other ORM frameworks (in PHP and other languages), Cough doesn't control how you handle your views and controllers. In an MVC application, it intends to only be the model, or a portion of the model. Because of this, it is an excellent choice for projects that involve custom development that must integrate with other existing applications.
Cough is an open source software project and is driven by community contributions. It is under the FreeBSD license.
Here are some key features of "CoughPHP":
- Code generation:
- Cough generates all the code you need to read and write from the database. 80% of all the code your project will need is created with a single click.
- Extensible Architecture:
- Cough generates core classes and 'starter classes' that extend them. Your enhancements start there!
- Because it doesn't try to do too much, Cough can easily integrate with other PHP projects.
- Cough generates a class-based ORM; it doesn't needlessly perform dynamic schema lookups while running. Cough also allows for easy overriding of its Collections, making performance optimizations a snap.
- Designed to solve a specific set of problems; easy to learn, use, and enhance!
- Open Source Licensing:
- Free to use and community-driven!
- Added As_Database::getUniqueQueryLog().
- Added CoughDatabaseFactory::getUniqueDatabases().
- Added CoughObject::isFieldModified(). Don't access the modifiedFields array directly anymore; use isFieldModified() instead.
- Changed CoughObject::setFieldsIfDifferent() so that it only sets fields that actually belong to the object (by checking fieldDefinitions and derivedFieldDefinitions first).
- Changed Autoloader so that saving of newly found classes is postponed until the script ends. This keeps it from writing to the disk inefficiently on the first page view or anytime a number of new classes have been introduced.
- Added Autoloader unit test cases.