Used to generate fake data for a project, used to help testing and ease the tedious task of writing fixtures. Fixtures is for data that must be loaded everytime not only in test but Admin user etc. This is more for testing and layout reasons to see how things looks and pagination etc works. Tries to be a port of the Faker gem (Benjamin Curtis ) and Populate gem (Ryan Bates ) At current time this can be used with both Propel and Doctrine because it dosent provide and ORM dependent code. Both markup and config files are in the loving PHP language but it is ment to use YAML with time to reduce the code written. Should only be used from command line eg. populate:run #FILENAME.php# if no filename is specified all files are run through one by one #FILENAME.php# should be located in data/populate/#FILENAME.php# NOTE: This is extremly alpha and stuff is subject to change at anytime (Syntax, usage, naming etc) even tho it tries to follow the Symfony and PEAR convention for coding and usage. USAGE: All functions in the Populate (at least the public ones) are Static and should be called Populate::methodname($numbers, $options = array()) for($i = 1; $i <= rand(10, 100); $i++) { $author = new Author; $author->setUsername(); $author->setPassword(); $author->save(); for($j = 1;$j <= rand(100, 200); $j++) { $article = new Article; $article->setAuthor($author); $article->setTitle(); $article->setBody(); $article->setCreatedAt(); $article->setUpdatedAt(); $article->save(); for($k = 1;$k <= rand(1000, 10000);$k++) { $comment = new Comment; $comment->setArticle($article); $comment->setAuthor($author); $comment->setBody(); $comment->save(); for($l = 1; $l <= rand(10,20);$l++) { $commentReply = new Comment; $commentReply->setParent($comment); $commentReply->setAuthor($author); $commentReply->setBody(); $commentReply->save(); } } } }