Symfony
symfony Project Blog
Updated: 40 min 22 sec ago
Fri, 2009-07-03 14:12
After the YAML and the Dependency Injection, it's time for the
Symfony Event Dispatcher component to join the crowd of the Symfony
components. This component is not new. It has been introduced in
symfony 1.1 and is heavily used in the symfony core to make symfony
more decoupled and more flexible.
The Symfony Event Dispatcher component is represented by an Octopus.
Of course, you can start using it right away in your non-symfony
projects by reading the dedicated
book:
Like other published
components, the component
comes with a test suite that covers 100% of the code, and it is
continuously
built
by the Sensio Labs continuous integration server, Sismo.
Be trained by symfony experts
- Jul 22 Paris - Aug 19 San Francisco - Sep 23 Paris - Oct 21 Nantes - Nov 18 Paris
Wed, 2009-07-01 19:52
The idea of this event comes from a discussion between members of
the #symfony-fr IRC channel. The main idea is to let people
contribute back something to symfony that only takes a few minutes
a day.
The main goals of this event are the following:
- Enhance the quality of the documentation
- Enhance performance of future releases
- Enhance the coverage of the automated tests
- Close the open bugs to let the core team work on new features
The rules are simple:
Once registered into the event, you have to
close/resolve/create+patch a minimum of one ticket a day.
You can work on two tickets the same day and dispatch them on
two different days (for instance, you cannot work on symfony
on Monday, but you have fixed two tickets on Tuesday, so just
pick one and pretend to have fixed it on Monday)
Each month, prizes will be awarded to three participants (the
rules will be choosed depending on how many contributors
registered but at least one prize will be randomly offered to
one of them).
And here are the rewards:
Each month, Fabien Potencier offers a book of winner choice:
- Practical symfony 1.2 for Doctrine - second edition
- OR Practical symfony 1.2 for Propel - second edition
- OR Symfony : Mieux développer en PHP avec Symfony 1.2 et Doctrine
- OR The symfony 1.2 Reference Guide (soon available)
Each month, Jonathan Wage offers a Doctrine Book.
Pascal Borreli offers a surprise gift.
Each month, ServerGrove offers the winner:
- $100 credit for ServerGrove services (can be transfered to family, friends or customers)
- OR $50 Amazon gift certificate
For July and August, Ideato.it offers a random PHP t-shirt (size L) from php|architect
If you want to sponsor the event, contact me at pborreli@sqli.com.
How can you participate?
First, go to the
dedicated Wiki page and add your name to the list of participants.
Then, read carefully the How to contribute to symfony
wiki page.
Eventually, every day, add the ticket number you
added/closed/patched to the table (#9999) under the correct day.
Be trained by symfony experts
- Jul 22 Paris - Aug 19 San Francisco - Sep 23 Paris - Oct 21 Nantes - Nov 18 Paris
Tue, 2009-06-30 09:46
Some weeks ago, I introduced the symfony components project.
The first component to be released was the YAML component.
Today, I'm excited to announce the immediate availability of the second symfony
component, the Symfony Dependency Injection Container.
This component is one of the core libraries that will power Symfony 2.
But you don't need to wait for Symfony 2 to be released to benefit from it.
You can start using it today and give us feedback.
As for YAML, the Symfony Dependency Injection Container has its own dedicated website:
The component has already a full book dedicated to it, and a full API documentation.
It also sports a robust test suite with a 100% code coverage as you can see
for yourself in the screenshot below.
As for all other symfony products, the component is monitored by the symfony
continuous integration server, Sismo, and all the builds are publicly
available.
Be trained by symfony experts
- Jul 22 Paris - Aug 19 San Francisco - Sep 23 Paris - Oct 21 Nantes - Nov 18 Paris
Sun, 2009-06-28 21:07
Symfony core development put the spotlight on tests and lime tool during this week. Furthermore, symfony components were heavily updated, specially dependency injection. Lastly, 11 new plugins were introduced.
Development mailing list
Development highlights
- r19467: [1.3] fixed a warning in a test
- r19468: [1.2, 1.3] fixed routing for PHP 5.3.0RC4
- r19470: [1.3] fixed sfAutoloadAgain due to PHP 5.3.0 changes in the spl_autoload_functions() function
- r19488: [lime] changed manual CLI arguments escaping by calls to escapeshellarg()
- r19496: [lime] moved test files
- r19498: [lime] made tests rely less on the directory they are in
- r19518: [1.3] fixed unit tests that used exit() instead of return
- r19521: [lime] added XML output support (JUnit compatible XML format)
- r19522: [1.3] added --xml and --trace options to test:* tasks
- r19529: [lime] updated LICENSE file
- r19531: [1.3] removed usage of lime_output_color() in unit tests as it is now taken care of automatically by lime
- r19543: [1.3] fixed sfMemcacheCache set() method
- ...and many other changes
Symfony components
- dependency injection:
- r19545: added a way to change the base class of the dumped PHP classes
- r19559: fixed Iterator bug + defined an order between services defined directly and the ones defined via a method
- r19562: fixed two small typos
- r19567: fixed parameter XML parsing for deep nested arrays
- r19576: fixed sfServiceContainerBuilder iterator
- r19581: changed configurator to allow the class to be defined as a parameter
- r19582: allowed empty YAML file for service definitions, and simplified the YAML output when no parameter or service are defined
- r19584: added some more PHPDoc to explain rules of inheritance in the loaders
- r19586: added an exception when an ini file does not exist
- r19587: refactored loader file classes
- r19632: simplified sfServiceSimpleXMLElement class and made its behavior more like PHP
- r19633: ensured that parameter keys are always lowercased + simplified XML parsing
- r19634: fixed anonymous services support in XMLs
- yaml:
- r19550: removed lime_output_color() usage as it is not needed anymore
- r19552: removed hardcoded list of tests to run
- r19577, r19579: made prove.php output prettier and more robust
- event dispatcher:
- r19551: removed lime_output_color() usage as it is not needed anymore
- r19553: removed hardcoded list of tests to run
- r19578, r19580: made prove.php output prettier and more robust
Development digest: 201 changesets, 27 bugs reported, 11 bugs fixed, 10 enhancements suggested, 1 enhancement closed, 5 documentation defects reported, 7 documentation defects fixed, and 22 documentation edits.
Documentation
New Job Postings
- Symfony / PHP-Developer at GOYAX - full-time based in Hannover, Germany - Contact: jobs [at] goyax [dot] de
- Contract Symfony Developer (very urgent) at Escape Studios Ltd - full-time based in London, UK - Contact: jobs [at] escapestudios [dot] com
New developers for hire
- TRI SOFTWARE SOLUTIONS: is a company based in Romania. We are developing customized web solutions with Symfony & ExtJs, with a special focus on backend solutions. We work with international clients.
Plugins
- New plugins
- sfZendMailPlugin: plugin based on swToolboxPlugin mail feature by Thomas Rabaix. The primary changes from his implementation are seperating the mail feature and switching to use autoload for the Zend libraries.
- sfYamlSchemaPatcherPlugin: this task fixes some problems at reverse engineering (adds i18n entries at schema.yml if you have *_i18n tables, removes duplicate table entries if you use plugins with own tables like sfGuardPlugin)
- sfLimeExtraPlugin: provides support to generate mock objects for Lime. It also offers other utilities that are convenient for testing.
- sfTubePlugin: allows video upload using YouTube API.
- jeDbCheckPlugin: framework to help you do sanity checks on your database.
- sfPaymentPlugin: intends to bring a standard, flexible and maintainable solution for managing online payments using the symfony framework throughout a set of plugins.
- csNavigationPlugin: a simple way to handle navigation in your applications.
- sfCorreiosPlugin: calculates the brazilian freight value of an object and get the address from the zip code.
- iogLinksAdminPlugin: manages a list of links listed into nested categories. It comes with an admin links manager and a frontend module.
- wspNopastePlugin: provides a complete application of a so called "nopaste".
- sfTwitterAuthPlugin: allows users to log in to your site with their twitter accounts without disclosing passwords to you, via Twitter's OpenAuth interface.
Updated plugins
- ncPropelChangeLogBehaviorPlugin: now if there's no default context the I18N helper is not loaded
- sfShibbolethPlugin: documented the Shibboleth.sso mod_rewrite issue
- swDoctrineAssetsLibraryPlugin: create subdirectory translation fixed, fixed createFolderSuccess.php link_to_function error
- sfUnobstrusiveWidgetPlugin: fixed callback in js_config option, fixed callback in swfupload transformer, added multiselect transformer for select many form widget, fixed multiselect transformer, added "input text many" widget transformer ajax search transformer, made jquery 'double_list' transformer compatible with jQuery UI, fixed warning in sfUoWidgetFormDate when no transformer sets, fixed double list CSS, make jquery 'asm' transformer compatible with jQuery UI
- sfEasyGMapPlugin: enabled modification of the map type
- mgI18nPlugin: fixed bugs
- pkContextCMSPlugin: don't include the 'global' page in search results, search results have a good title now, added blog post slot padding, cleaned the helper a little bit, ability to suppress slot editing for a particular non-CMS page, documented procedure for adding more admin toolbar buttons
- sfTwitterApiPlugin: refactored CURL adapter, implemented atom and json response, fixed typo in curl adapter class
- sfFilebasePlugin: improved usablity in gallery view, working on IE compat
- sfWidgetFormInputSWFUploadPlugin: added IE 8 compatibility, added support for onsubmit event
- pkMediaCMSSlotsPlugin: still image and slideshow slots: never render an image smaller than it actually is, support for interval and arrows options, support for title and description options
- pkMediaPlugin: never exceed actual image size
- pkPersistentFileUploadPlugin: never render a preview image bigger than actual size, re-render the preview if a new image is supplied on a later pass
- sfAssetsLibraryPlugin: refactorized to completely avoid dependance by sfCompat10
- swToolboxPlugin: add a mandatory field format in the resetFormLabels, datagrid refactoring, swDatagrid class made abstract
- sfCryptoCaptchaPlugin: fixed background image bug
- sfLucenePlugin: added a sfLuceneCriteria::sanitize option
- sfSympalPlugin: fixed issue with exception stopping page from rendering so it can't be edited anymore
- sfMapFishPlugin: updated license
- sfImageTransformPlugin: improved README documentation
- csSEOToolkitPlugin: automatically validates the SEO toolbar using the specified auth method
- csDoctrineSlideshowPlugin: changes partials in form to widgets
- csDoctrineActAsAttachablePlugin: use sf_upload_dir in getUploadPath and fix space, changed routes to routing event, added module base files, code cleanup
They talked about us
Be trained by symfony experts
- Jun 29 San Francisco - Jul 22 Paris - Aug 19 San Francisco - Sep 23 Paris - Oct 21 Nantes
Mon, 2009-06-22 20:44
A few weeks ago,
I asked the community to help symfony get selected as a finalist for the Sourceforge
Community Choice Awards.
And guess what? The answer from the community has been extraordinary! Thanks
to our dedicated community, symfony has been chosen as a finalist in three
categories:
It's great, but that's just the beginning. For symfony to win one or more
categories, we need your help again.
The first thing to do is to vote for symfony on
the Sourceforge Awards dedicated page.
The next thing to do is to spread the word about the competition around you
(you can start by retweeting my announcement on
Twitter, or publish a post on
your blog like I did on mine).
Last but not the least, make sure your mom doesn't forget to vote for symfony ;)
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Sun, 2009-06-21 21:50
Symfony core and Doctrine plugin got a few fixes during this week and generate:project task was enhanced. In addition, most symfony books were updated and the next symfony live conference was announced.
Development mailing list
Development highlights
- r19256: [1.1, 1.2, 1.3] fixed generateCacheKey does not coverts dots to underscorse in user given hostname
- r19258: [1.2, 1.3] fixed --stability=beta not passed to dependencies when installing a plugin
- r19259: [1.3] fixed missing css and js inclusion on new projects
- r19273: [1.3] fixed missing css and js inclusion on new projects
- r19276: [1.3] deprecated array notation in parameter holder classes
- r19297: [1.2, 1.3] added support for Office 2007 for file uploads
- r19310: [1.2, 1.3] fixed JavascriptHelper call to insert Element in update_element_function() when using the position attribute
- r19410: [1.1, 1.2, 1.3] added check for php 5.2.9 which has a bug in array_unique to check_configuration.php
- r19411: [1.2, 1.3] fixed PHPDoc return values
- r19412: [1.3] updated the list of deprecated methods
- r19442: [1.1, 1.2] fixed default value for max forwards in sfController
- sfDoctrinePlugin:
- r19265: [1.2, 1.3] fixed issue with sfDoctrinePager::getResults() not allowing Doctrine hydration type constants
- r19267: [1.2, 1.3] fixed issue with crud 404 error message
- r19268: [1.2, 1.3] fix for camel case columns accessors and mutators
- r19272: [1.2, 1.3] fixed one issue with file uploads in doctrine
- r19274: [1.2, 1.3] fixed issue with different format of indexes not being properly handled in generated forms
- r19406: [1.2] updated sfDoctrinePlugin to use Doctrine 1.0.10
- ...and many other changes
Development digest: 197 changesets, 35 bugs reported, 41 bugs fixed, 7 enhancements suggested, 5 enhancements closed, 9 documentation defects reported, 21 documentation defects fixed, and 18 documentation edits.
Documentation
New Job Postings
- Symfony developer at www.tellus-itservices.com - full-time based in São Paulo, Brazil - Contact: cgonser [at] tellus-la [dot] com
- Superb PHP Developers at stealth startup - full-time based in London, United Kingdom - Contact: simon.cast [at] gmail [dot] com
New developers for hire
- Marc Weistroff: I am a French developer with experience in Symfony since mid-2008. I have a degree in Cognitive Sciences and speak French & English. Please visit my website for more information.
New symfony bloggers
Plugins
- New plugins
- jeHTTPErrorExceptionPlugin: Just an exception to return generic HTTP error. Similar to sfError404Exception but for any HTTP code.
- jeFgButtonPlugin: helpers to build fg button with jquery css framework.
- sfDoctrineAssetsLibraryPlugin: the sfAssetsLibraryPlugin converted to use Doctrine explicitly.
- sfSimpleForum2Plugin: a simple embedded forum for symfony applications. This is a port of the original sfSimpleForumPlugin for symfony 1.2.
- mgI18nPlugin: adds a new transtalation panel into the debug web panel. The translation panel displays all source messages used in the current page, and a form to edit the target messages.
- jnAjaxFormValidatorPlugin: validates form widgets with AJAX according to their validators. Plugin requires JQuery.
Updated plugins
- csDoctrineSlideshowPlugin: adds awesome many-to-many sorting and selecting with javascript, initial commit of beta 1 tag, added widgets for sortable stuff
- sfEasyTwitterPlugin: commited pending changes (not ready for use yet)
- sfMapFishPlugin: improved documentation, completed switch to MIT license
- sfDoctrineGuardPlugin: fixed issue with updated_at being nullified when editing a user in the backend, fixed issue with inactive users being allowed to login
- sfSympalPlugin: fixed issue with layouts cache not being specific to each app/site, moving change language action to not be secure
- sfExtjsThemePlugin: backed out previous type change
- pkContextCMSPlugin: widened some css scope for subnav, fixed search box markup and id names, changed init_pk_controls() to pkUI(), added nav tests, refactored navigation, added page behaviors for nav tests, halfway there with the pkNavigation class
- sfTwitterApiPlugin: initial import, implemented new request classes, changed lib/request directory structure, removed project fixtures as the plugin will only be unit tested later, added new sfTwitterHttpAdapter abstract class, refactored sfTwitterCurlAdapter class, added new sfTwitterStreamAdapter skeleton class, refactored send() method, added accessors / mutators to define an http adapter object, refactored handle() method, added new getResponseClassName() method, removed send() abstract method and added new handle() abstract public method, changed send() method to handle() method, removed setApi() method and added setApiUri() method, removed send() method, added new setApiUri(), getApiUri(), getUri() and getParameters(), implemented new sfTwitterResponseAtom, sfTwitterResponseRss and sfTwitterResponseJson classes
- sfShibbolethPlugin: updated documentation to cover the use of the subfolder-shim script
- sfDynamicsPlugin: merged last changes from git branch
- sfUnobstrusiveWidgetPlugin: added possibility to put the "active" class on the "li" element instead of the "a" element, added a css to fix the date picker when used in a modal div
- pkToolkitPlugin: fixed buttons overlapping on sidebar slots, fixed flickering buttons, changed init_pk_controls() to pkUI(), HTML simplifier now allows name attributes for a elements
- ncPropelChangeLogBehaviorPlugin: the format of the options in the app.yml have been changed, if you set 'translation_use_i18n' to true the translation of field and object names now is posible
- pkMediaPlugin: changed init_pk_controls() to pkUI()
- sfEasyGMapPlugin: refactored the cache to the web service instance only, added the test-suite execution file and many new tests, GMapApi -> GMapClient and creation of the first pure-php sample, backwards compatiblity for guesAPIKey, add missing setters the GMapCache will need to support geocodeXML as well
- sfUploadManagerPlugin: fixed bugs, updated README and CHANGELOG
- sfFormExtraPlugin: fixed syntax problem in javascript file
- sfAtosPaymentPlugin: transaction_id is not an unique in schema
- csDoctrineActAsAttachablePlugin: removed broken image tag / comments in partials / css, added confirmation message when deleting attachments
- sfDoctrineGraphvizPlugin: added Frame for unittest
- sfDatagridPlugin: fixed IE ajax cache when search
- sfExtraWidgetsPlugin: added sfExtraWidgetFormInputSearch, updated tiny_mce, fixed culture for sfExtraWidgetFormRichTextarea
- sfFilebasePlugin: cleanuanup admin modules, small UI improvements, fixed bug that nested sets tree was not updated when an item was deleted by admin generated modules, improved mime type detection by recursive dependancy list, added usablity improvements in gallery view, icon to edit folder data and a few more little things
- swToolboxPlugin: added documentation note, fixed markdown markup, added an option to disable the init call with the swDoctineDatagrid class, removed argument in swGmapWidget.js
- sfSympalJwageThemePlugin: updated plugin for api changes in sympal
- sfEasyFormPlugin: added possibility to include names in buttons
- sfMicroBlogPlugin: added updateLocation function (supported in twitter_pword/twitter_oauth only), added a sfMicroBlogPluginDemo
- sfFeed2Plugin: fixed issue with content where it should be html and not text/html
- sfDoctrineViewCachePlugin: fixed strict standards notice if no cache
New symfony powered websites
- kiteforum.no: (Norwegian) Norway biggest online community for kitesurfers
They talked about us
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Fri, 2009-06-19 21:39
As promised some weeks ago, I'm proud to announce that Sensio Labs will
organize the second symfony live conference in February 2010.
The symfony live conference is a unique opportunity to meet the symfony
community, talk with the symfony core team, and share your experience with the
framework.
Date and Location
The conference will be held February 16-17th in Paris.
The symfony live conference will take place at the "Cité Universitaire
Internationale" in Paris downtowm.
You can already
register
and benefit from the early bird price.
Call for Papers
If you want to share your real-life symfony experience, consider submitting a
session proposal by sending me an email. More information can be found on the
website.
The Training Day
On the 15th, Sensio Labs will organize one-day trainings on symfony. We will
have 4-5 sessions in parallel but the topics are not yet defined. If you want to suggest a topic, feel free to send me an email.
Help us spread the word about the conference by displaying the official
banners on your blogs, websites, facebook profile page, ...:
To get the latest news about the conference, follow us on
Twitter. If you tweet about the
conference, consider using the official hashtag:
#sflive2010.
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Sun, 2009-06-14 21:41
What a wonderful week for symfony! The first symfony live conference took place with great success. Symfony 1.3 showed some of its new features: poject creation customization and Doctrine as its default ORM. Symfony community also joined the celebration publishing the 600th symfony plugin.
Development mailing list
Development highlights
- r19056: [1.3] added sfFilesystem::execute() and made project:deploy output real-time feedback
- r19110: [1.3] removed old code from database classes that cannot work with both the CLI and the web
- r19116: [1.3] added a --installer option to the generate:project task, and added a --orm option to choose the ORM at project creation time
- r19162: [1.3] added static injection of the event dispatcher to sfFormSymfony, form events
- r19218: [1.3] removed sfPropelPlugin in the default list of plugins in sfProjectConfiguration
- r19242: [1.3] sfPluginManager::installPlugin() now returns the name of the installed plugin
- r19244: [1.2, 1.3] fixed admin gen CSS
- ...and many other changes
Development digest: 243 changesets, 25 bugs reported, 5 bugs fixed, 1 enhancement suggested, 6 documentation defects reported, 2 documentation defects fixed, and 9 documentation edits.
Documentation
New Job Postings
- Symfony developer at www.autoaid.de - full-time based in Berlin, Germany - Contact: info [at] autoaid [dot] de
New developers for hire
- Stefan Koopmanschap: is a long-time professional PHP engineer who is looking for a new challenge. He can do (lead) developer, consulting, training and has a big link with the PHP community as well as the symfony community. He joined the symfony community around 0.6.3 and has been actively advocating symfony. He is not available on project-basis, but is looking at a regular (permanent) contract.
New symfony bloggers
Plugins
<
ul>
New plugins
- hnZendGdataPlugin: An easy way for you to include the Zend Gdata library in your project. Provides APIs for accessing Google services such as YouTube, Picasa, Blogger and Google Docs.
- trOidPropelBehaviorPlugin: provides automatic generation of "Object IDentifier" for any propel object.
- sfWidgetFormInputSWFUploadPlugin: SWFUpload is a small JavaScript/Flash library to get the best of both worlds. It features the great upload capabilities of Flash and the accessibility and ease of HTML/CSS.
- urCronPlugin: a lifestream plugin which permit you to publish on your website your online activity from various social platform.
- sfAuditPlugin: aims at easing a symfony project auditing by automatically finding anything that is a bad (or at least dubious) practice.
Updated plugins
- sfUnobstrusiveWidgetPlugin: updated tests, fixed sfUoStringHelper::getJavascriptConfiguration(), fixed sfUoWidgetFormRange widget, added "configmanager", "loader" and "widget" mock classes, fixed sfUoWidget unit test, updated CHANGELOG and README, fixed examples, fixed sfUoStringHelper::getJavascriptConfigurationCallback method, fixed sfUoStringHelper::getJavascriptConfigurationCallback method, fixed some behavior for sfDynamics
- sfCombinePlugin: fixed call to helper
- sfJqueryFormValidationPlugin: started adding support for more validators
- sfMapFishPlugin: initial import, updated README, updated default print config file for 1.0 release, added missing GeoJSON lib & fixes typo
- sfEasyGMapPlugin: set js_name to global scope so other Javascript functions can access it, solved the "GMap::centerAndZoomOnMarkers($markers) with count($markers)<2 problem" by returning a default zoom of 14 when less than two coordinates are given as argument, extend function GMap::geocode() to enable caching of results to the local database (can be enabled/disabled through app_google_maps_caching)
- pkContextCMSPlugin:
- rewrote the global button support so it doesn't cause chicken-and-egg problems
- documented how to enable fck via pkToolkitPlugin
- added missing required javascript from Toolkit
- added jquery hotkey plugin
- cleaned up default templates bundled with pkContextCMS
- improved editablePathComponentHelper
- handle the global button extensions via sfEvent
- reworked Tabbed navigation sorting, classes, default appearance
- moved some pk-controls CSS over to pkToolkit
- interactive command line installation script
- _login.php no longer contains hardcoded login/logout route names
- fixed issues with admin privileges leaking in non-Trinity-like setups
- added plugin assets web folders
- default layouts styled
- Context and Media sharing app level layout
- updated Templates
- created a simple navigation component
- slightly better fixtures
- default image for logo slot so a home link works right away
- styles are now loaded by loading the helper which makes them useful for global slots in non-CMS actions
- pkMediaCMSSlotsPlugin: global button support rewritten, handle the global button extensions via sfEvent, defaultImage option specifies an image to be displayed when no image has been selected yet for an image slot
- sfDataGridPlugin: added setCriteria to sfDatagridPropel.class.php, added trim for search
- sfI18NTranslatorPlugin: logger handles firebug console, added getContext in action class
- pkToolkitPlugin: fck now has a single home in our projects, tweaked CSS, login screen, moved hotkey js to toolkit from context, disabled keyboard toggle again, added default user admin styles, fixed cancel button, event-default for pk-cancel buttons does not allow ajaxy js to overrule the button
- bhLDAPAuthPlugin: manually merged trunk changes into 1.1 branch, added symfony 1.1 compatibility, security, navigation and other stuff added in the template, updated README, layout navigation tweaks in test app, remember me and SSL plugin url updated in README, fixed navigation to comments, slight modernization of sf_params, fixes for symfony 1.2, updated install instructions
- pkMediaPlugin: added media plugin wrapper div, added pkMedia default layout, partial fix for the public/hidden bug
- sfFilebasePlugin: multi file upload, added CSS stuff on swfupload widget, swfupload css stuff and error events, solved autoload issue of sfFilebasePluginUploadedFile, added swfupload support and tree widget support, added synch mechanism between multi file upload and ext tree
- sfDoctrineApplyPlugin: fixed incorrect references to sfDoctrineApplyApplyForm in README, documentation tweak
- sfExtjsThemePlugin: fix for toolbar handler function, fixed bug where autocomplete wasn't getting columns from edit.display, fixed comboboxautload bug where it wasn't throwing the proper event when the clear trigger was pressed
- sfEzcWorkflowPlugin: fixed the autoload procedure for bundled ezcomponent
- sfSympalPlugin: added ability to configure what class to use for menus, fixed issue with glob(), small changes for tests, added first and last css classes to menu li tags, fixed issue with save and add, BC refactorings (cleaned big ugly classes into smaller and more sensible classes),
- pkPersistentFileUploadPlugin: updated release info
- sfImageTransformPlugin: improved documentation, added new default "fit" thumbnailer, added new line transform for ImageMagick, removed alignment code until its handles correctly multiline text, added generic resize transform and renamed adapter specific transform to sfResizeSimple, rewritten README, added width, height and color to the options for new images, updated thumbnail example, improved transparency when using GD adapter
- sfDynamicsPlugin: fixed some compatibility problems, added explicit exceptions
- ncPropelChangeLogBehaviorPlugin: fixed encoding problems when dealing with mssql databases, class ncchangelogentryActions has been moved to lib/autoNcchangelogentryActions so the ncchangelogentry module can be easily overriden
- dsExtDirectPlugin: fixed bug where in generator where a len of 1 would generate 'this.onRead is not a function' error, updated README
- swToolboxPlugin: fixed issue with functional test generation
- sfDoctrineGraphvizPlugin: command option application is now marked as optional, added PHPDoc blocks, schema form classes files will be now created in data/graph/doctrine, retrieve all models with Doctrine::loadModels, many other code improvements
- sfDoctrineActAsTaggablePlugin: fix to allow gettags work with a set of tags and using machine tagging, some changes to allow getAllTagNameWithCount work with triple=true
New symfony powered websites
- MiFiebre: (Spanish) a web portal of car racing
- Mundo Reggaeton: (Spanish) a web portal of Reggaeton Music
- iBiblia: (Spanish) the latin Bible for the iPhone
They talked about us
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Fri, 2009-06-12 18:00
The symfony live conference is now over. The
first feedback is really good and people looked quite happy. The schedule was
packed with a lot of good sessions, and we had great discussions about the
framework and its future with the attendees.
Thanks You!
I want to thank the 180 people who attended the conference. Without them, such
an event would not have been possible of course.
I also want to thank the organizers (Sensio Labs
and AFUP), our sponsors
(ServerGrove, WaterProof
Software,
CertEurope,
Eyrolles,
and Yahoo! Inc.), all the volunteers who helped
us during the two days of the conference (Christophe Villeuneuve, Nicolas
Silberman, Vincent Bouzeran, Guewen Faivre, Xavier Roldo, Arnaud Limbourg,
Marc Abiven, and Xavier Gorse), and the PHPTV team (Christophe Villeuneuve and
Guillaume Ponçon).
Slides for Today
As for yesterday, here are the slides from the sessions we had today:
The slides are also available from the
conference official website.
And last, but not the least, stay tuned as we will soon announce the next
symfony live conference... and yes this one will be in English.
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Thu, 2009-06-11 13:14
So, today is the first day of the third symfony conference (the first two ones
were the English symfony Camp in 2007 and 2008), but also the first symfony
live conference in Paris.
Photos, tweets, and more
If you were not able to join us, or if you cannot understand French, you can
still follow the conference in near real-time by searching for the
#sflive09fr hashtag on Twitter.
You can also have a look at some photos published on
Flickr.
Videos will be available
To answer one of the most asked question about the conference, I am happy to
confirm that the PHPTV guys are recording all the
conference. They will work hard to be able to publish the first videos as soon
as the end of next week. Kudos to them.
Slides for today
I will update this post regularly with the session slides as soon as I get
them from the speakers. For now, here are the available ones:
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Thu, 2009-06-11 08:29
Before we began working on symfony 1.3, we asked the community about their
priorities
for the framework.
We had a lot of suggestions, and some of them were
contradictory.
As of today, the second and fourth most voted suggestions are: "make Doctrine
the default ORM" and "do not make Doctrine the default ORM". How can we make
everybody happy?
Thanks to the new
installer
feature of the generate:project task, symfony 1.3 is able to create a
project for Doctrine or Propel very easily.
But we still need a default ORM. That was not my
opinion
some months ago, but after some great discussions with members of the
community, I changed my mind. We don't want to bother new users with a
question about the ORM they want to use. How a newcomer can make a choice
between Propel and Doctrine? It is just not possible. We cannot ask him to
read all the documentation just to make a choice. It does not make any sense.
As Doctrine is the future of symfony, we decided to make it the default choice
when creating a new project:
$ php /path/to/symfony generate:project foobar
But if you still want to use Propel, that's not a problem, just add a --orm
option:
$ php /path/to/symfony generate:project foobar --orm=Propel
The implementation is dead-easy, and you will now enjoy a Propel-free project
when using Doctrine, and of course the other way around when working with
Propel.
To sum up, symfony 1.3 support both Propel and Doctrine equally, with a
preference towards Doctrine if you start a new project today.
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Wed, 2009-06-10 14:42
Today, I'm really excited to announce a great new feature for the upcoming
symfony 1.3 version: the ability to customize the project creation process.
Let me explain why it is useful and how you can take advantage of this cool
feature.
Customizing the generate:project Task
As you might know, symfony tasks are classes. As any other class, it is pretty
easy to customize and extend the existing tasks; except for one of them: the
generate:project task. That's because no project exists when you execute
this task, and so there is no way to customize it... until now. The task now
takes an --installer option, which is a PHP script that will be executed
during the project creation process:
$ php /path/to/symfony generate:project --installer=/domewhere/fabien_installer.php
If you enable URL file-access for the include() function in your
php.ini, you can even pass a URL as an installer (of course you need
to be very careful when doing this with script you know nothing about):
$ symfony generate:project
--installer=http://example.com/sf_installer.php
This script is executed in the context of the sfGenerateProjectTask
instance, so you have access to all its methods to do your job, and there is a
bunch of them.
installDir()
The first useful method is installDir(). It allows you to copy a bunch of
files in the newly created project. Let's say you want to add some files here
and there in the default directory structure, create them under a skeleton
directory and add the following code in your installer script:
$this->installDir(dirname(__FILE__).'/skeleton');
runTask()
You can also run another task with the runTask() method. It takes the task
name, and a string representing the arguments and the options you want to
pass to it:
$this->runTask('configure:author', "'Fabien Potencier'");
You can also pass the arguments and the options as arrays:
$this->runTask('configure:author', array('author' => 'Fabien Potencier'));
The task shortcut names also work as expected:
$this->runTask('cc');
You can of course install plugins:
$this->runTask('plugin:install', 'sfDoctrineGuardPlugin');
If you want to install a specific version of a plugin, just appends the needed
options to the argument string:
$this->runTask('plugin:install', 'sfDoctrineGuardPlugin --release=10.0.0 --stability=beta');
If you need to execute a task from a freshly installed plugin, don't
forget to reload the tasks:
$this->reloadTasks();
Loggers
As you are inside a task context, you can log things pretty easily:
// a simple log
$this->log('some installation message');
// log a block
$this->logBlock(array('', 'Fabien\'s Crazy Installer', ''), 'ERROR');
// log in a section
$this->logSection('install', 'install some crazy files');
You can ask a confirmation:
if (!$this->askConfirmation('Are you sure you want to run this crazy installer?'))
{
$this->logSection('install', 'You made the right choice!');
return;
}
You can also ask any question:
$secret = $this->ask('Give a unique string for the CSRF secret:');
Or ask a question and validate the answer:
$validator = new sfValidatorEmail(array(), array('invalid' => 'hmmm, it does not look like an email!'));
$email = $this->askAndValidate('Please, give me your email:', $validator);
Filesystem Operations
If you want to do filesystem changes, you can access the filesystem object
like this:
$this->getFilesystem()->...();
It's just a PHP script
The installer script is just another PHP file. So, you can do pretty anything
you want. Be creative!
Example Script
Here is an example that uses a lot of the possibilities described above:
<?php
$this->logBlock(array('', 'Fabien\'s Crazy Installer', ''), 'ERROR');
if (!$this->askConfirmation('Are you sure you want to run this crazy installer?'))
{
$this->logSection('install', 'You made the right choice!');
return;
}
$this->installDir(dirname(__FILE__).'/skeleton');
$this->runTask('plugin:publish-assets');
$validator = new sfValidatorEmail(array(), array('invalid' => 'hmmm, it does not look like an email!'));
$email = $this->askAndValidate('Please, give me your email:', $validator);
$this->runTask('configure:author', sprintf("'%s'", $email));
$secret = $this->ask('Give a unique string for the CSRF secret:');
$this->runTask('generate:app', 'frontend --escaping-strategy=true --csrf-secret='.$secret);
$this->runTask('plugin:install', 'sfDoctrineGuardPlugin');
$this->reloadTasks();
$this->runTask('guard:create-user', 'fabien SuperPassword');
$this->runTask('cache:clear');
The Sandbox Creation Process
You probably know the symfony sandbox. It's a pre-packaged symfony project
with a ready-made application and a pre-configured SQLite database. It helps
newcomers bypass the command-line altogether as they just have to download the
archive and they are ready to go.
The sandbox is nothing more than a bunch a commands executed before the
archive is created. Until now, this job was done by the
data/bin/create_sandbox.sh script. As of symfony 1.3, it is just an
installer script. So, you can create a project that is the same as the sandbox
like this:
$ php symfony generate:project --installer=/path/to/symfony/data/bin/sandbox_installer.php
Is it useful to create a sandbox? Probably not. But you can have a look at the
installer script as a good example of what can be done:
$this->installDir(dirname(__FILE__).'/sandbox_skeleton');
$this->logSection('install', 'add symfony CLI for Windows users');
$this->getFilesystem()->copy(dirname(__FILE__).'/symfony.bat', sfConfig::get('sf_root_dir').'/symfony.bat');
$this->logSection('install', 'add LICENSE');
$this->getFilesystem()->copy(dirname(__FILE__).'/../../LICENSE', sfConfig::get('sf_root_dir').'/LICENSE');
$this->logSection('install', 'default to sqlite');
$this->runTask('configure:database', sprintf("'sqlite:%s/sandbox.db'", sfConfig::get('sf_data_dir')));
$this->logSection('install', 'create an application');
$this->runTask('generate:app', 'frontend');
$this->logSection('install', 'publish assets');
$this->runTask('plugin:publish-assets');
$this->logSection('install', 'fix sqlite database permissions');
touch(sfConfig::get('sf_data_dir').'/sandbox.db');
chmod(sfConfig::get('sf_data_dir'), 0777);
chmod(sfConfig::get('sf_data_dir').'/sandbox.db', 0777);
$this->logSection('install', 'add an empty file in empty directories');
$seen = array();
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(sfConfig::get('sf_root_dir')), RecursiveIteratorIterator::CHILD_FIRST) as $path => $item)
{
if ($item->isDir() && !$item->isLink() && !isset($seen[$path]))
{
touch($item->getRealPath().'/.sf');
}
$seen[$item->getPath()] = true;
}
That's pretty much it...
Instead of running the same tasks again and again each time you create a new
symfony project, you can now create your own installer script and tweak your
symfony project installations the way you want.
I hope you will find useful usages for this new feature. If you create great
installer scripts, please share them with the community (copy the URL in the
comments).
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Sun, 2009-06-07 21:46
This week, some members of the symfony community started proof-reading english documentation to fix typos and grammar mistakes. In addition, symfony 1.3 branch achieved a very remarkable milestone with more than 9,000 tests. Lastly, in a few days, the first official symfony conference will take place at Paris, so stay tuned for news.
Development mailing list
Development highlights
- r18835: [1.2, 1.3] fixed a bug on Propel/Doctrine route generation
- r18907: [1.3] changed the way how esc_js_no_entities works, so that it will not kill utf-8 strings passed and is a bit more friendly in general to all non javascript special characters
- r18917: [i18n-icu2dat] updated icu importer
- r18926: [1.3] updated sorting of all locale dependend arrays to use the user locale
- r18928, r18929: [1.3] updated i18n data fiels from icu
- r18930: [i18n-icu2dat] tweaked the icu update script to be a bit more robust
- r18933, r18934: [1.3] tweaked the icu update script to be a bit more robust
- r18955: [1.2, 1.3] fixed case insensitivity of module name when checking module.yml for a partial view class
- sfDoctrinePlugin:
- r18971: [1.2, 1.3] fixed issue where application option was not passed to load data task
- ...and many other changes
Development digest: 206 changesets, 34 bugs reported, 26 bugs fixed, 8 enhancements suggested, 7 enhancements closed, 5 documentation defects reported, 6 documentation defects fixed, and 20 documentation edits.
Documentation
New Job Postings
New symfony bloggers
Plugins
Updated plugins
- sfAdminDashPlugin: use the "image_path" helper to get a images in relative url root dir
- sfSimpleGoogleSitemapPlugin: removed versionned plugin packages
- sfUnobstrusiveWidgetPlugin: removed white space from doc file name and from "learn by example", refactoring and added tests
- dsExtDirectPlugin: fixed bug where file upload requests were failing, enhanced error reporting so suppressed errors do not cause an exception to be thrown
- sfSympalPlugin: removed old docs, fixed inconsistancy with method names for retrieving current site record and site slug, fixed a few rendering problems of content slot forms, changed Content tab to Settings, current logged in user now is the default "created by" user, fixed get_sympal_yui_path() to work a little better so Yahoo cdn can be used and removed two file_exists() checks, fixed rendering of content type templates, cleared app.yml cache when configuration is changed, added better exception throwing when you install sympal and access it from a different application
- pkContextCMSPlugin: new markup compatible with new styles, changes to the standard slots to work with the new CSS and markup regime, migrated CSS, fixed history browser bugs, wording enhancement, login partial, settings Radio Buttons, turned off Apostrophe toggle temporarily, disabled displaying fields we don't actually have yet, fixed Init_Shadows() bug, drag handle for subnav helper
- sfWebServerPlugin: added two patches to follow symlinks and to add a hack for rewrite rule of symfony, fixed issues with sf web dir and static files
- sfSympalBlogPlugin: fixed issue with pgsql groupBy
- sfSpyPlugin: refactored sfSpyFilter to ease customization
- sfTaskExtraPlugin: fixed new line issue when building plugin package.xml contents
- swToolboxPlugin: allow an action to block sendinf a email, added swValidatorTextYaml validator, convertFileInformation now detect the symfony version as the files bugs has been fixed with sf1.2.7
- pkToolkitPlugin: added PK Apostrophe Icons, migrated apostrophe js to pkToolkit as pkUI.js, fixed pkUI History Cancel button target bug, migrated pkAdmin generator theme
- pkMediaPlugin: migrated CSS back to plugin, fixed validation of radio buttons, added more templates, corrected defaults
- bhLDAPAuthPlugin: initialized projects, with externals, admin app(s) initiated except for Doctrineland, all 4 test projects work with their respective versions of symfony but bhLDAPAuthPlugin is not set up in any of them yet, correctly turned off recursive groups
- sfEasyGMapPlugin: added the very useful functions GMapMarker::isInsideBounds and GMap::getBoundsFromCenterAndZoom, erased useless branches and created a unique dev branch, added js shortcuts (especially useful when adding many markers), [dev branch] Shortcuts disabled by default, mandatory prefix to avoid collisions, much simpler variable name generation, added an address auto-completer which facilitates Google Geocode Requests to retrieve possible addresses, geocode requests are performed entirely via Javascript and therefore do not count towards your API key's daily request limit, added state information
- crJossoPlugin: fixed roles variable not properly initialized in method getRoles()
- sfLucenePlugin: added more default types in solr version
- sfExtjsThemePlugin: fixed null value setting for all columns, reworked comboboxautoload, fixed a bug with column type setting, added ext2.2 cumulative checkbox bugfixes, fixed up actions to make more flexible
- sfCombinePlugin: fixed cleanup task, added gzip support, added doctrine support, added better controls on assets to skip, added task for 1.2 branch and fixed apc cleanup, updated README, bypassed buggy internet explorer versions from gz compression, delete extensions in order to compare assets to be ignored by the merge
- sfXssSafePlugin: added checks if escaped value is null, fixed lime path in unit tests, added html purifier autoloading test
- sfDataGridPlugin: addslashes() on templates for comluns with appostrophes, added managment of Multiple forein key in a same table
- lcOpenInviterPlugin: initial import
- sfDoctrineApplyPlugin: fixed id in resetRequestSuccess.php
- sfExtjs3Plugin: added a fix to properly quote templates passed to a groupingView with the groupTextTpl config option
- sfPropelHelper: initial commit, updated unit-tests, made implementation of helper a little more strict
- swDoctrineAssetsLibraryPlugin: added the correct model name
- sfFilebasePlugin: added swfupload, multi file upload widget
- pkPersistentFileUploadPlugin: fixed image-preview is always turned on regardless of the actual option setting, added documentation of how to use that option
- sfDoctrineGuardExtraPlugin: created 1.3 branch, fixed strict warning
- sfMicroBlogPlugin: rename all plain twitter function into TwitterPword
New symfony powered websites
- Lexco: (English) bike parts & accessories
- Lane Boots: (English) handmade cowboy boots for everyone
- Vaison en Provence: (French) Vaison-la-Romaine Tourism Office
- El Divendres: (Catalan, Spanish) a website for ads captation for a classifieds magazine
- Kids&Us: (Catalan, English, Spanish) language school website with dynamic content
- Cip Design: (Catalan, English, Spanish) corporate website with dynamic content
- XF-Estudimodels: (Spanish) photo studio website with content management system
- GRUPDAFE Formación: (Spanish) corporate website for a e-learning company with dynamic content
- Museu Comarcal de Manresa: (Catalan) website of a local museum with content administration
- Construeix: (Catalan, Spanish) company dedicated to the construction and interior design
- Denominació d'Origen Pla de Bages: (Catalan, English, Spanish) catalan D.O. wines website
- Remsa: (Catalan, Spanish) sale and maintenance of office equipments
- Teatre Kursaal: (Catalan) web of the Kursaal Theatre with dynamic content
They talked about us
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Thu, 2009-06-04 09:07
As announced when we released it initially, the support for the 1.1 version of symfony comes to its end - targeted for the end of June 2009.
Nowadays, the only good reason to still use Symfony 1.1 is it's compatibility with PHP 5.1. So if you are using Symfony 1.1 and are running php 5.2.4+, we strongly advice you to upgrade your project to the latest 1.2 version of Symfony as soon as possible. The upgrade process is fully documented, and should be a no-brainer.
For those of you who can't upgrade the PHP version they use in production, e.g. those using and running the latest long-term support RHEL, you will be pleased to know that security-related patches will be applied during one more year to the 1.1 branch. So your existing project running Symfony 1.1 on PHP 5.1 are safe until June 2010.
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Tue, 2009-06-02 08:44
I love books! And I buy a lot of them. When I was young, I dreamt about
writing a book. And thanks to symfony, my dream became true two years
ago with the publication of the
"Definitive Guide to symfony"
book, published by APress. This book was co-authored with François Zaninotto and
it covers symfony 1.0. Last year, I wrote yet another book on symfony,
"Practical symfony", to cover the new symfony 1.2 version. This book has been a huge
success online, and was self-published on lulu.com.
Practical symfony
Today, I'm very proud to announce the immediate availability of the second
edition of the "Practical symfony" book. This second edition is the result of
all the updates we made since the first edition. We have also added an index
to ease finding important information. It is the first book published by
Sensio Labs as a publisher and it is available
at online bookstores, like Amazon.com:
As always, you can also read the book for free online
(Propel and
Doctrine), and you
can even download it as a free PDF
(Propel and
Doctrine).
Symfony : Mieux développer en PHP avec Symfony 1.2 et Doctrine
Being French, many people asked for a French version of the book, and
thanks to Eyrolles, you can now enjoy reading the
"Symfony : Mieux développer en PHP avec Symfony 1.2 et Doctrine"
book. It is an enhanced version of the
English book, with more than 480 pages, and three unpublished appendices about the settings.yml and
factories.yml configuration files. The book is of course available in
traditional bookstores like la Fnac, but also online on
amazon.fr.
As I like free stuff, you can download two chapters for free, and all the
appendices:
The symfony 1.2 Reference Guide
Some time ago, I
wrote about
yet another book on symfony, a symfony reference guide. The "Pratical symfony"
book is a great way for a beginner to learn symfony, understand how it works,
and also see best web development practices in action. But when you begin
working on your own projects, you need a reference guide. A book where you can
easily find answers to your questions at your fingertips. The Symfony 1.2
Reference Guide book aims to provide such a guide. It acts as a complementary
book to Practical symfony. This is a book you will keep with you whenever
you develop with symfony. This book is the fastest way to find every available
configuration thanks to a very detailed table of contents, an index of terms,
cross-references inside the chapters, tables, and much more. Here is the table
of contents:
- The YAML Format
- Configuration File Principles
- The settings.yml Configuration File
- The factories.yml Configuration File
- The generator.yml Configuration File
- The databases.yml Configuration File
- The security.yml Configuration File
- The cache.yml Configuration File
- The routing.yml Configuration File
- The app.yml Configuration File
- The filters.yml Configuration File
- The view.yml Configuration File
- Other Configuration Files
- Events
- Tasks
Published by Sensio Labs, the "Symfony 1.2 Reference Guide" book will be
available sometime later this month as a printed book. To give you the gist of
the book, I have made three chapters available for download now as PDF files:
The Guide to Doctrine 1.0
If you follow me on Twitter and use Doctrine
as your preferred ORM, you are probably aware that Sensio Labs will also
publish a book on Doctrine soon. Written by the Doctrine core team (Jonathan
Wage, Konsta Vesterinen, Roman S. Borschel, and Guilherme Blanco), this book
will be the definitive guide on Doctrine 1.0.
I hope you will enjoy reading the symfony documentation on paper!
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Sun, 2009-05-31 22:01
Symfony CLI and tasks focused development activity during this week. In addition, symfony introduced its getting started guide, that will become the definitive place to find all the information related to the symfony installation process.
Development mailing list
Development highlights
- r18633: [1.3] cleaned up output of project:permissions task when chmod operations fail
- r18661: [1.3] added more files generated by SCM tools to the rsync exclude configuration
- r18662: [lime] fixed the returned value of a test harness when the only errors come from files that return a dubious status
- r18666: [1.0, 1.1, 1.2] updated lime to 1.0.6
- r18669: [1.2, 1.3] fixed sfBrowser::click() when several links and buttons have the same value
- r18677: [lime] fixed failing test
- r18678: [lime] fixed returned value from the test command when some tests fail
- r18694: [1.2, 1.3] fixed problem with propel:data-dump task under some Linux distro
- r18706: [1.0] fixed symfony test suite return value in case of an error
- r18727: [1.3] removed the --dry-run option of the symfony CLI
- r18728: [1.3] added a new --color option to the symfony CLI
- r18730: [lime] deprecated lime_output_color
- r18731: [1.3] added support for the new --color option for the test tasks
- r18734: [1.1, 1.2, 1.3] fixed loading order of tasks
- r18770: [1.3] fixed checkbox and radio selects to render an empty string when no choice are provided
- r18795: [1.3] exempted hidden fields from removal in useFields()
- sfDoctrinePlugin:
- r18663: [1.3] fixing failing test case. Count should be called before query is executed
- ...and many other changes
Symfony components
- yaml:
- r18628: added the official YAML website URL to the README file
- r18732: added support for colorizing output of the test task under Windows
- event dispatcher:
- r18732: added support for colorizing output of the test task under Windows
Development digest: 188 changesets, 18 bugs reported, 13 bugs fixed, 5 enhancements suggested, 1 enhancement closed, 9 documentation defects reported, 4 documentation defects fixed, and 3 documentation edits.
Documentation
Plugins
- New plugins
- sfYandexMapPlugin: provides helpers and an objet-oriented PHP abstraction to the Yandex Maps API to ease the process of adding a Yandex Map and customising it in your symfony projects.
- dataSourceImapPlugin: an IMAP access layer that works in combination with sfGrid to give easy but controllable access to an IMAP inbox. The IMAP communication is based on Net_IMAP and can be used without sfGrid as a standalone library.
- sfDataSourcePlugin: provides an interface and some implementations that provide generic data access. Currently implementations for an Array, Propel and Doctrine are provided.
- sfPropelHelperPlugin: makes it easier to do non-default-joins. Instead of the limited doSelectJoin(xxx) Peer-Methods you are now free to do any join you desire and let the result get hydrated automatically.
- mbElectronicPaymentPlugin: universal electronic payment plugin for symfony.
- lcFlowPlayerPlugin: allows users to embed video and audio streams into your webpage.
- sfWidgetFormTreePlugin: creates checkbox/radio group out of a tree structure.
- sfPHPMailerPlugin: (no description)
Updated plugins
- sfUnobstrusiveWidgetPlugin: changed default template name in configuration and updated documentation, added "learn by example" documentation, added more documentation, updated readme and package's template, added i18n and controller options and "translate" method, refactoring
- sfFilebasePlugin: fixed various bugs in core filebase, PluginsfAbstractFile not longer declared abstract, tags are now stored in the same relation for more easy filtering, added tag cloud support to admin area, fixed a bug in sfFilebaseTask * tasks preventing accessing sfContext in a multi application environment, fixed a bug in task which could not get a context in a multi app environment
- sfMicroBlogPlugin: added lib/vendor/facebook, added untested support for facebook update status, beautifullation and successfully tested facebook status update, added support for isValidAuth()
- isicsBreadcrumbsPlugin: fixed README
- dsExtDirectPlugin: exception messages will now only be displayed if the router is in debug mode, added ability to parse actions/methods from plugins, added better exception handling for forwards from an action or filter, fixed bug where a formhandler request may be falsely interpreted as a file upload
- sfWebRPCPlugin: JSON bug fix
- sfLucenePlugin: update task, updated sfLucene class, fixed query stuff, fixed config solr config file creation
- pkToolkitPlugin: fixed multiple culture search indexing problem, don't display pager when not needed
- sfGridPlugin: removed datasource imap since it has become a new plugin on its own
- sfJqueryReloadedPlugin: updated jQuery to 1.3.2, updated jQuery UI to 1.7.1, added experimental support for draggables and droppables, cleanup of sortable to use json_encode wherever appropriate
- pkContextCMSPlugin: minor tweaks in sidebar helper, continued work on pagetree, beginning of support for global admin buttons added by plugins that extend pkContextCMS, added on delete cascade for privileges, force user to login action if they try to use an AJAX action after timing out, conventional radio buttons instead of pill buttons, defaults made explicit to work around null issue
- sfZ3950Plugin: enhancement of the Z39.50 query log into the debug bar, enhancement of the Z39.50 query log into the debug bar (add limit and colors), added parsing control on where condition
- sfXssSafePlugin: created branches, updated to HTML Purifier 3.3.0, included autoload if bootstraps is not already loaded, updated unit tests to allow fullscreen on flash object, updated README, renamed sfXssSafeObject class sample to avoid autoload, added missing classes from html purifier 3.3 library
- pkMediaCMSSlotsPlugin: added CMS global admin button for media
- csFormTransformPlugin: added Schema Class to row decorator
- sfAtosPaymentPlugin: fixed an unique can't be null in SQL
- sfEasyDebugPlugin: ::assert dont echo stacktrace in prod env
- sfUploadManagerPlugin: fixed bug in sfuploadedFile and sfUploadManagerValidatorFile classes, fixed findObsoletes method, added reset task
- sfAdminDashPlugin: improvements when using the option include_jquery, added the csrf_token field in partial _login.php to work properly with the login form in sfGuard plugin, added functionality to allow set the include_path option in the app.yml file, added functionality that allows you to add items on the menu unless you belong to the Menu drop-down, fixed getCategories() method in sfAdminDash.class.php, fixed the duplicate "sf_admin_footer" class in _footer.php, tweaked default.css styles, improvements in the interface translation, added xliff file to translate the inteface to spanish
- swToolboxPlugin: added small changes
- sfSimpleBlogPlugin: fixed doctrine >= 1.0 compatibility
- sfDynamicsPlugin: switched the web debug toolbar into plugin configuration class to avoid compatibility problems with symfony 1.1
New symfony powered websites
They talked about us
Be trained by symfony experts
- Jun 24 Paris - Jun 29 San Francisco - Jul 22 Paris - Sep 23 Paris - Oct 21 Nantes
Tue, 2009-05-26 09:20
Today, I have published a
"Getting Started" tutorial
for symfony 1.2.
Why a new Guide?
As of now, the information needed to install symfony were available but they
were disseminated in many different places (the installation page, the Jobeet
tutorial, the old symfony book). But the main problem was that the best way to
install symfony was not the easiest piece of information to find.
This new tutorial aims to become the definitive place to find all information
related to the symfony installation process. It describes in great details
everything you need to know to install symfony correctly. The goal is to also
provide a single resource for people wanting to try out the framework and
avoid discouraging them with a bad installation experience.
I have also rewritten the 1.2 installation page with
a link to this new tutorial and cleaned up the information it gives to avoid redundant information.
The same goes for the main symfony homepage.
What's Next?
As this guide is mainly for newcomers, I really think everybody following this
blog has something to say about it. I am for instance thinking about writing a
troubleshooting section at the end of the tutorial to describe the common
problems that can arise and their solutions. Feel free to send me an email
about your idea, or discuss them in the comments.
Be trained by symfony experts
- May 27 Paris - Jun 03 San Francisco - Jun 24 Paris - Jul 22 Paris - Sep 23 Paris
Sun, 2009-05-24 21:47
Symfony plugins contributed this week to most of the 212 total changesets committed to symfony repository. In total, 37 plugins were updated and 5 new plugins were introduced.
Development mailing list
Development highlights
- r18492: [1.0, 1.1, 1.2, 1.3] fixed exception page should execute html/javascript code when using html format
- r18498: [1.2, 1.3] fixed invalid assumption that empty dates evaluate to false
- r18606: [1.0, 1.1, 1.2, 1.3] fixed format_currency returns Exponents
- sfDoctrinePlugin:
- r18418: [1.2] updated symfony 1.2 to use latest Doctrine tag of 1.0.9
- ...and many other changes
Symfony components
- yaml:
- r18483: added an introduction chapter
Development digest: 212 changesets, 23 bugs reported, 8 bugs fixed, 3 enhancements suggested, 5 documentation defects reported, 6 documentation defects fixed, and 21 documentation edits.
Documentation
New developers for hire
- blinkworks: provides web application design and development to clients throughout the UK, harnessing the latest in web technology and design.
- Dev It Now: is an international (USA, Ukraine) team of web designers and web developers. We develop a high quality websites from start to end for a reasonable price and maintain our websites. We are interested in direct connections and pay middleman commission.
New symfony bloggers
Plugins
- New plugins
- yacfPlugin: this is Yet Another Combine Filter modeled after sfCombineFilter which combines and compresses javascript (TODO: css) files into one file (all.js) storing filenames in a cache file.
- sfRESTClientPlugin: provides an API for client interactions with RESTful web services that is higher level than the sfWebBrowser plugin (upon which it depends).
- sfCoolTipPlugin: adds prototype based tooltips.
- sfZ3950Plugin: an interface for a server using the Z39.50 protocol.
- idHttpAuthPlugin: (no description)
Updated plugins
- sfExtjs3Plugin: small mods to sfExtjs3Object, added renderFunctionCallThis() method to render function for this class
- sfJqueryFormValidationPlugin: fixed issue causing script errors in Internet Explorer, updated package and license info
- sfFilebasePlugin: recursive directory copying & moving, added admin interface, huge cleanup, regenerated docs, fixed bug in file upload form, updated README
- sfGridPlugin: added Propel-hack to support joins with conditions
- sfGuardExtraPlugin: only register routes for enabled modules, fixed phpdocs
- sfMinifyPlugin: fixed phpdocs
- sfDoctrineGuardExtraPlugin: merged 18401 to doctrine version, fixed register embed forms and changed to BaseFormDoctrine, use doctrine getTable for queries, fixed double error messages, change to function var and added flash parameter
- sfSympalPlugin:
- fixed sympal_content to not include content records from other sites
- increased time flashes display to 10 seconds
- fixed issue with menu manager checkUserAccess() hiding menu items
- fixed the adding of duplicate context menu items on ajax refresh
- removed ability to add new content types from browser
- enhanced User::toString()
- added jquery js and css to local copy instead of linking to google code
- fixed checkContentSecurity() to throw sfStopException
- fixed pgsql issues with schema and duplicate index names
- fixed layout changing so old layouts css are removed if layout/theme is changed
- refactored layout setting and caching found layouts
- fixed markdown rendering to not wrap php code in php tags if tags already present
- fixed backend rich text editor
- fixed bugs for pgsql (all tests pass now under mysql, sqlite and pgsql)
- removed old code for caching that does not work in prep for new cache controlling
- initial entry of sandbox
- more optimizations and small changes
- fixed content admin generator list
- pkMediaPlugin: tweaked editImageSuccess template, fixed reference to $mediaItem that should have been $item, media edit form business
- sfDoctrineActAsRattablePlugin: updated README, started RattableTemplate, env. update, unitest starting, fixed unitests, added some module to test helpers, added two helpers
- pkContextCMSPlugin: added first version of repairtree task, fixed errors when "deleting" a slot that hasn't actually been saved yet, support hooks for returning search results with scores, fixed drag and drop reordering, added page tree
- dsExtDirectPlugin: fixed warning created by the generator when the front controller file does not exist, improved error handling, removed name parameter in generator, fixed params in error handler, added support for custom action and method names to be set via doc comments
- csSEOToolkitPlugin: fixed issues on the custom 404's page, added ie6update support
- isicsSitemapXMLPlugin: fixed README, updated package.xml
- isicsBreadcrumbsPlugin: fixed README, updated package.xml
- sfSimpleBlogPlugin: fixed link in comment admin with symfony 1.1
- sfPixlrPlugin: added pixlr express support, added default config file
- sfExtraWidgetsPlugin: fixed sfExtraWidgetFormInputMoney.class.php when value is null, added time field possiblity, added sfExtraWidgetFormInputDatepickerTime widget, added sfExtraValidatorDatepickerTime validator, fixed culture in sfExtraWidgetFormInputMoney
- sfJqueryWidgetsPlugin: added new extra_data sortable option, fixed bug with extra comma in JSON when optional was empty
- swToolboxPlugin: updated cross link application features, added missing autoload stuff
- pkToolkitPlugin: added arrayPager class from symfony snippet, support for returning search results with scores
- sfDynamicsPlugin: fixed minor bug in renderer and assetCollectionDefinition classes, removed stylesheet from jquery.all package
- sfSSOPlexcelPlugin: switch off parameter fix
- sfUnobstrusiveWidgetPlugin: improved compatibility with sfDynamics plugin, added some documentation
- sfLucenePlugin: created the branch for solar version, first beta release of Solr version
- sfExtjsThemePlugin: changed the ComponentMgr method to GET as POST was causing an empty POST issue with IIS, moved Ext.ux.IconMgr to a zip file to ease SVN size/usage
- nahoWikiPlugin: fixed Object of class Text_Diff could not be converted to string, fixed translations, added helper "translate_namespaces" to reformat page names with expanded namespaces
- sfUploadManagerPlugin: added configuration in schema to choose connection
- csDoctrineSlideshowPlugin: added renderer for GoogleSlideshow2, adds parsing of "Options" form, fixed issue when switching slideshow renderers, addressed bug when string literals "true" and "false" are used for options, ensured renderers use ordered slides
- sfDoctrineApplyPlugin: added I18N to reset mail subject and sender
- ckWebServicePlugin: updated ckSoapHandler to use built-in soap error handling only if sf_debug is enabled, updated functional test bootstrap script to allow to change the environment, started updating README, fixed bug in WSMethod annotation, fixed erroneous use of empty(), update to recent api change of ckWsdlGenerator, added section about SOAP Faults and exceptions to README, added functional tests for new code snippets in README, extended ckTestSoapClient to automaticly use a getter method if a property is not public, fixed bug in recent enhancement of ckTestSoapClient, fixed bug in offsetSet, added implementation of a new object wrapper layer which allows to transparently transform orm objects to simple objects mappable by the soap implementation
- sfJobQueuePlugin: moved some logic from tasks to handler classes
- bhLDAPAuthPlugin: initial 1.2 branch, parent::signIn params for 1.2 compatibility, fixed typo in remember checkbox name, Doctrine specific fixes, code cleanup
- csDoctrineActAsGeolocatablePlugin: fixes kilometer bug (miles and kilometers were flip flopped), addressed bug when renaming model names
- diaToPropelPlugin: added support for split schema (both xml and yml), updated documentation
- sfImageTransformPlugin: fixed transparency issue with GD images
- sfWebRPCPlugin: fixed xdomrpc double json encode, paramater in json/jsonp/xdomrpc are now jsonencoded in the url, added a 'must_post' option in generator.yml to force call to be a post
New symfony powered websites
- Blendow Group AB: (Swedish) swedish company working in the field of legal information and education
- BG Publishing: (Swedish) an online bookstore focusing on legal titles
- BG Institute: (Swedish) swedens biggest and leading education/seminar organizer with focus on law
- The Ministry of Culture and National Heritage: (Polish) polish Ministry of Culture and National Heritage Website
- NetCV: (English, French) online Curriculum Vitae builder
- NaSpolke.pl: (Polish) social site with main idea "do things together"
- qdPM: (English) is a free project management tool for small team. Using qdPM you will save time managing your job.
- JefeDeCompras: (Spanish) search engine about ads for freelances and companies in Spain
They talked about us
Be trained by symfony experts
- May 27 Paris - Jun 03 San Francisco - Jun 24 Paris - Jul 22 Paris - Sep 23 Paris
Sun, 2009-05-17 21:39
Symfony core development was focused this week on tests, adding new convenience methods, options and tasks. Moreover, sfFormSymfony and BaseForm classes were introduced, easing symfony forms extension. Lastly, the new symfony components website was unveiled.
Development mailing list
Development highlights
- r18129: [1.3] added sfTesterResponse::matches()
- r18135: [1.1, 1.2, 1.3] added some missing phpdoc information
- r18136: [1.1, 1.2, 1.3] fixed return value from test:* tasks
- r18138: [1.3] added symfony:test task in remplacement for the prove.php script
- r18139: [1.3] added a --only-failed option to test:all and symfony:test tasks
- r18140: [lime] added lime_harness::get_failed_files()
- r18164: [1.1, 1.2, 1.3] fixed error message when an UPLOAD_ERR_INI_SIZE occurs on an uploaded file
- r18277, r18278, r18279, r18283: [1.3] fixed widget testcases to work on windows as well. Added a fix_linebreaks() function to unit-test bootstrap that can be used for converting heredoc strings (having os dependend linebreaks) into
linebreakes generated by symfony
- r18300: [1.3] fixed functional bootstrapping of symfony testcases
- r18301: [1.3] fixed implementation of formatter max line size
- r18302: [1.3] updated WHATS_NEW
- r18331: [1.3] added sfFormSymfony and BaseForm classes
- r18339: [lime] added missing PHPDoc
- ...and many other changes
Symfony components
- yaml:
- r18218: added documentation for the YAML library
- r18219: added a README file
- r18297, r18298: updated the PHPDoc
- r18320: standardized capitalization of sfYaml class in documentation
Development digest: 273 changesets, 37 bugs reported, 21 bugs fixed, 10 enhancements suggested, 4 enhancements closed, 3 documentation defects reported, 5 documentation defects fixed, and 24 documentation edits.
Documentation
New developers for hire
- bytepark GmbH: was founded in 2001 and is an owner-operated agency for digital communications, providing companies with support for their online activities. The core services include the conception, development, and management of custom-tailored online communications solutions and web applications. We are located in Berlin/Germany, speak English and German and have been working with symfony since 2006 in several dozen projects.
- Felix-Gabriel Gangu: is a PHP professional with more than 10 years of experience in developing enterprise ready applications and architectures based on PHP. He loves to use Symfony since 2006 and is always open to new projects. He also offers OOP PHP and Symfony related trainings. Located in Germany, speaking German, Romanian and English.
- Jeff Parker (jeff [at] smackblast [dot] com): is a Midwestern US-based freelance symfony and PHP developer with a focus on non-profits, educational institutions, and web hosting companies. I have done all types of corporate development and am intimately familiar with implementing analytics solutions from Omniture SiteCatalyst to Google Anaytics, PPC solutions and campaign management systems. Additionally, I've implemented several shopping cart/order form systems using the Pirin API (Rodopi) and the Ubersmith API with the Google Web Toolkit.
New symfony bloggers
Plugins
Updated plugins
- sfDataGridPlugin: fixed imposible to find column exception
- DbFinderPlugin: added more details on the availability of getLatestQuery(), added magic handling of filterByXXX() methods, refactored sfModelFinder::__call()
- sfSimpleBlogPlugin: fixed case sensitivity issue
- sfFilebasePlugin:
- updated README
- minor improvements
- added sample project
- updated docs
- added makedoc
- added sfFilebasePluginValidatorFile
- improvements concerning symfony integration
- fixed bug in helper
- added flag in sfFilebaseDirectory::delete() to recursive delete
- improved mime recognition
- added docs on imagefunctions and preserveTransparency for GD thumbnails
- FilebaseValidator can now be used within admin generator
- fixed demo
- added plugin resources
- regenerated docs
- fixed indentation in schema.yml
- migrate to doctrine
- pkContextCMSPlugin: attempts to address it by ignoring the existing contents if the slot has the wrong type or there are multiple slots, robust typechecking of slots, fixed problem that prevented the editing of other page settings when local editors have been set for a page, fade-in rather than 'show' for slot editors, improved history summaries using strong and strike tags for clarity and more precisely expressing what changed in the all-important first line, enabled drag and drop reordering of tabs, fixed problems with reordering subpages, managers now have implicit editor privileges, implemented and documented app_pkContextCMS_title_prefix with optional internationalization
- sfSympalPlugin: miscellaneous fixes, fixing Route model so routing cache is cleared when a route is deleted, added more general test coverage, query optimizations, refactored route building for content records, added missing join for content template, updated content admin generator filters, fixed content admin generator help, added view button to list results, optimized content admin generator and ehnanced visually
- sfMicroBlogPlugin: added twitter_oauth (allows accessing twitter without having to ask your user for his password)
- sfWebRPCPlugin: fixed XDOMRPC var name, allowed to pass parameter other than string/integer in json/jsonp
- sfSymfonyPluginsAPIPlugin: active the liste of the plugins
- sfWebBrowserPlugin: fixed sfCurlAdapter destructor, fixed sf1.2 compatibility issue for custom exception, fixed a few limit case bugs and made the tests pass, fixed installation instructions
- sfEasyGMapPlugin: correction of a small mistake in GMapMarker.class.php
- sfFormExtraPlugin: updated package.xml file
- sfGridPlugin: fixed bug in imap-datasource merging results in search with OR
- sfSympalBlogPlugin: fixed blog list template
- pkMediaPlugin: support for other video hosts via embed codes, media browser never displays images scaled bigger than actual size
- sfJobQueuePlugin: added new job handler for processing shell commands, added more phpdoc, added generic log method for job handlers, started to refactor job logging, renamed notifier field of logger to subject
- sfAmfPlugin: added extended error handling
- sfUploadManagerPlugin: initial commit, disable security by default, added postDelete hook to also delete file, fixed getTempPath method, added findObsolete method, added tasks to manage uploaded files and security black/white list, added some documentation
- pkToolkitPlugin: added some minor logging which should have no impact on site operation in order to try to track down an issue with pasting tables into FCK, pkString::diff() now does a smarter job with the all-important first removed and added lines
- sfSSOPlexcelPlugin: added a new module sfGuardSSO and updated the validator, updated README
- dsExtDirectPlugin: initial import
- memiFolderPlugin: initial import
- sfAssetsLibraryPlugin: fixed the init_asset_library() helper, added Italian translation, fixed image path on Windows systems
- sfDynamicsPlugin: refactored assets definition collections, implemented image_path_prefix option for stylesheets, updated url finder regexp to find url that starts by anything but a slash
- sfEzcWorkflowPlugin: fixed processing of constructor params
- swToolboxPlugin: added cross link application routing features
- sfExtjs3Plugin: created new Extjs3 classes than can render themselves as Extjs objects, added new functional sfExtjs3 classes that can render themselves recursively as Javascript, added unit-tests for new Extjs3 Classes, added configure method to initialise after construction
- sfTidyPlugin: bugfix in tidy_xml function
- sfEasyDebugPlugin: improved support for test environement and less bugs
- csDoctrineSlideshowPlugin: added many-to-many relationship, sortable behavior, and renderers
New symfony powered websites
- tuProgramador: (Spanish) diseño web en Valencia
- Lappiz: (English, Portuguese) collaborative web tool that allows students
- dieonlinepsychologen.de: (Deutsch) team of experienced psychologists offering telephonic and online advice
- Aplus.net: (English) corporate web presence for a major US-based web-hosting/dedicated server solutions provider
- yzalis.com: (French) video training for Miscrosoft softwares
- yzalis-business.com: (French) video training for Microsoft softwares optimised for company usage
- aquaterra-evenement.com: (French) happening agency located in south of France
- PMSIpilot: (French) software editor for hospitals
- Veevid: (English) the first open source video management platform in the world, powered by Symfony
They talked about us
Be trained by symfony experts
- Apr 22 Paris - Apr 22 San Francisco - May 27 Paris - Jun 24 Paris - Jul 22 Paris
Fri, 2009-05-15 15:08
Some time ago, I have introduced the new "Symfony Components"
project. It is a sub-project of Symfony that aims to give more importance to some of the great libraries we have developed for Symfony.
Until now, the only evidence of their existence was the dedicated Subversion repository,
and the Git mirror. The following components have already been released: YAML, Dependency Injection, and Event Dispatcher.
And more will come soon.
Today, I am happy to announce that the Symfony Components now have
their dedicated website.
Each component has its own section with its documentation, API,
instructions to install and use it, and how to contribute back. For now, we
have worked on the YAML website as an example, but we are also already working on the
next ones. Expect most of them to be available for the
Symfony Live conference.
Life is too short to be serious. So, we decided that the component website
should be a bit more fun than the symfony website. That's why each component
has its own animal, representing the component.
We are very excited about the Symfony Component project, and we hope you will
find new ways of using these standalone libraries outside your symfony
projects.
Be trained by symfony experts
- Apr 22 Paris - Apr 22 San Francisco - May 27 Paris - Jun 24 Paris - Jul 22 Paris
|