DbFinderPlugin: The ORM isn't important anymore

Today I tried the DbFinderPlugin for the first time. I am truely impressed. Using this plugin, it is not necessary anymore to really care about which ORM you pick for your project. It's the thought behind symfony 1.1 taken into the symfony ORM-selection.

One of the most important changes in symfony 1.1 was the creation of the symfony platform, the core of symfony had it's classes completely refactored into a fully decoupled set of classes that could easily be picked or overruled when required. It meant total independence of those classes whenever you would choose to do that. An excellent path to go for symfony, as it gives more control to the developer.

With the ORM, that was not fully possible. You would still have to write your code ORM-specific. For Propel, you'd use the Criteria object to build your query, and for Doctrine, you'd use the (slightly more beautiful) chaining of methods to build a query. But if you'd written code for one, you could not easily change to the other. Even moving from Propel 1.2 to Propel 1.3 would offer some challenges.

Enter the DbFinderPlugin, a plugin written by Francois Zaninotto. This seems to be the ultimate solution in writing code that is portable between the different ORM's. When used consistently throughout a project, switching to another ORM should be as simple as installing and configuring the new ORM plugin, configuring your databases.yml, and that's it. DbFinderPlugin will take care of the rest.

I see two very important advantages for the usage of this plugin:

  • Plugin development - Using DbFinderPlugin, it's now very easy to write plugins that don't care about the ORM you are using. The community will benefit a lot from this, as all plugin authors that use this plugin will now write plugins that are compatible with all ORMs. And the plugin authors will benefit a lot from this as well, since it will make their life a lot easier in writing plugins for all ORMs
  • Project development - You don't really need to think about which ORM you need to use up front. You just start with the default Propel with DbFinderPlugin. Then, as the project advances, you can decide what you prefer: Propel or Doctrine. Or you make a choice at the start of your project, but halfway a technical requirement makes you reconsider that choice: switching should now be very easy. No need to rewrite all your queries anymore.
The only possible downside at this point is that Doctrine is not fully supported yet. Propel 1.2 and Propel 1.3 are fully supported already though, so at least switching to the speed and efficiency of Propel 1.3 is already possible. As Doctrine-support is completed, I see a bright future for this plugin and symfony development in general.
Add comment

Comments

gravatar Dirty Dancing Soundtrack Lyrics Twilight The Movie Soundtrack 2008: the bass side up first... archtop often have 3-a-side pegheads as well as neck that is very similar in width to a steel-string acoustic rather than an electric. high end versions normally have block or perhaps trapezoid position markers. famous jazz guitarists
May 15, 2013
gravatar voice recorder voice activated: digital voice recorder transcribing equipment. i use an olympus ws-300m 256 mb digital voice recorder that can be purchased for about $79. 1/8 inch mic in & stereo line out. record more detail up-close with a compatible microphone, or add headphones for easy transcriptions. usb flashdrive/voice recorder.
June 5, 2013
gravatar Finding Career Pathways: certified nursing assistant cna work charlotte nc sometimes entrepreneurs can imagine, or envision a need that other people don't see immediately. introductory nursing courses provide explanations about the history of nursing; the theories that involve nursing and the way they have been modified today; as well as the ethical and legal matters in the realm of nursing and healthcare.
June 6, 2013
gravatar best lawn fertilizer: their purpose is to protect and keep healthy all plants, trees, shrubs, soils, flowers and hardscapes. the rich, black, earthworm-made fertilizer is odorless, crumbly like ground coffee, and easy to handle. organic garden fertilizers: fertilizers for organic gardening should be made up of natural ingredients. i recommend this to those who are very serious about cutting feed costs and eating pastured pork. the organic seaweed fertilizer will provide a wide range of nutrients and help reduce the amount of stress on the young
June 6, 2013
gravatar Make A Fax Cover Sheet Online: all types of borrowers can avail this loan service even if they are holding arrears, insolvency, defaults, bankruptcy, foreclosures and so on. as for a review of your job when they finish and be sure that you are only paying for the numbers that received your fax. fax templates for officeready professional. let's face it fax covers and memos are not typically the most. fax template pack. get 30 interesting fax cover sheet designs that feature the automatic profile feature. hipaa fax cover sheet. what is a hipaa fax cover sheet? does my medical office really need a special fax cover sheet to be hipaa compliant? the health insurance portability and accountability act of. 1.genuine citizenship of uk they may store the documents on secure websites, which require that you log in with a password in order to view the files.fax by email it's as easy as it sounds
June 6, 2013

Php5_zce_logo

Tags

1337 2008 2010 2011 4developers access modifiers accessibility AdaLovelaceDay09 advent agavi agile alfred amsterdam amsterdamphp apache api apple article articles atk atkMetaNode audioscrobbler autoloading automation azure backwards compatibility barcelona barcodes bash bbc bbq beatstad belgium best practices bittorrent blogging blogs boards of canada book books bughuntday bundle caching cake cal evans calendar career cat cerf certificate cfp cilex clear cms cologne common sense communities community components composer conference conferences contest continuous integration contribute contribution crisis css curl custom d-day data migration datetime DbFinderPlugin decorator decorators deployment deps devdays development directoryindex directoryiterator docblox doctrine doctrine2 documentation download dpc dpc09 dpc10 dpc11 DPC2008 dreamhost drupal dv7 eclipse ed editors efficiency enterprise errors event events expertise ezcomponents facebook filter-branch filteriterator finland flickr fork framework frameworks free ticket freelance freeze frontend fun game games geoip germany getting real git github globiterator gnome-do google google calendar googletalk graceful degradation hack hackers hidden gem hiphop howto hp HR html http i386 ibuildings icann ide ideasofmarch idm imovie inclusivity indy ingewikkeld integration international php conference internet interview ipad IPC ipc ipc08 ipc10 ipc11se iterators iterm2 javascript jenkins jenkins-php job job openings jobeet john peel joomla joomladays kiva kubuntu launcher launchy left on the web libcurl libraries library lighttpd lime linktuesday linux live london loudblog m2ts mac magazines malware mambo manchester marjolein mediterra meeting meme meta methodology micro-financing microframework microsoft migration movie music mysql namespace namespaces netbeans netherlands newsfire nllgg northeastphp nos odmarco open source opinion ORM osx paradiso paris partnership pavilion pear pecl performance personal pfc10 pfc11 pfcongres pfcongrez pfz pfz.nl photo php PHP php5.3 phpabstract phpazure phpBB phpbb phpbelgium phpbenelux phpbnl10 phpday phpdoc phpdocumentor phpgg phpitalia phpnw phpnw08 phpnw11 phpnw12 phpstorm phptek phptek09 phpuk2009 phpUnderControl phpunit php|architect php|tek podcast politics portability postcrossing presentation presentations private projects protected prototype PSR-0 public python qa qr codes re2c recruiting refactoring review rewrite ruby on rails san francisco schedule scifi script security sensio seven things sexism sfdaycgn sflive2011 shell scripting silex simplexml slides smfony software sogeti solar sound speakers spl ssh standard standards star trek static steer strings stylesheets subversion symfony symfony live symfony2 Symfony2 symfonycamp symfonyday symfonylive symfonyUnderControlPlugin talk talks tech techademy technology techportal tek09 telecommuting terratec terrorism testfest testing textmate textpattern the right tool timeout tips tld todo tomas tools training twig uncon unet usability usergroup validation vhost video vim vinyl virus warp webinar weblogging webservices wiki windows winphp women wordpress work workshop world world of warcraft wpi writing wunderlist xml xpath xsd yara year youtube zc11 ZCE zemanta zend zend framework zend server zend studio zendcon Zend_Form zite
© 2004 - 2013 Stefan Koopmanschap + Powered by Symfony, photos powered by Flickr, links powered by Delicious, Shanghai smilies by Iconbuffet. Feeds: rss / atom. Left on the Web v4.4.0.1