PHP Classes

File: docs/README.txt

Recommend this page to a friend!
  Classes of Stefan Rottensteiner   ClassGenerator   docs/README.txt   Download  
File: docs/README.txt
Role: Documentation
Content type: text/plain
Description: README
Class: ClassGenerator
Generate classes from definitions in XML
Author: By
Last change: Cleared some typos
Date: 15 years ago
Size: 2,018 bytes


Class file image Download
PHP ClassGenerator - V1.0 (C) Rottensteiner Stefan, 2008 The PHP ClassGenerator is smart and simple class to create PHP classes, based on a simple XML description. It' depends on the standard PHP extension XMLReader. Look into the file examples/example_001.php and see a demonstration of all core features. First I have to confess that I've done a lot in Java over the last year and so I've learned a lot about patterns, coding conventions and naming of classes and properies. One of the results of my studies is this class generator. An example XML class description, used in the example: <?xml version="1.0" standalone="yes" ?> <Family xmlns:cgen="" cgen:factMethod="getInstance" > <Mother name="Heidelinde" inCome="2501.0" > <Child cgen:extends="HumanBeeing" name="Anna" sex="female"/> <Child name="Lena" sex="female"/> </Mother> <Father name="Franz" inCome="2500.0"/> </Family> As you can see, it's really simple and nearly self explanory: There are 4 named classes: "Family", "Mother", "Father" and "Child". All of this are predefined, except the "Child" class - it will be generated on the fly. The class "Family" is instantiated with a simply static factory method called "getInstance". Btw., the generator searches also for an attribute called "factClass" and will use this. In my example there is no such attribute so the class "Family" will be used. In order to create the new class "Child", the generator uses the attribute "extends". Yes - it's optional. Property setting strategiy: 1. Use a public or protected setter method "set<elementName>" or "set<attributeName>". 2. Use a public or protected setter method "add<elementName>" or "set<attributeName>". 3. Set a public or protected class member called "<elementName>". A bad side effect is the fact that the generator sometimes has to create derivated classes in order to access the properties. Hopefully I can change this in the next release.