Search the Community
Showing results for tags 'propel'.
-
If you are using Vertabelo for creating database models and you access your database with Propel library, you'll find the following instructions useful. Vertabelo is an online, free tool for visual database design. Once you create a model of your database in Vertabelo, you can generate a Propel schema file from it. To do this you'll have to use VertabeloPropel, a PHP script which converts a Vertabelo XML file into Propel's schema.xml file. The script is available on GitHub. Installing VertabeloPropel uses Composer to manage project dependencies. In your project directory create a file composer.json: { "require": { "vertabelo/vertabelo-propel": "*" } } Then run Composer install. composer install This will download VertabeloPropel into the vendor directory in your project directory. The script will be in vendor/bin/vertabelo-propel.php file or, for Windows, in vendor\bin\vertabelo-propel.php.bat. Using VertabeloPropel script 1. Create a database model with Vertabelo. 2. Download the model as an XML file and save it in your project directory (use an option "Export model as XML file" from Vertabelo's tool bar). 3. Generate Propel's schema.xml file. If you want to use the default settings (input file model.xml, output file schema.xml, database name test, default id method native), run in Windows vendor\bin\vertabelo-propel.php.bat in Mac/Linux vendor/bin/vertabelo-propel.php If you want to change the defaults, run in Windows vendor\bin\vertabelo-propel.php.bat -i model.xml -o schema.xml / --database-name bookshop ---default-id-method native in Mac/Linux vendor/bin/vertabelo-propel.php -i model.xml -o schema.xml --database-name bookshop --default-id-method native 4. The script generates Propel's schema.xml file. 5. Proceed with your normal Propel application development (or see "How to develop a PHP+MySQL application with Propel and Vertabelo"). Script options The script options are: --input-file (shortcut -i) location of Vertabelo XML file (default value "model.xml") --output-file (shortcut -o) location of output Propel schema.xml file (default value "schema.xml") --database-name name of the database (default value "test") --default-id-method database's defaultIdMethod. Allowed values are “native” or “none”, default value is "native". --help prints the help message --------------- The above information was originaly published on Vertabelo's blog.
-
So I have a few tables configured in Propel, with generated Peer static classes. This is the framework I have to use and I cannot change it. The problem is that I need to perform very similar search operation on different tables, that obviously have different Peer classes. This lead to duplicated code. Now, I am not such that great guru of PHP, so maybe there is some construct (avoiding eval) that might help me in this case; I really would like to avoid writing duplicated code that performs the same exact calls on just different static Peer classes. example from a method of a class I am writing: $criteria = new Criteria(); $criteria->add(FoobarPeer::CONTRACTNR,$data['contractnr']); $result = FoobarPeer::doSelect($criteria); if(count($result) > 1){ throw new FoobarException("status: more than one row with the specified contractnr."); } if(count($result) == 0){ // no object with given contractnr. Create new one. $obj = $this->factory->createORM("foobar"); $obj->setCreatedAt(time()); } else { // use and update existing object. $obj = $result[0]; } (as you can see I managed to write a factory method for the row object, but obviously I cannot do this for static classes) Anyone got some nice solution? thanks P.S. sorry for my approximative english
- 3 replies
-
- php
- static-methods
-
(and 3 more)
Tagged with: