Import Propel Project


This short tutorial demonstrates that in Skipper, import of existing Propel project and the following model editing is simple and intuitive.

Hint: See the ORM Model basics for detailed description of ORM elements (e.g. package, entity).

Import project

First, import sample Propel ORM project Jobeet or some of your existing projects. To do this select Import ORM Schema Files from File menu and follow the steps shown in pictures below.

Select Import ORM Schema Files in Skipper file menu
Select Propel ORM in Skipper Import schema defintions wizard
Select Symfony framework in Skipper Import schema defintions wizard

Enter directory to import in Skipper Import schema defintions wizard
Confirm files to import in Skipper Import schema defintions wizard
Wait for project import in Skipper Import schema defintions wizard

Imported project summary screen in Skipper Import schema defintions wizard
Imported Jobeet project diagram in Skipper
Jobeet project model diagram generated by Skipper

The last screen visually represents Jobeet project imported to Skipper and arranged automatically by import algorithm. It is a good starting point to work with your model.

Arrange visual model

Although imported model is automatically arranged it is a good idea to reposition entities inside the packages to exactly fit the model logic. Also, you can change colors of packages according to your preferences.

Rearrange Propel visual model generated by Skipper from definition files
Arranged Propel Jobeet model diagram

Extend project model

Now that you have a nice visual model we are going to show you how to extend Jobeet model to store unlimited number of dynamic attributes for each job. We will add jobeet_job_attribute entity, configure new fields and create association between jobeet_job_attribute and jobeet_job.

Select Propel entity tool in Skipper visual model
Configure new Propel entity in Skipper visual model
New Propel entity created in Skipper visual model

Create new Propel association in Skipper visual model
New Propel association wizard in Skipper
New Propel association created in Skipper visual model

Export model

Now with updated model it is time to export package back to Propel schema definition files. Because package is imported from the existing schema files export is automatically configured to export the data back to these files. Before first export check that export locations and formats are correct.

In Skipper each package represents single exportable element. This means that our project will export two schema definition files, one for sfJobeetPlugin and one for sfGuardPlugin package. Each package can have its own export path, which is relative to project root directory and its own export format. For Propel ORM it is XML or YML.

Edit Propel package settings in Skipper file menu
Configure Propel schema defintion files export settings in Skipper
Click Export to ORM button in Skipper to generate Propel schema definition files
Propel schema defintion files export settings window in Skipper
Propel project schema defintion files export results in Skipper
Propel XML schema definition files exported by Skipper

And here is an example of the new jobeet_job_attribute entity. As you can see, everything is well formatted and exported in Doctrine YML format.

<database name="sfJobeetPlugin" package="plugins.sfJobeetPlugin.lib.model">
  <table_ name="jobeet_job_attribute">
    <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/>
    <column name="name" type="Varchar" size="256" required="true"/>
    <column name="value" type="Varchar" size="1024"/>
    <column name="jobeet_job_id" type="integer" required="true"/>
    <foreign-key foreignTable="jobeet_job">
      <reference foreign="id" local="jobeet_job_id"/>
    </foreign-key>
  </table_>
  ...
</database>

Note: Because of HTML formating problem we used table_ tag instead of table.

Next time you will need to make further changes or to adjust the model, just open Skipper file and edit your project entities. Then again export the project to ORM.

Conclusion

As you can see above, import, editing and export of the schema definition files is five minute work with Skipper (ten if you are doing it for the first time). Now compare it with the effort of doing such task manually. As you have just discovered Skipper dramatically saves your time and helps you to work with schema definitions in much more enjoyable way.

Video tutorials

Import new project

Export project

Import to project