Libraries
For the development of this software I use various libraries and tools. As overall framework
Symfony is used. As connection between Symfony and the database I
use Propel.
Symfony
Propel
To connect to a database in Symfony one can use Doctrine and Propel. By default doctrine is used. I decided against
Doctrine in favour of Propel, since when both are compares none is clearly better (it almost seems to be more of a
religious dispute). One of the advantages of Propel seems to be the better support in developent entvironments,
especially the auto completion. Furthermore the comparisons often say that is is easier to lern Propel, since there is
less "magic behind the scenes". This is why I have decided to used Propel.
Tools
Eclipse
The entire software has been developed using Eclipse PDT.
Database modeling
For the development of the database I used the graphical tool MySQL Workbench.
Conversion of the database to Propel
Propel uses an XML-file as description of the database. From this file Propel generates both the SQL statements to
create the database and the PHP objects. While the can be created by hand, it is more convenient and less prone to
errors to generate this automatically from the MySQL Workbench file. I use the
mysql-workbench-schema-exporter
to do this. With the following command the Workbench file is converted into the Propel schema file:
php cli/export.php --export=propel1-xml database.mwb
This generates the file vereniging.schema.xml, which can be read by Propel. Before Propel can use this file, you have
to insert the property namespace="vereniging" into the line
<database ....
|