Quote from: Mark at May 01, 2011, 07:56 AM
Didn’t see this mentioned yet - but the xPDO layer allows database abstraction which makes it able of working on different database systems. 2.1 also supports sqlsrv next to mysql.
IIRC the structure is there in the Evo code core for a non-MySQL DBAPI. Probably the reason that no one has taken advantage of this though is the same reason that the ability to use non-MySQL databases is such a non-issue for the vast majority. Just how many here have had to build a website where they were not able (or even
considered not using) MySQL?
Quote from: Mark at May 01, 2011, 07:56 AM
Also - the underlying database structure can me modified to be more efficient / make more sense, while keeping a clean upgrade path if you use the recommended object approach.
How would you want to modify the db structure? I’m not being rhetorical - though I admit to being skeptical as to any realistic practical advantage.
Quote from: Mark at May 01, 2011, 07:56 AM
Probably the biggest reason to learn/use xPDO is because it’s OOP - Object Oriented Programming. You can do it without, but there are some distinct advantages on it that Google can tell you about better than I can.
Whilst OOP has gained wide acceptance and I use it where appropriate - e.g. for using on colaborative projects for encouraging good working practices that are conducive to future robustness and ease of maintainence - its not a cure-all.
Again, whilst Google will indeed produce a vast quantity of articles (often involving no critical thought and often just copied/plagiarised) describing OOP as such a cure-all, it will also produce some more balanced original articles that whilst citing its advantages, cite its disadvantages (or simply just say why its not always the big deal its made out to be).
The majority of small/medium size websites rarely involve more than a small number of programmers (probably rarely involve more than one programmer) in addition to the designer/HTML/CSS coder. Furthermore future rebuilds are more than likely going to be complete ground-up rebuilds (I do not claim this to be always the best course of action - I am just saying that this happens). In such cases OOP is probably of little advantage.
Incidentally I do think the OOP core of Evo (and I presume Revo is similar) is worthwhile - in this case there are many thousands of programmers who use the MODx API (Evo or Revo), and hence the ’clerical’ aspects of the MODx core developers being able to decide just which methods/properties are public have clear advantages.
Edit: Having took a quick look I’m not actually sure to what extent this aspect is utilised after all.
-- Tim.