PHP Classes
elePHPant
Icontem

Dominion: Build and execute portable SQL queries

Recommend this page to a friend!
  Info   View files View files (85)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2012-03-27 (4 years ago) RSS 2.0 feedNot yet rated by the usersTotal: 1,016 All time: 3,470 This week: 942Up
Version License PHP version Categories
dominion 8.00.05GNU Lesser Genera...5.3HTML, PHP 5, Databases
Description Author

This package automatically build and execute SQL queries based on the definition of the table and query objects.

The SQL queries are created on the fly, so you do not have to write SQL statements in your PHP code. The created SQL queries are 100% portable between database.

Currently it supports MySQL, PostgreSQL, Oracle and Microsoft SQL Server, with native, ODBC or PDO connectors.

Picture of philippe thomassigny
  Performance   Level  
Name: philippe thomassigny <contact>
Classes: 6 packages by
Country: Mexico Mexico
Innovation award
Innovation award
Nominee: 1x

Details
Dominion - The Universal Database Abstraction Layer
(c) 1999-2010 Philippe Thomassigny

Dominion is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Dominion is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Dominion.  If not, see <http://www.gnu.org/licenses/>.

----

Welcome to Dominion v8.

You need to install the dominion directory into your application somewhere accesible by your scripts to include dominion scripts.

Once the directory is installed, just call the needed scripts and build your code !

Reference, manuals, examples: http://www.webability.info/?P=dominion
Follow us on twitter: @webability5

Thank you !

----

Dominion v8 integrates DomCore v1 into its structure. DomCore files libraries are copied into include/core and include/throwables

This is the build 5

- Change the build:
  edit DB_Base.lib at the beginning and change the version number
  change this file and add comments on new build.

Important notes:
- We did tests with TableSource to store table definition into memory.
  This is useless, memory access/unserialize of a table is slower than reading the file itself (about 2x time).
  So there is no TableSource available in the code.

To do:
- Examples
- Documentation
- syncronize table without loosing info
- import/export XML tables
- import/export pieces of tables
- import/export full databases with autoincrement/pk/fk check
- export table definition to xml
- LOB integration
- french translation of Dominion messages

----

Build 5: 2012/03/27:
- Removed error in doSelectCondition: simple field order was not working
- DB_FieldInteger.createValue has been modified to always return an integer
- DB_FieldReal.createValue has been modified to always return a formated real with decimal dot to protect automatic locale with comas.
- Markups added into XML language files to extract and insert entries automatically
- Added tables definition into XML descriptor files or array, added to DB_Table constructor to load the table
- DB_TableExport coded
- DB_Table->getType() added
- Added getLength() on DB_FieldVarchar
- Added getChecks() on DB_Check

Build 4: 2011/10/24:
- The absolute dates/unix dates in DB_Join have been set to DB_Date always
- The serialize method in DB_Date now accept the array as reference
- The serialize methods added in DB_uTime
- Error corrected in DB_Date on the calculation of seconds cents for ISO dates
- DB_Table->doInsert now accept DB_Record and DB_Records
- DB_Table->doInsert now returns the inserted key if apply (subqueries does not return inserted keys, all other do)
- DB_Table->doInsert may return an array of inserted keys in case of inserting a DB_Records object
- Examples done and beautifull design

Build 3: 2010/08/24:
- Integration of DB_Base with WAMessage
- Simplification of the constructor switches with arrays (60 code lines less)
- Removed various thowable Error related to database and added a single error: DB_BaseError
- Removed DomMaskError.lib
- All DB_Base.set* methods now return $this for chaining
- Integration of DB_Cursor with WAMessage
- DB_Cursor->Exec now return $this for chaining
- Parameters implemented for ODBC into DB_Cursor->Exec method
- DB_Check now extended from WAClass, debug added, serialization done
- DB_Field now extended from WAClass, debug added, serialization done
- DB_FieldInteger with debug added and serialization done
- DB_FieldVarchar with debug added and serialization done
- DB_FieldReal with debug added and serialization done
- DB_FieldText with debug added and serialization done
- DB_FieldDate with debug added and serialization done
- DB_FieldDateTime with debug added and serialization done
- DB_FieldLOB added
- DB_Table now extended from WAClass, debug added, serialization done


Build 2: 2010/08/17:
- DB_Date messages now use WAMessage (set and get) and renamed with a DB_Date prepend
- Added defaultdateformat and defaulttimeformat to DB_Date
- DB_Date::setMessages has been removed, the WAMessage.setMessageFile should be used now
- DB_Date.setDate has been added to pass a mixed date parameter
- all DB_Date.set* methods now return $this for chaining
- setYear modified to accept year 0 too
- DB_Date::defaulttimezone is now set with server default time zone
- DB_uTime::setMessages has been removed, the WAMessage.setMessageFile should be used now
- all DB_uTime.set* methods now return $this for chaining
- static DB_uTime::init added to initialize messages
- Integrated with DomCore v5

Build 1: 2010/08/04:
- Removal of domcore, dommask and domlist
- integration of domcore last version
- DB_Date is now extended from WAClass, serial() and unserial() implemented
- DB_uTime is now extended from WAClass, serial() and unserial() implemented
- DB_Base, DB_Cursor are now extended from WAObject since they are not serializable


----

Old Builds of v7:

Build 6:
- Separation of domcore, dommask and domlist

Build 5:
- Added field Textarea type, javascript class, wajaf class, PHP class and CSS classes
- dommasklovfieldElement has been modified to encode with html entities the values of the options, since they are not into a [CDATA[
- Added BadFieldValueException for DB_Table (temporary until the library is rewritten)
- Field Format and FormatJS has been separated, JS reg exp is not always compatible with PHP reg exp :(
- Hidden field adjusted to work fine in the form
- default mode, order and key variables renamed to dommask* to not interfere with user variables
- Removed FieldCounter from DomMask.lib
- Renamed wajaf classes with InitCap
- All the Core has been revised, ordered, fixed, UML Box entries adjusted.
- WALanguage added to the Core for XML languages manipulation and compilation
- WAFile added to the Core for Files operations

Build 4:
- Added parameter 'type' to DomMask->create($type = null) to get the code as objects or as XML if $type == 'xml'
- Added 'confirm' same as 'submit' in fommaskContainer.js
- Added JSonSucces and JSonFailure to DomMask.lib
- dommaskbuttonElement.lib modified to meet buttonElement standard
- DomMaskButton.lib modified to accept name of button into constructor of dommaskbuttonElement, visible parameter not anymore valid
- skin/4gl and skin/css created, all classes added in dominion.css from wajaf
- elements and containers conditioned to use the basic container, zone and element classes
- All the elements (js, php lib, dommask class) rewritten to meet requirements of wajaf
- Hidden field added, mask modified to use extra variable as hidden fields
- All the fields modified to use RealMaskId instead of MaskId (which is the one given by programmer but not necesarly the good one)
- All the fields .visible renamed to .isvisible to not conflict with visible parameter of Element.
- Modified DB_Table.lib to catch the exception on table_exists for MySQL to use the correct exception

Build 3:
- Added DomMaskMailField.lib
- Added the default value to the text type fields into the mask creator
- WAMessage is now fully static and do not extend WAClass
- Created DomList.lib
- Copyright written in all throwables, base, list, mask and wajaf objects, and also into js/containers and js/elements
- Added example 2 of WADebug
- Containers and elements modified to adapt to the new wajaf structure with 4glnode as last parameter
- dblistContainer.js has been added from wajaf, and renamed to domlistContainer.js

Build 2:
- Added version as constant DOMINIONVERSION to WADebug.lib
- Libraries have been modified to meet the WAJAF new standards
- Added static init in WADebug, and defined NOWADEBUG to unable the debug for production sites.
- core/ directory renamed to include/
- wa/ directory renamed to core/
- Example debug.php has been added
- JS files have been moved to containers/ and elements/ into js/ directory
- .lib libraries have been moved to base/ , list/ and mask/ directories
- wajaf/ has been moved to include/wajaf/
- core/ has been moved to include/core/
- throwables has been moved to include/throwables
- __autoload.lib has been moved to include/
- The core libraries have been fixed
- Throwable.lib has been renamed as WAThrowable.lib and dependencies fixed

Build 1: 2010-01-22 / NOT STABLE
- Creation of the structure
- Added wa/ directory with the basic WebAbility core object to make Dominion work. Those objects are released under the same licence.
- Added throwables/ directory with all the Dominion exception
- Added core/ directory with all the Dominion libraries
- Added wajaf/ directory with all the wajaf-PHP libraries to build wajaf code
- Added js/ directory with the WAJAF Containers and Elements for Dominion
- Added examples/ directory to put the examples of Dominion
  Files folder image Files  
File Role Description
Files folder imageexamples (10 files, 2 directories)
Files folder imageinclude (1 file, 5 directories)
Files folder imagemessages (4 files)
Files folder imageskins (1 directory)
Accessible without login HTML file index.html Doc. Documentation
Accessible without login Plain text file readme.txt Doc. Please read !

  Files folder image Files  /  examples  
File Role Description
Files folder imageconfig (7 files)
Files folder imagedata (1 directory)
  Accessible without login Plain text file createtable.php Example Example script
  Accessible without login Plain text file date1.php Example Example script
  Accessible without login Plain text file date2.php Example Example script
  Accessible without login Plain text file record.php Example Example script
  Accessible without login Plain text file records.php Example Example script
  Accessible without login Plain text file shm.php Example Example script
  Accessible without login Plain text file table.country.afo Data Auxiliary data
  Accessible without login Plain text file table1.php Example Example script
  Accessible without login Plain text file table2.php Example Example script
  Accessible without login Plain text file utime.php Example Example script

  Files folder image Files  /  examples  /  config  
File Role Description
  Accessible without login Plain text file citizen.php Example Example script
  Accessible without login Plain text file country.php Example Example script
  Accessible without login Plain text file country.xml Data Auxiliary data
  Accessible without login Plain text file db.php Example Example script
  Accessible without login Plain text file footer.php Example Example script
  Accessible without login Plain text file header.php Example Example script
  Accessible without login Plain text file language.php Example Example script

  Files folder image Files  /  examples  /  data  
File Role Description
Files folder imagetables (2 files)

  Files folder image Files  /  examples  /  data  /  tables  
File Role Description
  Accessible without login Plain text file country.xml Data Auxiliary data
  Accessible without login Plain text file countrytest.xml Data Auxiliary data

  Files folder image Files  /  include  
File Role Description
Files folder imagebase (25 files)
Files folder imagecore (13 files)
Files folder imagedatasources (6 files)
Files folder imagepatterns (2 files)
Files folder imagethrowables (12 files)
  Accessible without login Plain text file __autoload.lib Data Auxiliary data

  Files folder image Files  /  include  /  base  
File Role Description
  Plain text file DB_Base.lib Class Auxiliary data
  Plain text file DB_CalcField.lib Class Auxiliary data
  Plain text file DB_Check.lib Class Auxiliary data
  Plain text file DB_Condition.lib Class Auxiliary data
  Plain text file DB_Cursor.lib Class Auxiliary data
  Plain text file DB_Date.lib Class Auxiliary data
  Plain text file DB_Field.lib Class Auxiliary data
  Plain text file DB_FieldDate.lib Class Auxiliary data
  Plain text file DB_FieldDateTime.lib Class Auxiliary data
  Plain text file DB_FieldInteger.lib Class Auxiliary data
  Plain text file DB_FieldLob.lib Class Auxiliary data
  Plain text file DB_FieldReal.lib Class Auxiliary data
  Plain text file DB_FieldText.lib Class Auxiliary data
  Plain text file DB_FieldVarchar.lib Class Auxiliary data
  Plain text file DB_Join.lib Class Auxiliary data
  Plain text file DB_JoinCondition.lib Class Auxiliary data
  Plain text file DB_Lob.lib Class Auxiliary data
  Plain text file DB_OrderBy.lib Class Auxiliary data
  Plain text file DB_Record.lib Class Auxiliary data
  Plain text file DB_Records.lib Class Auxiliary data
  Plain text file DB_SubQuery.lib Class Auxiliary data
  Plain text file DB_Table.lib Class Auxiliary data
  Accessible without login Plain text file DB_TableExport.lib Data Auxiliary data
  Accessible without login Plain text file DB_TableImport.lib Data Auxiliary data
  Plain text file DB_uTime.lib Class Auxiliary data

  Files folder image Files  /  include  /  core  
File Role Description
  Accessible without login Plain text file WAClass.lib Data Auxiliary data
  Accessible without login Plain text file WADebug.lib Data Auxiliary data
  Accessible without login Plain text file WAError.lib Data Auxiliary data
  Accessible without login Plain text file WAException.lib Data Auxiliary data
  Accessible without login Plain text file WAFile.lib Data Auxiliary data
  Accessible without login Plain text file WALanguage.lib Data Auxiliary data
  Accessible without login Plain text file WALanguageCompiler.lib Data Auxiliary data
  Accessible without login Plain text file WAMessage.lib Data Auxiliary data
  Accessible without login Plain text file WAObject.lib Data Auxiliary data
  Accessible without login Plain text file WASHM.lib Data Auxiliary data
  Accessible without login Plain text file WASimpleXML.lib Data Auxiliary data
  Accessible without login Plain text file WATemplate.lib Data Auxiliary data
  Accessible without login Plain text file WAThrowable.lib Data Auxiliary data

  Files folder image Files  /  include  /  datasources  
File Role Description
  Accessible without login Plain text file DataSource.lib Data Auxiliary data
  Accessible without login Plain text file FastObjectSource.lib Data Auxiliary data
  Accessible without login Plain text file FileSource.lib Data Auxiliary data
  Accessible without login Plain text file LanguageSource.lib Data Auxiliary data
  Accessible without login Plain text file SHMSource.lib Data Auxiliary data
  Accessible without login Plain text file TemplateSource.lib Data Auxiliary data

  Files folder image Files  /  include  /  patterns  
File Role Description
  Accessible without login Plain text file Multiton.lib Data Auxiliary data
  Accessible without login Plain text file Singleton.lib Data Auxiliary data

  Files folder image Files  /  include  /  throwables  
File Role Description
  Accessible without login Plain text file BadFieldValueException.lib Data Auxiliary data
  Accessible without login Plain text file CoreError.lib Data Auxiliary data
  Accessible without login Plain text file DataSourceError.lib Data Auxiliary data
  Accessible without login Plain text file DB_BaseError.lib Data Auxiliary data
  Accessible without login Plain text file DB_ConnectionError.lib Data Auxiliary data
  Accessible without login Plain text file DB_CursorException.lib Data Auxiliary data
  Accessible without login Plain text file DB_DateException.lib Data Auxiliary data
  Accessible without login Plain text file DB_TableError.lib Data Auxiliary data
  Accessible without login Plain text file DB_uTimeException.lib Data Auxiliary data
  Accessible without login Plain text file FileException.lib Data Auxiliary data
  Accessible without login Plain text file PatternError.lib Data Auxiliary data
  Accessible without login Plain text file SHMError.lib Data Auxiliary data

  Files folder image Files  /  messages  
File Role Description
  Accessible without login Plain text file message.es.xml Data Auxiliary data
  Accessible without login Plain text file message.fr.xml Data Auxiliary data
  Accessible without login Plain text file message.nl.xml Data Auxiliary data
  Accessible without login Plain text file readme.txt Doc. Documentation

  Files folder image Files  /  skins  
File Role Description
Files folder imagecss (1 file)

  Files folder image Files  /  skins  /  css  
File Role Description
  Accessible without login Plain text file dominion.css Data Auxiliary data

Downloaddominion-2012-03-27.zip 115KB
Downloaddominion-2012-03-27.tar.gz 57KB
Install with ComposerInstall with Composer
Needed packages  
Class DownloadWhy it is needed Dependency
DomCore Download .zip .tar.gz part of the core Required
 Version Control Unique User Downloads Download Rankings  
 100%
Total:1,016
This week:0
All time:3,470
This week:942Up