<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:base="http://www.symfony-project.org/community">
  <title>symfony Blog Quotes</title>
  <link href="http://www.symfony-project.org/community" />
  

  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/symfony/planet" /><feedburner:info uri="symfony/planet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>Simple bash script to update Symfony2</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/e_p2hlzvBjI/Simple-bash-script-to-update-Symfony2" />
    <id>a071c05c08fc0ce365754ddd623a497b</id>
    <author>
      <name>COil</name>
    </author>
    <updated>2012-02-09T17:16:00Z</updated>
    <content type="html">
                  &lt;p&gt;As you noticed there are &lt;a href="http://symfony.com/blog/category/releases"&gt;frequent maintenance releases of Symfony2&lt;/a&gt;, the &lt;a href="http://symfony.com/blog/symfony-2-0-10-released"&gt;2.0.10 version is already out&lt;/a&gt;. To avoid doings thing manually I use this simple bash script to make the update: (It works with a Symfony2 standard edition). To use it, just launch the script at the root of your project: (be careful as it will delete your vendor directory)
&lt;br /&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;./update_symfony 2.0.10&lt;/p&gt;&lt;/blockquote&gt;

&lt;h5&gt;The bash script:&lt;/h5&gt;
&lt;script src="https://gist.github.com/1780897.js?file=gistfile1.sh"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;
See you. &lt;img src="/themes/blue-fashion/smilies/rofl.gif" alt=":)" class="smiley" /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other related posts;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://symfony.com/doc/current/cookbook/workflow/new_project_git.html#managing-vendor-libraries-with-bin-vendors-and-deps" title="http://symfony.com/doc/current/cookbook/workflow/new_project_git.html#managing-vendor-libraries-with-bin-vendors-and-deps"&gt;http://symfony.com/doc/current/cook...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geekos.fr/11/2011/mettre-a-jour-symfony-2/" title="http://geekos.fr/11/2011/mettre-a-jour-symfony-2/"&gt;http://geekos.fr/11/2011/mettre-a-j...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ajado.com/blog/how-to-upgrade-from-one-symfony2-distribution-to-another/" title="http://www.ajado.com/blog/how-to-upgrade-from-one-symfony2-distribution-to-another/"&gt;http://www.ajado.com/blog/how-to-up...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/e_p2hlzvBjI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.strangebuzz.com/post/2012/02/09/Simple-bash-script-to-update-Symfony2</feedburner:origLink></entry>
  <entry>
    <title>Une semaine symfonique #266 - du 30 janvier au 5 février 2012</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/kIEZwxeSc7M/Une-semaine-symfonique-266-du-30-janvier-au-5-f%C3%A9vrier-2012" />
    <id>22a166a167cdd87b7442fff3175eca91</id>
    <author>
      <name>COil</name>
    </author>
    <updated>2012-02-08T21:34:00Z</updated>
    <content type="html">
              &lt;h5&gt;Post original: &lt;a href="http://symfony.com/blog/a-week-of-symfony-266-30-january-5-february-2012"&gt;A week of symfony #266 (30 January -&gt; 5 February 2012) )&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;&lt;br /&gt;
Cette semaine une montagne de bugs ont été corrigés sur la branche "master" Symfony2 ainsi que de nombres améliorations et re-factorisaions concernant les composants "Formulaire" et "Validation". De plus, &lt;a href="http://github.com/symfony/symfony"&gt;le dépôt officiel Symfony2&lt;/a&gt; a atteins la limite symbolique des 1000 "forks".
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;    &lt;h4&gt;Mailing liste de développement:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://groups.google.com/forum/?fromgroups#!topic/symfony-devs/-fGrFRy6Tv4"&gt;A note on PR reviews&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://groups.google.com/forum/?fromgroups#!topic/symfony-devs/0Ez-TpsC3I0"&gt;Doctrine/entityManager memory leaks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;Développement Symfony2, l'essentiel:&lt;/h4&gt;

&lt;h5&gt;&lt;a href="https://github.com/symfony/symfony/commits/2.0"&gt;Branche 2.0&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/a1b6d4c46b43d8a798eeec5807670bf675917cb8"&gt;a1b6d4c&lt;/a&gt;: [DependencyInjection] added a failing testcase for escaped % in array parameters&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/048fc2f6b9198d35a96d64c5856c6accc7554447"&gt;048fc2f&lt;/a&gt;: [Form] fixed broken MoneyType test for JPY&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/8e13095e5c584e3f693c3789148440411df816a0"&gt;8e13095&lt;/a&gt;, &lt;a href="http://github.com/symfony/symfony/commit/a7b48c058b50e221d469b7c137c05bfec7118688"&gt;a7b48c0&lt;/a&gt;: [DependencyInjection] fixed the unescaping of parameters to handle arrays&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;&lt;a href="https://github.com/symfony/symfony/commits/master"&gt;Branche "Master"&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/a676598d74195da6558b8e6060825773f6f0f3f9"&gt;a676598&lt;/a&gt;, &lt;a href="http://github.com/symfony/symfony/commit/57cc5313852ca788e11ae7eb24ffd52e0049c27c"&gt;57cc531&lt;/a&gt;: [Form] added class LazyChoiceList&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/307f17d33b65198ffacbb688406670ede7b5fa73"&gt;307f17d&lt;/a&gt;: [FrameworkBundle] code factorization in TraceableEventDispatcher&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/5aa5987aa423abff7b505c9eaa93f0180d9e82d4"&gt;5aa5987&lt;/a&gt;: [Form] fixed form children are always validated in group Default&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/dbd3a1bcc06dd735ba381af388fa818d3b68f342"&gt;dbd3a1b&lt;/a&gt;: [Security] allowed unsetting parentAcl on MutableAclInterface&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/1678a3dbdf09c4d5b41e2af627fbd09a1cee0148"&gt;1678a3d&lt;/a&gt;: [Validator] fixed Validator::validateValue() propagates empty validation root instead of the provided value&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/1dd302cbea8c48ce38b1712a1c3271b1f9fdcd1e"&gt;1dd302c&lt;/a&gt;: [Validator] fixed ConstraintViolationList::__toString() to not include dots in the output if the root is empty&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/f904a9ed535b0f5536d5a92cd5772d35eb5cc088"&gt;f904a9e&lt;/a&gt;: [Validator] fixed GraphWalker does not add constraint violation if error message is empty&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/a103c28b08e6a60c8e1fdb693976ede4c86f015a"&gt;a103c28&lt;/a&gt;: [Validator] the Collection constraint adds 'missing' and 'extra' errors to the individual fields now&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/de253dd3dd8c37bff89564b856fdaa7efad4d816"&gt;de253dd&lt;/a&gt;: [Form] added read_only and disabled attributes&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/fe85bbdb06fa1a9c7cd5c01ba5b28893b4ad0caa"&gt;fe85bbd&lt;/a&gt;: [Validator] simplified ExecutionContext::addViolation() and added ExecutionContext::addViolationAt()&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/a30a6791356099513fbda27ecd8a0c6ec5fc984f"&gt;a30a679&lt;/a&gt;: [Validator] made ExecutionContext immutable and introduced new class GlobalExecutionContext&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/9153f0e5691e67e343222b44f30034828680536c"&gt;9153f0e&lt;/a&gt;: [Validator] deprecated ConstraintValidator methods setMessage(), getMessageTemplate() and getMessageParameters()&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/3c28ab7abdc45626d44757ab95ec8a10604cfbd9"&gt;3c28ab7&lt;/a&gt;, [c373d5b|http://github.com/symfony/symfony/commit/c373d5b6568ac93ab1d7496d2254b1b6bd8e44d5): [Routing] no prefix is required to override imported RouteCollections&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/e9b4c584c0e0d6c74f0d127b78260c04932c8d37"&gt;e9b4c58&lt;/a&gt;: [Console] enable process isolantion in shell&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/7cecb4e71e4423c36b2a8c7c74cd4b2e78d049e8"&gt;7cecb4e&lt;/a&gt;: [Form] added support for parent of FormBuilder&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/2e4ebe444f8deb17907f50e1e130efc9dee6b364"&gt;2e4ebe4&lt;/a&gt;: [Validator] renamed methods addViolationAtRelativePath() and getAbsolutePropertyPath() in ExecutionContext&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/7837f50c735d4be26f8c47853a1a64e309ae0ea9"&gt;7837f50&lt;/a&gt;: [Form] added FormUtil::singularify()&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/49d1464b43ba23312b72586e57289dbaef126484"&gt;49d1464&lt;/a&gt;: [Form] implemented MergeCollectionListener which calls addXxx() and removeXxx() in your model if found&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/9b0245b57b170adcab262e2df57caa9c2966b1c6"&gt;9b0245b&lt;/a&gt;: [Form] made prefix of adder and remover method configurable&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/9a4e22efe791994f829ccdea31c4c775401561bc"&gt;9a4e22e&lt;/a&gt;: [Form] disallowed infinity in NumberToLocalizedStringTransformer&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/d208f4e0deb58db5cf677cfdc0ca8bad862da182"&gt;d208f4e&lt;/a&gt;: [Form] made it possible to use models with only either addXxx() or removeXxx()&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/b39377402bf7c9284854b6e2be7cd23b5d12f64e"&gt;b393774&lt;/a&gt;: [Form] used direct method access in MergeCollectionListener instead of Reflection to avoid problems when using class hierarchies&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/02f61adcc54252d8828ac6629cb806bd20f8e7a1"&gt;02f61ad&lt;/a&gt;: [Form] renamed choice and collection options 'adder_prefix' and 'remover_prefix' to 'add_method' and 'remove_method' and allowed to specify full method names&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/8dc40e4d2928ac343b08ae786cef0da1a38130c2"&gt;8dc40e4&lt;/a&gt;, &lt;a href="http://github.com/symfony/symfony/commit/4847d3ad35ef38ba661e65cfee2981a1d9501f15"&gt;4847d3a&lt;/a&gt;: [FrameworkBundle] added config:dump-reference console command&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/58939f16f3b64c98f37d6267f114c2ae2ff6c615"&gt;58939f1&lt;/a&gt;, &lt;a href="http://github.com/symfony/symfony/commit/97579587c109b43ca4c8aa35c73c88cd8b01b780"&gt;9757958&lt;/a&gt;, &lt;a href="http://github.com/symfony/symfony/commit/2f8ad93db84660db44571f0182b4d3514112c741"&gt;2f8ad93&lt;/a&gt;, &lt;a href="http://github.com/symfony/symfony/commit/fa32885ea30ba1fe4d0d96aaad3dbd0e602e5b47"&gt;fa32885&lt;/a&gt;: added configuration docs for TwigBundle (reverted)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/bd461e295d3cbceee0647f43f1abfb58257a1bb6"&gt;bd461e2&lt;/a&gt;: [Form] forms now don't create empty objects anymore if they are completely empty and not required. The empty data for these forms is null&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/0753cee11a92c3b5415529ba17452b1b111a3914"&gt;0753cee&lt;/a&gt;: [Form] fixed read_only attribute for expanded fields&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;Plugins symfony1 mis à jour:&lt;/h4&gt;

&lt;h5&gt;&lt;a href="http://www.symfony-project.org/plugins/apostrophePlugin"&gt;apostrophe&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;fixed bug that caused page forms not to work&lt;/li&gt;
&lt;li&gt;refactored getEmbedCode() so it doesn't instantiate embed services twice and doesn't crash if the service URL is bogus and the width and height aren't known&lt;/li&gt;
&lt;li&gt;don't cache non-200 OK responses, it leads to SEO problems&lt;/li&gt;
&lt;li&gt;refactored nonrecursive version of aFiles::rmRf&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a href="http://www.symfony-project.org/plugins/apostropheBlogPlugin"&gt;apostropheBlog&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;fix for XSS attack&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;Ils s'en ont parlé:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://symfony-world.blogspot.com/2012/01/symfony-range-filter.html"&gt;symfony range filter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://php-and-symfony.matthiasnoback.nl/2012/01/silex-getting-your-project-structure-right/"&gt;Silex: getting your project structure right&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sf.khepin.com/2012/01/doctrine-sluggable-and-transliteration/"&gt;Doctrine Sluggable and Transliteration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://keiruaprod.fr/blog/2012/01/30/creez-votre-propre-framework-avec-les-composants-symfony2-partie-10/"&gt;Créez votre propre framework ... avec les composants Symfony2 (partie 10)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nerdpress.org/2012/01/30/silex-and-mongodb-simply/"&gt;Silex and MongoDB simply&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sf.khepin.com/2012/01/loading-yaml-fixtures-in-symfony2-and-doctrine2/"&gt;Loading Yaml Fixtures in Symfony2 and Doctrine2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.strangebuzz.com/post/2012/01/31/Une-semaine-symfonique-265-du-23-au-29-janvier-2012"&gt;Une semaine symfonique #265 - du 23 au 29 janvier 2012&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.micayael.com/2012/01/31/servicios-rest-usando-silex-micro-framework-php-symfony-ii/"&gt;Servicios REST usando Silex micro-framework 2/2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://keiruaprod.fr/blog/2012/02/02/creez-votre-propre-framework-avec-les-composants-symfony2-partie-11-2/"&gt;Créez votre propre framework ... avec les composants Symfony2 (partie 11)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://php-and-symfony.matthiasnoback.nl/2012/02/silex-set-up-your-project-for-testing-with-phpunit/"&gt;Silex: set up your project for testing with PHPUnit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.hometips.de/internet/php/7-security-symfony-2-tutorial-webdevs-blog/"&gt;Security – symfony 2 Tutorial – webdev’s Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/kunikiya/20120205/1328428094"&gt;symfonyでバッチ処理&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tomaszslazok.pl/2012/02/symfony-plugins-1-act-as-sortable/"&gt;Symfony Plugin #1: Act As Sortable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ylxeluxi.tk/2012/02/dynamic-embedded-forms-in-symfony.html"&gt;Dynamic embedded forms in symfony&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://onesandzeros.posterous.com/reset-database-before-phpunit-tests-in-symfon"&gt;Reset database before phpunit tests in Symfony2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.myrant.net/2012/02/02/symfony-1-4-doctrine-1-2-ms-sql-server/"&gt;Symfony 1.4 Doctrine 1.2 MS SQL Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.hagedörner.de/2012/02/01/symfony-2-auf-dem-mac-einrichten/"&gt;Symfony 2 auf dem Mac einrichten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://docolog.cocolog-nifty.com/papalog/2012/02/esc_raw-0fe1.html"&gt;symfony HTMLタグを含む文字列をエスケープせずに出力する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.learnwebdev.com/?p=1426"&gt;Symfony2 ExtJS generator – Uigen – (1. update) – type recognition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://itfunz.info/79.html"&gt;How to reduce admin generator query in Symfony 1.4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sunzhen.blogspot.com/2012/02/symfony-build-model-error-unable-to.html"&gt;Symfony build model error: Unable to return affix for unknown CreoleType&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.etreoblog.com/login-en-symfony-sin-usar-sfguardplugin"&gt;Login en Symfony sin usar sfGuardPlugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://it.blog.adclick.pt/php/symfony/form-choice-filter-auto-sort-by-name/"&gt;Form choice filter auto sort by name&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://musclehunter.blogspot.com/2012/01/symfony-symfony.html"&gt;symfonyはじめました-symfonyのインストール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://php.html.it/articoli/leggi/3912/autenticazione-con-facebook-in-applicazioni-symfony/"&gt;Autenticazione con Facebook in applicazioni Symfony&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ozonesolutions.com/programming/2012/01/symfony-including-extra-libraries-or-classes/"&gt;Symfony including extra libraries or classes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jamrojo.com/symfony-2-vs-code-igniter/"&gt;Symfony 2 vs Code Igniter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tyudon.com/?p=1673"&gt;PHPメンターズ -&gt; Symfonyで複雑なバリデーションを行う方法&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
  &lt;img src="http://www.mcherifi.org/wp-content/uploads/2009/10/formulaires_symfony.jpg" width="250" alt="" title="" /&gt;
&lt;/div&gt;
          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/kIEZwxeSc7M" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.strangebuzz.com/post/2012/02/08/Une-semaine-symfonique-266-du-30-janvier-au-5-f%C3%A9vrier-2012</feedburner:origLink></entry>
  <entry>
    <title>Don't miss the Confoo Conference 2012</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/ImfKuW8GPcI/dont-miss-the-confoo-conference-2012" />
    <id>881f3788c564b1ff492007f3378ed0e1</id>
    <author>
      <name>webmaster@apprendre-php.com (Hugo Hamon)</name>
    </author>
    <updated>2012-02-08T13:27:09Z</updated>
    <content type="html">
              
    
      &lt;p&gt;The Confoo Conference is the most exciting conference I've experienced so far. The venue is awesome and the quality of talks is excellent. This year, the best speakers in the world will join the conference and talk about trendy web technologies topics like PHP, HTML5, JavaScript, Ruby, Python, Java, Scala, NodeJS...&lt;/p&gt;

&lt;p&gt;You &lt;strong&gt;should not miss it&lt;/strong&gt; if you are near Montreal. The first two days of the event are dedicated to &lt;a href="http://confoo.ca/en/2012/training" title=""&gt;workshops&lt;/a&gt; on monday 27th and tuesday 28th of February. These workshops will cover interesting topics like PHP best practices, HTML 5 and accessibility, security and Symfony. &lt;a href="http://sensiolabs.com" title=""&gt;SensioLabs&lt;/a&gt; will also be there to provide a &lt;a href="http://confoo.ca/en/2012/session/diving-into-symfony2-advanced-features" title=""&gt;Symfony2 advanced workshop&lt;/a&gt;. If you want to improve your skills with Symfony2, you will have the chance to be trained by an official SensioLabs trainer: me! The number of seats are limited and my training session is almost full. Don't wait a minute a book your training day at a special fare of $700.00 CAD (+ tax.).&lt;/p&gt;

&lt;p&gt;&lt;img src="http://confoo.ca/images/propaganda/2012/en/250_cloud.jpg" alt="" title="" /&gt; &lt;img src="http://confoo.ca/images/propaganda/2012/en/250_php.jpg" alt="" title="" /&gt; &lt;img src="http://confoo.ca/images/propaganda/2012/en/250_security.jpg""" alt="" /&gt; &lt;img src="http://confoo.ca/images/propaganda/2012/en/250_python.jpg" alt="" title="" /&gt; &lt;img src="http://confoo.ca/images/propaganda/2012/en/250_security.jpg""" alt="" /&gt; &lt;img src="http://confoo.ca/images/propaganda/2012/en/250_html5.jpg" alt="" title="" /&gt;&lt;/p&gt;

&lt;p&gt;Then, for the last three days, there are &lt;a href="http://confoo.ca/en/2012/sessions" title=""&gt;more than 160 conference sessions&lt;/a&gt; split in 10 tracks about PHP, security, testing, Ruby, Java, Python, HTML5, Scala, NodeJS, mobile and many more trendy topics. With such a wide choice, you will have the chance to discover and learn more about the best tools and techonologies from the best experts in world.&lt;/p&gt;

&lt;p&gt;Below is a list of the announced top speakers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fabien Potencier (Symfony and Twig lead developer)&lt;/li&gt;
&lt;li&gt;Derick Rethans (XDedug lead developer)&lt;/li&gt;
&lt;li&gt;Ilia Alshanetsky (PHP core developer)&lt;/li&gt;
&lt;li&gt;Andreï Ziemvski (PHP core developer)&lt;/li&gt;
&lt;li&gt;Sebastian Bergman (PHPUnit lead developer)&lt;/li&gt;
&lt;li&gt;Arne Blankerts (PHPDocx lead developer)&lt;/li&gt;
&lt;li&gt;David Zuelke (Agavi framework lead developer)&lt;/li&gt;
&lt;li&gt;Joshua Hull (Twitter)&lt;/li&gt;
&lt;li&gt;Karl Dubost (Opera software)&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to know more about the schedule, just look at the Confoo Conference website: http://confoo.ca&lt;/p&gt;
    
            &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/ImfKuW8GPcI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hugohamon.com/en/blog/dont-miss-the-confoo-conference-2012</feedburner:origLink></entry>
  <entry>
    <title>Se publica Symfony 2.0.10</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/Mvy5ab8nNLI/" />
    <id>5d3141a72c765da1fb6426ee0d12c459</id>
    <author>
      <name>Javier Eguiluz</name>
    </author>
    <updated>2012-02-06T13:25:42Z</updated>
    <content type="html">
              &lt;p&gt;El proyecto Symfony acaba de publicar la versión 2.0.10. La principales novedades respecto a la versión anterior son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Twig se ha actualizado a la versión 1.6 (&lt;a href="http://blog.twig.sensiolabs.org/post/17021270421/twig-1-6-0-released"&gt;ver novedades&lt;/a&gt;). Esta actualización corrige un problema de Assetic en el entorno de producción.&lt;/li&gt;
&lt;li&gt;Doctrine2 se ha actualizado a sus últimas versiones estables.&lt;/li&gt;
&lt;li&gt;Se han corregido pequeños errores (&lt;a href="https://github.com/symfony/symfony/blob/2.0/CHANGELOG-2.0.md"&gt;ver &lt;em&gt;changelog&lt;/em&gt; completo&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para actualizar tus aplicaciones, modifica primero el valor de los archivos &lt;code&gt;deps&lt;/code&gt; y &lt;code&gt;deps.lock&lt;/code&gt; por los siguientes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.github.com/symfony/symfony-standard/v2.0.10/deps"&gt;Archivo deps de Symfony 2.0.10&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.github.com/symfony/symfony-standard/v2.0.10/deps.lock"&gt;Archivo deps.lock de Symfony 2.0.10&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Y después ejecuta el siguiente comando para descargar los cambios:&lt;/p&gt;
&lt;pre&gt;$ php bin/vendors install&lt;/pre&gt;
&lt;p&gt;Por último, si al ejecutar después la aplicación se muestra algún error, vuelve a borrar la cache manualmente:&lt;/p&gt;
&lt;pre&gt;$ php app/console cache:clear&lt;/pre&gt;
&lt;p&gt;Fuente: &lt;a href="http://symfony.com/blog/symfony-2-0-10-released"&gt;Symfony 2.0.10 released&lt;/a&gt;&lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/Mvy5ab8nNLI" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.symfony.es/2012/02/06/se-publica-symfony-2-0-10/</feedburner:origLink></entry>
  <entry>
    <title>svn blame: who made the bug?</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/VUPxR5HePQQ/svn-blame-who-made-bug.html" />
    <id>74af9888e7df12af49e01cf42f4e8d03</id>
    <author>
      <name>Tomasz Ducin</name>
    </author>
    <updated>2012-02-05T16:48:00Z</updated>
    <content type="html">
              &lt;p&gt;In bigger projects it happens quite often that an unknown team member has made a modification that caused a lot of trouble. And no one wants to confess... It is quite uncomfortable to analyse distinct revisions and changes of a file to find who caused the problem, as it is time consuming. This is where &lt;a href="http://www.linxit.de/svnbook/en/1.0/re02.html"&gt;svn blame&lt;/a&gt; is the perfect tool - you execute it upon a chosen target to display revision number, team member and content line by line. You can easily find who is the author of a bug and when he committed it. It's intereting, that despite being very useful, this tool is not very known.&lt;/p&gt;&lt;h2&gt;blame me if you can find me quickly!&lt;/h2&gt;&lt;p&gt;The usage is very simple:&lt;pre&gt;&lt;br /&gt;tducin@workshop:/var/www/admin/config/doctrine$ svn blame schema.yml&lt;br /&gt;&lt;/pre&gt;and you have the entire file analysed:&lt;pre&gt;&lt;br /&gt;   367     dennis connection: master&lt;br /&gt;   362     tducin&lt;br /&gt;   362     tducin options:&lt;br /&gt;   362     tducin   charset: utf8&lt;br /&gt;   362     tducin   collate: utf8_general_ci&lt;br /&gt;   362     tducin&lt;br /&gt;  3755     george Status:&lt;br /&gt;  3755     george   comment: "Statusy"&lt;br /&gt;   491     dennis   actAs:&lt;br /&gt;  1980     dennis     SoftDelete: ~&lt;br /&gt;  1793     harold     Timestampable: ~&lt;br /&gt;  1793     harold     Signable: ~&lt;br /&gt;   492     tducin   columns:&lt;br /&gt;   492     tducin     name:&lt;br /&gt;  3755     george       type: string(64)&lt;br /&gt;   492     tducin       notnull: true&lt;br /&gt;  2628     tducin       comment: "nazwa"&lt;br /&gt;  3755     george     notify_mail:&lt;br /&gt;  3755     george       type: boolean&lt;br /&gt;  3755     george       notnull: true&lt;br /&gt;  3755     george       default: false&lt;br /&gt;  3755     george       comment: "klient ma być powiadamiany mailowo"&lt;br /&gt;  1541     dennis     stock_mode:&lt;br /&gt;  1541     dennis       type: enum&lt;br /&gt;  1541     dennis       values: [ reserved, sent, cancelled ]&lt;br /&gt;  1541     dennis       default: reserved&lt;br /&gt;  2628     dennis       comment: "tryb magazynowy: reserved, sent, cancelled"&lt;br /&gt;  3755     george     force_reminder:&lt;br /&gt;   892     tducin       type: boolean&lt;br /&gt;   878     tducin       notnull: true&lt;br /&gt;  3755     george       comment: "Wymuszenie dodania wpisu w kalendarzu"&lt;br /&gt;  3755     george     block_update:&lt;br /&gt;  3755     george       type: boolean&lt;br /&gt;  3755     george       notnull: true&lt;br /&gt;  3755     george       comment: "Blokada zmiany statusu"&lt;br /&gt;  4078     harold   indexes:&lt;br /&gt;  4078     harold     softdelete_idx:&lt;br /&gt;  4078     harold       fields: [ deleted_at ]&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3825636150904136311-7154506259371963413?l=symfony-world.blogspot.com' alt='' /&gt;&lt;/div&gt;          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/VUPxR5HePQQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://symfony-world.blogspot.com/2012/02/svn-blame-who-made-bug.html</feedburner:origLink></entry>
  <entry>
    <title>Une semaine symfonique #265 - du 23 au 29 janvier 2012</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/q2DqFG4EJDM/Une-semaine-symfonique-265-du-23-au-29-janvier-2012" />
    <id>34c79611788167a1bb9ff891062e1162</id>
    <author>
      <name>COil</name>
    </author>
    <updated>2012-01-31T13:12:00Z</updated>
    <content type="html">
              &lt;h5&gt;Post original: &lt;a href="http://symfony.com/blog/a-week-of-symfony-265-23-29-january-2012"&gt;A week of symfony #265 (23-&gt;29 January 2012)&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;&lt;br /&gt;
Cette semaine les collecteurs &lt;a href="https://github.com/symfony/symfony/commit/d4300b95a563e39be0f8746a15cb0668e9e47374"&gt;time&lt;/a&gt;, &lt;a href="https://github.com/symfony/symfony/commit/a52c675a467853c88cd1d0e52ea92d846340690d"&gt;logger&lt;/a&gt; et  &lt;a href="https://github.com/doctrine/DoctrineBundle/commit/e987d4f48c8074ab123b348942d1e2501834592e"&gt;Doctrine&lt;/a&gt; ont été améliorés et refactorisés. Pendant ce temps, de nombreux bug ont été corrigés sur le composant Form, particulièrement concernant &lt;a href="https://github.com/symfony/symfony/commit/87b16e7015c02e794c33dbfc05812cf070b4ac68"&gt;l'amélioration de l'interface ChoiceListInterface&lt;/a&gt; et de ses implémentations.
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;    &lt;h4&gt;Mailing liste de développement:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://groups.google.com/forum/#!topic/symfony-devs/vf7SqA50ozk"&gt;Call for volunteers for Netbeans Sf2 plugin development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;Développement Symfony2, l'essentiel:&lt;/h4&gt;

&lt;h5&gt;&lt;a href="https://github.com/symfony/symfony/commits/2.0"&gt;Branche 2.0&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/7f96c8ad176705b5a58503b301d8088c34f6c176"&gt;7f96c8a&lt;/a&gt;: [HttpKernel] prevent php script execution in cached ESI pages using HttpCache&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/c3f0ec74a15873a4c0e9b2fa13c8a15aff0a9fdd"&gt;c3f0ec7&lt;/a&gt;: [DoctrineBundle] made DoctrineBundle fowards compatible with Doctrine 2.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;&lt;a href="https://github.com/symfony/symfony/commits/master"&gt;Branche "Master"&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/3b260d268bd04a8f12608b05b8df4fd1b1f3d1b0"&gt;3b260d2&lt;/a&gt;: refactored the collector to separate the loggers per connection&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/e37783f4f920ba6ba7a6f70295934137d3d45ad0"&gt;e37783f&lt;/a&gt;: [DoctrineBridge] refactored the query sanitization in the collector&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/2a998e01b9c90ba27d77e48287eadc0bc7297b41"&gt;2a998e0&lt;/a&gt;: [FrameworkBundle] handle disabled csrf protection in the PHP templating form helper&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/3a1699a420af5cc9494f10812e7219dfdf407537"&gt;3a1699a&lt;/a&gt;: handle disabled csrf protection in the Twig FormExtension&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/87b16e7015c02e794c33dbfc05812cf070b4ac68"&gt;87b16e7&lt;/a&gt;: [Form] greatly improved ChoiceListInterface and all of its implementations (EntityChoiceList was adapted, the methods getEntities(), getEntitiesByByKeys(), getIdentifier() and getIdentifierValues() were removed/made private. Instead of the first two you can use getChoices() and getChoicesByValues(), for the latter two no replacement exists. ArrayChoiceList was replaced by SimpleChoiceList. PaddedChoiceList, MonthChoiceList and TimezoneChoiceList were removed. Their functionality was merged into DateType, TimeType and TimezoneType)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/e1fc5a5c8c9496cd006a421f880b573ba57ea356"&gt;e1fc5a5&lt;/a&gt;: [Form] restricted form names to specific characters to fix generation of HTML IDs and to avoid problems with property paths&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/f533ef0e1ba28319e84da7729055ea3a8237fe0a"&gt;f533ef0&lt;/a&gt;: [Form] added ChoiceView class for passing choice-related data to the view&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/43e0db5f75ea7ada6321db3e36c4f7af4e1570dd"&gt;43e0db5&lt;/a&gt;: [DomCrawler] add support for multivalued form fields&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/399af275acdb5f4f881139f88a5b9d1910a8da75"&gt;399af27&lt;/a&gt;: [Form] implemented checks to assert that values and indices generated in choice lists match their requirements&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/ed9c34822b71af7c95a4824ff0853b91d87f1bb6"&gt;ed9c348&lt;/a&gt;: [Security] Authentication(Success|Failure)Handler can now return null&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/2dd4bf12835d286ee9b72edada87bbaf0677a157"&gt;2dd4bf1&lt;/a&gt;, &lt;a href="http://github.com/symfony/symfony/commit/c3f637b8343ce0cdde2edfb5dc01e623e01f559c"&gt;c3f637b&lt;/a&gt;: [Form] support for PATCH method in forms&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/d4300b95a563e39be0f8746a15cb0668e9e47374"&gt;d4300b9&lt;/a&gt;, &lt;a href="http://github.com/symfony/symfony/commit/b879397bdab0ea5b951ad8f79c4260bab5ad87c5"&gt;b879397&lt;/a&gt;: [WebProfilerBundle] tweak the time view&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/symfony/symfony/commit/a52c675a467853c88cd1d0e52ea92d846340690d"&gt;a52c675&lt;/a&gt;: [WebProfilerBundle] improved the logger panel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;Plugins symfony1 mis à jour:&lt;/h4&gt;

&lt;h5&gt;&lt;a href="http://www.symfony-project.org/plugins/dcReloadedFormExtraPlugin"&gt;dcReloadedFormExtra&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;added a uniquenes checker widget that checks the uniqueness of a value using an Ajax callback&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a href="http://www.symfony-project.org/plugins/sfSyncContentPlugin"&gt;sfSyncContent&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;created default parameters for sync content to be frontend dev FROM prod@production&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a href="http://www.symfony-project.org/plugins/apostrophePlugin"&gt;apostrophe&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;added an app.yml option to return email links in a different format that allows apostrophe.unobfuscateEmailInline to be called outside of the a_js spool&lt;/li&gt;
&lt;li&gt;all unlink() and rmdir() calls in the product now invoke aFiles::unlink() and aFiles::rmdir(), providing a capability to override these methods&lt;/li&gt;
&lt;li&gt;the aFiles class has been refactored into a BaseaFiles? class and an empty aFiles subclass, allowing convenient overrides&lt;/li&gt;
&lt;li&gt;a_button helper now accepts a single array of options as an alternative to the full list of parameters&lt;/li&gt;
&lt;li&gt;slideshows are allowed to have the crossfade transition now even if they have no height specified&lt;/li&gt;
&lt;li&gt;fixed event bug in menutoggle script and added jQuery 1.7 to the plugin&lt;/li&gt;
&lt;li&gt;annotation of multiple media items works again&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;&lt;a href="http://www.symfony-project.org/plugins/apostropheBlogPlugin"&gt;apostropheBlog&lt;/a&gt;:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;added a 'first' class to the first pager in the blog index&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;Ils s'en ont parlé:&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.symfony.es/2012/01/23/desymfony-2012-inicia-su-call-for-papers/"&gt;deSymfony 2012 inicia su call for papers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fabien.potencier.org/article/60/create-your-own-framework-on-top-of-the-symfony2-components-part-11"&gt;Create your own framework ... on top of the Symfony2 Components (part 11)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.strangebuzz.com/post/2012/01/23/Une-semaine-symfonique-264-du-16-au-22-janvier-2012"&gt;Une semaine symfonique #264 - du 16 au 22 janvier 2012&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://symfony-world.blogspot.com/2012/01/symfony-forward-through-lan.html"&gt;symfony forward through LAN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://odolbeau.fr/use-viruals-forms-with-symfony2.html"&gt;Use virtuals forms with Symfony2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fabien.potencier.org/article/62/create-your-own-framework-on-top-of-the-symfony2-components-part-12"&gt;Create your own framework ... on top of the Symfony2 Components (part 12)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.fizyk.net.pl/blog/sqlite-w-srodowisku-developerskim-w-symfony-i-symfony2"&gt;sqlite w środowisku developerskim w symfony i symfony2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.strangebuzz.com/post/2012/01/28/Load-fixtures-with-Symfony2"&gt;Load fixtures with Symfony2 and YAML files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://symfonybrasil.blogspot.com/2012/01/onde-encontrar-bundles-para-o-symfony-2.html"&gt;Onde encontrar Bundles para o Symfony2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.jchk.net/2012/01/notes-symfony-2.html"&gt;Notes: Symfony 2 (一)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://rst.evilpackets.org/2012/01/28/nazwa-pl-postgresql-i-symfony/"&gt;Nazwa.pl, PostgreSQL i Symfony&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jameshalsall.co.uk/recording-last-activity-for-users-in-symfony2-fosuserbundle/"&gt;Recording ‘Last Activity’ for Users in Symfony2 + FOSUserBundle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.bitnami.org/2012/01/get-started-with-symfony-in-amazon.html"&gt;Get started with Symfony in Amazon Cloud&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/vivid_skid/20120127/1327650268"&gt;symfony schema.yml の覚書&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.scope-networks.de/2012/01/26/symfony-yaml-mysql-workbench-plugin/"&gt;Symfony YAML MySQL Workbench Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ausgebloggt.de/2012/01/26/symfony-1-4-admin-generator-aktuelles-objekt-in-partial/"&gt;Symfony 1.4 Admin Generator – Aktuelles Objekt in Partial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.etreoblog.com/uso-de-sfwidgetformjquerydate-datepicker-en-symfony"&gt;Uso de sfWidgetFormJQueryDate (datepicker) en Symfony&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ylxeluxi.tk/2012/01/symfony-meets-apc-alternative-php-cache.html"&gt;Symfony meets APC (Alternative PHP Cache)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ruzhekov.info/oils_website_the_big_challeng%D0%B5_owned_by_symfony/"&gt;Сайт за масла – голямото предизвикателство решено със Symfony&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
  &lt;img src="http://www.mcherifi.org/wp-content/uploads/2009/10/formulaires_symfony.jpg" width="250" alt="" title="" /&gt;
&lt;/div&gt;
          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/q2DqFG4EJDM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.strangebuzz.com/post/2012/01/31/Une-semaine-symfonique-265-du-23-au-29-janvier-2012</feedburner:origLink></entry>
  <entry>
    <title>symfony range filter</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/nw9INOIO51E/symfony-range-filter.html" />
    <id>3bf38030f21ba7abf22da0c1e57781a0</id>
    <author>
      <name>Tomasz Ducin</name>
    </author>
    <updated>2012-01-29T15:06:00Z</updated>
    <content type="html">
              &lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"&gt;
&lt;html&gt;&lt;body&gt;
&lt;p&gt;In symfony/doctrine, only the &lt;a href="http://www.doctrine-project.org/projects/orm/1.2/docs/manual/behaviors/en#core-behaviors:timestampable"&gt;Timestampable behavior&lt;/a&gt; provides ranged filters (a combination of &lt;strong&gt;from&lt;/strong&gt; and &lt;strong&gt;to&lt;/strong&gt; values that are queried just like &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between"&gt;MySQL BETWEEN statement&lt;/a&gt;). But how about ranged values for other data types?&lt;/p&gt;
&lt;p&gt;I thought it'd be both cool and very useful, so I set off to search the web, but found no solution. Hence, I've made one myself. We will create three new classes and modify two more files to make it work in the basic version.&lt;/p&gt;
&lt;h2&gt;new widget/validator classes&lt;/h2&gt;
&lt;p&gt;The first class to be added is the form widget, &lt;strong&gt;lib/widget/sfWidgetFormInputRange.class.php&lt;/strong&gt;:&lt;/p&gt;
&lt;pre class="php" style="font-family: monospace;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;class&lt;/span&gt; sfWidgetFormInputRange &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;extends&lt;/span&gt; sfWidgetForm&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br&gt;  protected &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;function&lt;/span&gt; configure&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$options&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$attributes&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;addRequiredOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'from_value'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;addRequiredOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'to_value'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br&gt;&amp;Acirc;&amp;nbsp;&lt;br&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;addOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'template'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;'from %from_value% to %to_value%'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br&gt;&amp;Acirc;&amp;nbsp;&lt;br&gt;&lt;span style="color: rgb(153, 0, 153); font-style: italic;"&gt;/**&lt;br&gt;   * Renders the widget.&lt;br&gt;   *&lt;br&gt;   * @param  string $name        The element name&lt;br&gt;   * @param  string $value       The value displayed in this widget&lt;br&gt;   * @param  array  $attributes  An array of HTML attributes to be merged with the default HTML attributes&lt;br&gt;   * @param  array  $errors      An array of errors for the field&lt;br&gt;   *&lt;br&gt;   * @return string An HTML tag string&lt;br&gt;   *&lt;br&gt;   * @see sfWidgetForm&lt;br&gt;   */&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;function&lt;/span&gt; render&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$name&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$value&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;null&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$attributes&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$errors&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$value&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&lt;/span&gt; &lt;a href="http://www.php.net/array_merge"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array_merge&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;a href="http://www.php.net/array"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'from'&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;'to'&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;a href="http://www.php.net/is_array"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$value&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt; ? &lt;span style="color: rgb(0, 0, 136);"&gt;$value&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;:&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br&gt;&amp;Acirc;&amp;nbsp;&lt;br&gt;&lt;span style="color: rgb(177, 177, 0);"&gt;return&lt;/span&gt; &lt;a href="http://www.php.net/strtr"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;strtr&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;translate&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'template'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;a href="http://www.php.net/array"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'%from_value%'&lt;/span&gt; &lt;span style="color: rgb(51, 153, 51);"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'from_value'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;render&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$name&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'[from]'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$value&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'from'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'%to_value%'&lt;/span&gt;   &lt;span style="color: rgb(51, 153, 51);"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'to_value'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;render&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$name&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'[to]'&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 136);"&gt;$value&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'to'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br&gt;&amp;Acirc;&amp;nbsp;&lt;br&gt;&lt;span style="color: rgb(153, 0, 153); font-style: italic;"&gt;/**&lt;br&gt;   * Gets the stylesheet paths associated with the widget.&lt;br&gt;   *&lt;br&gt;   * @return array An array of stylesheet paths&lt;br&gt;   */&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;function&lt;/span&gt; getStylesheets&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(177, 177, 0);"&gt;return&lt;/span&gt; &lt;a href="http://www.php.net/array_unique"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array_unique&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;a href="http://www.php.net/array_merge"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array_merge&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'from_value'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getStylesheets&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'to_value'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getStylesheets&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br&gt;&amp;Acirc;&amp;nbsp;&lt;br&gt;&lt;span style="color: rgb(153, 0, 153); font-style: italic;"&gt;/**&lt;br&gt;   * Gets the JavaScript paths associated with the widget.&lt;br&gt;   *&lt;br&gt;   * @return array An array of JavaScript paths&lt;br&gt;   */&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;function&lt;/span&gt; getJavaScripts&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;{&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(177, 177, 0);"&gt;return&lt;/span&gt; &lt;a href="http://www.php.net/array_unique"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array_unique&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;a href="http://www.php.net/array_merge"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;array_merge&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'from_value'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getJavaScripts&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;,&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 0, 136);"&gt;$this&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getOption&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;'to_value'&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 64, 0);"&gt;getJavaScripts&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(51, 153, 51);"&gt;;&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;br&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;}&lt;/span&gt;&lt;/pre&gt;The second one is the form filter widget, &lt;strong&gt;lib/widget/sfWidgetFormFilterInputRange.class.php&lt;/strong&gt;:&lt;pre class=""&gt;&lt;/pre&gt;
&lt;/body&gt;&lt;/html&gt;

        &lt;hr /&gt;
        &lt;p&gt;
          &lt;em&gt;Truncated by the Symfony feed aggregator, &lt;a href="http://symfony-world.blogspot.com/2012/01/symfony-range-filter.html"&gt;read more&lt;/a&gt;&lt;/em&gt;.
        &lt;/p&gt;
          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/nw9INOIO51E" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://symfony-world.blogspot.com/2012/01/symfony-range-filter.html</feedburner:origLink></entry>
  <entry>
    <title>Load fixtures with Symfony2</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/Y5AdQS4PmMQ/Load-fixtures-with-Symfony2" />
    <id>d564dc2bd335d042b5d317ddd2515675</id>
    <author>
      <name>COil</name>
    </author>
    <updated>2012-01-28T13:06:00Z</updated>
    <content type="html">
                  &lt;p&gt;Hi Symfonians ! &lt;img src="/themes/blue-fashion/smilies/rofl.gif" alt=":)" class="smiley" /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am actually spending a lot of time on testing Symfony2. When building an application, one of the first thing you will have to do is to insert initial datas, also called fixtures, so you can use and test your application. There is a &lt;a href="http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html"&gt;documentation&lt;/a&gt; on the Symfony website about this subject, it uses the &lt;a href="https://github.com/doctrine/DoctrineFixturesBundle"&gt;DoctrineFixturesBundle&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
It works very well, but I wanted to use YAML files "a la symfony1". So I ended up with this simple solution:
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;The base Loader class:&lt;/h4&gt;

&lt;p&gt;First, I create a base Loader class that others entities loaders will extend:
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;script src="https://gist.github.com/1694230.js?file=gistfile1.aw"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;
The &lt;strong&gt;getModelFixtures()&lt;/strong&gt; function will load the YAML file corresponding to the current entity, the &lt;strong&gt;getModelFile()&lt;/strong&gt; function will have to be implemented by sub-loaders. The class implements the &lt;strong&gt;ContainerAwareInterface&lt;/strong&gt; so we can access the DIC in the loaders.
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;The &lt;strong&gt;Category&lt;/strong&gt; loader:&lt;/h4&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;The YAML file:&lt;/h5&gt;

&lt;p&gt;Both jobs and categories YAML files are almost equal to &lt;a href="http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03"&gt;the Jobeet1 tutorial&lt;/a&gt; ones.
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;script src="https://gist.github.com/1694262.js?file=gistfile1.yml"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;The loader class:&lt;/h5&gt;
&lt;script src="https://gist.github.com/1694282.js?file=gistfile1.aw"&gt;&lt;/script&gt;


&lt;p&gt;The &lt;strong&gt;getModelFixtures()&lt;/strong&gt; function retrieves the fixtures for the &lt;strong&gt;Category&lt;/strong&gt; entity and then you just have to iterate over the array. At each iteration we add a reference to the entity so it can be used in other loaders. (as a foreign key)
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;The &lt;strong&gt;Job&lt;/strong&gt; loader:&lt;/h4&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;The YAML file:&lt;/h5&gt;
&lt;script src="https://gist.github.com/1694298.js?file=gistfile1.txt"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;The loader class:&lt;/h5&gt;
&lt;script src="https://gist.github.com/1694305.js?file=gistfile1.aw"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;
Same here, but: for each iteration we retrieve the proper category reference we already built in the &lt;strong&gt;Category&lt;/strong&gt; loader (line 30). In Jobeet1 there was a loop directly in the YAML file in order to add lot of job rows, now we can do this loop in our loader: &lt;strong&gt;duplicateLastJob()&lt;/strong&gt;. There is also a special case where we force a value for the &lt;strong&gt;expiresAt&lt;/strong&gt; date field that would be overridden by the &lt;strong&gt;Job&lt;/strong&gt; object life-cycle callbacks otherwise.
&lt;br /&gt;
&lt;br /&gt;
You can find the code on &lt;a href="https://github.com/COil/Jobeet2Bundle/tree/master/Datafixtures"&gt;github&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
See you ! COil &lt;img src="/themes/blue-fashion/smilies/rofl.gif" alt=":)" class="smiley" /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;PS&lt;/strong&gt;: This tutorial was tested with Symfony Standard Edition 2.0.9
&lt;br /&gt;
&lt;br /&gt;
Other posts about Symfony2 fixtures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.dobervich.com/2011/03/15/symfony2-blog-application-tutorial-part-iv-displaying-data-using-doctrine2/" title="http://www.dobervich.com/2011/03/15/symfony2-blog-application-tutorial-part-iv-displaying-data-using-doctrine2/"&gt;http://www.dobervich.com/2011/03/15...&lt;/a&gt; (EN)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.informathic.com/post/2010/12/12/Symfony2-Fixtures-Doctrine2" title="http://www.informathic.com/post/2010/12/12/Symfony2-Fixtures-Doctrine2"&gt;http://www.informathic.com/post/201...&lt;/a&gt; (FR)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tcuvelier.developpez.com/tutoriels/php/symfony2/doctrine2/data-fixtures/" title="http://tcuvelier.developpez.com/tutoriels/php/symfony2/doctrine2/data-fixtures/"&gt;http://tcuvelier.developpez.com/tut...&lt;/a&gt; (FR)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://keiruaprod.fr/symblog-fr/docs/doctrine-2-et-les-articles.html" title="http://keiruaprod.fr/symblog-fr/docs/doctrine-2-et-les-articles.html"&gt;http://keiruaprod.fr/symblog-fr/doc...&lt;/a&gt; (FR)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://iabsis.com/FR/article/21-5/Creez-votre-set-de-donnees-initial-fixtures" title="http://iabsis.com/FR/article/21-5/Creez-votre-set-de-donnees-initial-fixtures"&gt;http://iabsis.com/FR/article/21-5/C...&lt;/a&gt; (FR)&lt;/li&gt;
&lt;/ul&gt;          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/Y5AdQS4PmMQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.strangebuzz.com/post/2012/01/28/Load-fixtures-with-Symfony2</feedburner:origLink></entry>
  <entry>
    <title>Load fixtures with Symfony2 and YAML files</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/Y5AdQS4PmMQ/Load-fixtures-with-Symfony2" />
    <id>cc6fcbac683a8815972a7e4c226a18f9</id>
    <author>
      <name>COil</name>
    </author>
    <updated>2012-01-28T13:06:00Z</updated>
    <content type="html">
                  &lt;p&gt;Hi Symfonians ! &lt;img src="/themes/blue-fashion/smilies/rofl.gif" alt=":)" class="smiley" /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am actually spending a lot of time on testing Symfony2. When building an application, one of the first thing you will have to do is to insert initial datas, also called fixtures, so you can use and test your application. There is a &lt;a href="http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/index.html"&gt;documentation&lt;/a&gt; on the Symfony website about this subject, it uses the &lt;a href="https://github.com/doctrine/DoctrineFixturesBundle"&gt;DoctrineFixturesBundle&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
It works very well, but I wanted to use YAML files "a la symfony1". So I ended up with this simple solution:
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;The base Loader class:&lt;/h4&gt;

&lt;p&gt;First, I create a base Loader class that others entities loaders will extend:
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;script src="https://gist.github.com/1694230.js?file=gistfile1.aw"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;
The &lt;strong&gt;getModelFixtures()&lt;/strong&gt; function will load the YAML file corresponding to the current entity, the &lt;strong&gt;getModelFile()&lt;/strong&gt; function will have to be implemented by sub-loaders. The class implements the &lt;strong&gt;ContainerAwareInterface&lt;/strong&gt; so we can access the DIC in the loaders.
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;The &lt;strong&gt;Category&lt;/strong&gt; loader:&lt;/h4&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;The YAML file:&lt;/h5&gt;

&lt;p&gt;Both jobs and categories YAML files are almost equal to &lt;a href="http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03"&gt;the Jobeet1 tutorial&lt;/a&gt; ones.
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;script src="https://gist.github.com/1694262.js?file=gistfile1.yml"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;The loader class:&lt;/h5&gt;
&lt;script src="https://gist.github.com/1694282.js?file=gistfile1.aw"&gt;&lt;/script&gt;


&lt;p&gt;The &lt;strong&gt;getModelFixtures()&lt;/strong&gt; function retrieves the fixtures for the &lt;strong&gt;Category&lt;/strong&gt; entity and then you just have to iterate over the array. At each iteration we add a reference to the entity so it can be used in other loaders. (as a foreign key)
&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;

&lt;h4&gt;The &lt;strong&gt;Job&lt;/strong&gt; loader:&lt;/h4&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;The YAML file:&lt;/h5&gt;
&lt;script src="https://gist.github.com/1694298.js?file=gistfile1.txt"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h5&gt;The loader class:&lt;/h5&gt;
&lt;script src="https://gist.github.com/1694305.js?file=gistfile1.aw"&gt;&lt;/script&gt;


&lt;p&gt;&lt;br /&gt;
Same here, but:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For each iteration we retrieve the proper category reference we already built in the &lt;strong&gt;Category&lt;/strong&gt; loader (line 30).&lt;/li&gt;
&lt;li&gt;In Jobeet1 there was a loop directly in the YAML file in order to add lot of job rows, now we can do this loop in our loader: &lt;strong&gt;duplicateLastJob()&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;There is also a special case where we force a value for the &lt;strong&gt;expiresAt&lt;/strong&gt; date field that would be overridden by the &lt;strong&gt;Job&lt;/strong&gt; object life-cycle callbacks otherwise.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think this a good approach as you have the ease of writing YAML without loosing the possibility to handle complex or edge cases with PHP. You can find the code on &lt;a href="https://github.com/COil/Jobeet2Bundle/tree/master/Datafixtures"&gt;github&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
See you ! COil &lt;img src="/themes/blue-fashion/smilies/rofl.gif" alt=":)" class="smiley" /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;PS&lt;/strong&gt;: This tutorial was tested with Symfony Standard Edition 2.0.9.
&lt;br /&gt;
&lt;strong&gt;PS2&lt;/strong&gt;: If you have a blog post about fixtures, let me know so I can add it below.
&lt;br /&gt;
&lt;br /&gt;
Other posts about fixtures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.dobervich.com/2011/03/15/symfony2-blog-application-tutorial-part-iv-displaying-data-using-doctrine2/" title="http://www.dobervich.com/2011/03/15/symfony2-blog-application-tutorial-part-iv-displaying-data-using-doctrine2/"&gt;http://www.dobervich.com/2011/03/15...&lt;/a&gt; (EN)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dotheweb.posterous.com/using-faker-to-populate-a-database-its-easier" title="http://dotheweb.posterous.com/using-faker-to-populate-a-database-its-easier"&gt;http://dotheweb.posterous.com/using...&lt;/a&gt; (EN)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.informathic.com/post/2010/12/12/Symfony2-Fixtures-Doctrine2" title="http://www.informathic.com/post/2010/12/12/Symfony2-Fixtures-Doctrine2"&gt;http://www.informathic.com/post/201...&lt;/a&gt; (FR)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tcuvelier.developpez.com/tutoriels/php/symfony2/doctrine2/data-fixtures/" title="http://tcuvelier.developpez.com/tutoriels/php/symfony2/doctrine2/data-fixtures/"&gt;http://tcuvelier.developpez.com/tut...&lt;/a&gt; (FR)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://keiruaprod.fr/symblog-fr/docs/doctrine-2-et-les-articles.html" title="http://keiruaprod.fr/symblog-fr/docs/doctrine-2-et-les-articles.html"&gt;http://keiruaprod.fr/symblog-fr/doc...&lt;/a&gt; (FR)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://iabsis.com/FR/article/21-5/Creez-votre-set-de-donnees-initial-fixtures" title="http://iabsis.com/FR/article/21-5/Creez-votre-set-de-donnees-initial-fixtures"&gt;http://iabsis.com/FR/article/21-5/C...&lt;/a&gt; (FR)&lt;/li&gt;
&lt;/ul&gt;          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/Y5AdQS4PmMQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.strangebuzz.com/post/2012/01/28/Load-fixtures-with-Symfony2</feedburner:origLink></entry>
  <entry>
    <title>sqlite w środowisku developerskim w symfony i symfony2</title>
    <link href="http://feedproxy.google.com/~r/symfony/planet/~3/Mkhcmagyjx0/sqlite-w-srodowisku-developerskim-w-symfony-i-symfony2" />
    <id>a1064433ba0f5130f6f7c784312f7f17</id>
    <author>
      <name>Grzegorz Śliwiński</name>
    </author>
    <updated>2012-01-26T18:59:23Z</updated>
    <content type="html">
              Sqlite nie koniecznie jest dobrą bazą produkcyjną dla tworzonych aplikacji internetowych. Jednak podczas ich tworzenia powinna nadać się idealnie. Tym bardziej, jeśli nie chcemy naszej maszyny developerskiej obarczać dodatkowymi procesami, czy też pilnować włączania/wyłączania serwerów bazy danych, sqlite nada się idealnie.          &lt;img src="http://feeds.feedburner.com/~r/symfony/planet/~4/Mkhcmagyjx0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://www.fizyk.net.pl/blog/sqlite-w-srodowisku-developerskim-w-symfony-i-symfony2?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=symfony</feedburner:origLink></entry>
</feed>

