Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

executable file 121 lines (60 sloc) 3.558 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
Development of DB_DataObject

Ok.. major revamp (or 2nd NG thread not feasible... - features will continue to be added gradually..)





Current TODO list:
----------------------------------
    Issue: float support..
Add type support for floats, testing and casting etc..


    Issue: ini structure is big when using many tables.

Intend to move the structure to to footer of the class file.
where it sets the $GLOBALS[_DB_DATAOBJECT][ini][{databasename}]....


    



    Issue: More detailed cached table information

        make available an extra ini file database.details.ini, which contains
        [table__sizes]
        column = size
        
** initially to enable testing of field lenghts etc..
** secondarily to enable database creation...!!





    Issue: Table Rebuilds
        
        ** not really practicall - running with on-the-fly querying should solve this for the most part..
        
        
     
    Issue: Replace

        Mysql has a nice replace feature, It would be nice to have in dataObjects
        
        Solution:
        Add a method, if the database is mysql, use the native 'REPLACE call'
        otherwise, do a select on ID then insert|update..

Maybe??? - bloated api already????

    
    
    Issue: Simplify the connection configuration.
        
        Current suggestion is to replace
            database = dsn
        with
            default_database = dsn
        and treat default more like a database name



    Issue: adding more realms to configuration
        
        Proposal here is to add realms for database dsn's, table mappings etc. along
with hard coding the location of database cache files...
mostly fixed with
{project}_database = dsn
{project}_ini = /location/.....
need to add {project}/dataobject to factory...
Issue: Persistant Storage..
At present DB_DataObject, caches results to get queries, within the same page, this can be
expected to work 'most of the time', as most of the time concurrent updates are not that frequent.
however, it is expected that the object may be used in a situation where this may affect it.
As well as this, there may be times where it is preferable to have persistant storage over a number
of page calls..
The plan here is to implement a configuation option, that defaults to no caching, and can be set
to either
a) do caching withing a single page request (as per current)
b) do full caching with manual clearing...
c) do no caching.....
along with this expanding the quantity of data being cached may be considered.
either this, or a method, that specifically tags something as cachable.......
Issue: $__DB->dsn["database'] does not work with oracle.
        
        Need to work around this somehow... ???
        
    Issue :Generator does not work with oracle..
        
        Looks like it is using the wrong data from the Oracle getTableInfo call...
        
    Issue: use isset rather than @
        
        as it tokenizes down to one opcode, and is 'better practice..'
        
    Issue: dependant deletes.. / updates./ inserts
        
        Links.ini (or the future XML alternative?) could provide details on
        foreign keys - and force the deletion of data that is dependant on
        one item..
        (updates & inserts could also do checks..)
        
 
Something went wrong with that request. Please try again.