Symfony 1.3 completed this week another milestone with its beta 1 version release. Meanwhile, it was announced that Symfony 2.0 will finally require PHP 5.3 and the first consequences of this decision were shown at the PHPBarcelona conference. Lastly, symfony started a new effort to improve routing performance, defining several tests and patches.
Development mailing list
- Discussions about continuing support of symfony 1.2 code, routing with sf1.3, ICU supplemental data in symfony i18n, admin generator feature request and question about 'symfony' propel behavior
Development highlights
- r23344: [1.2, 1.3] made DateHelperTest more robust by using a single timestamp rather than letting date() obtain them on their own
- r23355: [1.3] fixed possible creation of inconsistent new lines in class manipulator
- r23376: [1.2, 1.3] added a check in _call_component() to avoid unnecessary unescaping when output escaping is disabled in the settings
- r23378: [1.3] added check for target directory before creating configuration cache in project:optimize, moved fs calls to filesystem object
- r23380: [1.3] bundled DTDs to avoid issuing requests to w3.org
- r23382: [1.3] added support for XSD and relaxNG to response validation
- r23397: updated icu-converter for newest symfony version and used icu version 4.2.1
- r23398, r23400: [1.3] updated icu locale data to version 4.2.1
- r23405: [lime] fixed PHPT tests
- r23430: [1.3] added hooks allowing to inject readymade config into routing
- r23432: [routing_performance] initial import of routing performance test and patch alternatives
- r23436: [1.2, 1.3] fixed count() on escaped objects that implements the Countable interface
- r23439: [1.2, 1.3] fixed project:deploy task documentation
- r23440: [routing_performance] modified test suite to run only one patch version and made 1.3 a patch version
- r23446: [routing_performance] added a few more routes and parse/generate requests
- r23486: [routing_performance] introduced cycle parameter to increase the number of calls to routing are made. added loop parameter to route queries to query more different results. added duplicate lookups to take advantage of possible caching.
- sfDoctrinePlugin:
- sfPropelPlugin:
- r23346: [1.3] fixed bootstrapping propel unit tests with correct include path
- r23357: [1.3] tagged custom propel builders as deprecated
- r23358: [1.3] fixed hook names sent to sfMixer from base peer classes
- r23394: [1.3] fixed sfMixer hooks in propel peer classes
- r23401: [1.3] added caching of getResults if we have something cachable
- ...and many other changes
Development digest: 158 changesets, 50 bugs reported, 22 bugs fixed, 9 enhancements suggested, 4 enhancements closed, 6 documentation defects reported, and 13 documentation edits.
Documentation
- Updated Russian translation of Jobeet tutorial
New symfony bloggers
- denderello's Blog (feed) (English)
- Melimato.com (feed) (English)
Plugins
- New plugins
- sfIntranetAuthenticationPlugin: allows you to use the sfDoctrineGuardPlugin remember cookie to log in automatically to multiple applications hosted on separate subdomains. It also allows you to centralize your user information.
- sfTextToImagePlugin: allows to use custom fonts in your websites by converting a text into an image. It is a full php non javascript solution and uses a truetype font.
- sfMediaManagerPlugin: (no description)
- prestaPaypalPlugin: allows to easily use Paypal API. This plugin supports express checkout, direct payment and Website payment standard.
- sfDojoPlugin: neatly integrates the awesome dojo toolkit with its built system into symfony.
- TraktPlugin: sends symfony to the Trakt Log Server.
- dcStatefulSecurityPlugin: bugfix and readme update, improved documentation
- diemPlugin:
- added thread_launcher to the service container. It allows to run heavy manipulations (like page synchronization) in another php processus
- exploded the update_project action into 3 parts to avoid memory problems
- added ajax messages when updating the project
- huge performance improvement and 3x less memory usage in page_synchronizer and seo_synchronizer (use now pdo instead of doctrine when possible)
- added sfImageTransform default configuration
- selected usefull classes of sfImageTransform and removed the other ones because the make the autoloader too big
- improved routing speed and memory usage in admin: each module now has only one route instead of 7
- fixed image size bug when image can not be scaled
- made page_tree_watcher_service extend dmConfigurable and added a use_thread option (can be set to auto)
- made possible to inject a module manager in a record
- improved automatic seo defaults
- improved all logs speed and usability
- added dmDb::pdo method to build raw pdo queries
- made possible to change dmContext class in dm::createContext
- removed dmContext dependency from dmModuleManagerConfigHandler
- added dmConfig::setCulture method to allow dmConfig to work without a context instance
- fixed dmString::slugify for french culture and improved its performances
- added dmString::convertBytes method to convert a shorthand byte value from a PHP configuration directive to an integer value
- added dmBaseActions::getBackUrl method to avoid redirections cycles
- reduced max size in log default options
- fixed many routing bugs due to recent admin routing refactoring
- improved accuracy & performances in log chart
- moved tons of code from generated admin classes to extended classes: admin is more DRY, lighter and more extensible
- removed deprecated classes dmDoctrineConfiguration, Doctrine_Cache_Dm, dmDoctrineTaggable
- removed doctrine_config service from service container
- made bread_crumb admin service shared and added an event connection to admin.edit_object to display current object name
- added admin.edit_object event notification to admin generated modules
- improved admin sent mails module interface
- added dmProjectConfiguration::configureDoctrineCache method wich is run when project.yml configuration is loaded
- improved performance on dmConfig::load by using pdo statement
- simplified dmDoctrineQuery::dmCache method
- removed automatic doctrine cache usage from dmDoctrineRecord queries
- added dmMarkdown::brutalToText method wich will be used by seo_synchronizer
- fixed bug in dmPageTreeWatcher use non-existant attribute moduleManager
- improved service container performances by using dmString::camelize in hasService and getService methods
- improved performance on dmTheme initialization
- added static cache option to widget types and module actions. It makes the cache non-contextual
- refactored dmWidgetBaseView for cleaner interface and faster execution
- added built-in cache in dmWidgetBaseView
- improved performances on front init filter when guessing the page from an ajax call
- refactored the automatic pages seo generator
- added dmDoctrineTable::getSeoColumns overridable method
- added jquery ui accordion assets
- made cache_cleaner service notify a dm.cache.clear_template event
- provided service container to doctrine tables
- fixed dmForm::renderSubmitTag input and dmForm::open method (defaults to POST)
- improved performances on front i18n by loading diem translations only if the user has edition credentials
- removed useless serialization on i18n message source cache methods
- made event_log service listen dm.cache.clear_template
- overrided PluginDmProfileTable::getSeoColumns to provide virtual access to username and email
- made page_tree_watcher synchronize seo when a DmAutoSeo object has been modified
- improved error handling when updated project with threads
- removed deprecated dm_xhr query parameter from jQuery ajax calls
- refactored seo_synchronizer service and added a validatePattern method
- added dmBaseServiceContainer::reload method to create a new shared service when its parameters has been changed
- added a symfony installer with a great command line configuration wizard
- renamed project.yml to config.yml
- removed deprecated dmActionLog module
- cleaned and completed skeleton
- removed deprecated common filter from filter.yml files
- fixed bug on dmLogChart when site is new
- cleaned dmAdminApplicationConfiguration
- improved chart interface and added usefull error messages for disabled charts
- removed automatic lazy_cache_key configuration in dmCorePluginConfiguration
- added isModelSafe method in the cache_cleaner service to ignore some models when deciding if the template cache must be cleared
- added checkProjectIsSetup in dmContext
- fixed dmRequestLog when log is new
- fixed uri when no script name on dmRequestLogEntry
- improved dmServerCheck standalone class
- added the dm:server-check task wich uses dmServerCheck
- added the dm:permissions and dm:publish-assets tasks
- fixed dm:setup when project has no models
- disabled logging during functional tests
- added DIEM_VERSION constant
- changed front routing class to dmFrontRouting in front factories
- added the project skeleton
- removed deprecated dmMediaTools static class by dispatching to services its responsabilities
- disabled log_chart service on the very beginning of the site's life
- added getMediaUrl method to admin routing
- simplified layout_helper services dependencies
- removed useless relationAssociation controller
- improved and cleaned relationForeign partial
- made service container listen the context.change_action and store the current module and action
- removed action_stack service from service container
- made search_index and helper service do not depend on the user
- made skeleton application settings more precise
- added getRouting method to dmBaseActions
- made cache_manager service notify a task.cache.clear event for compatibility with other plugins (like sfSuperCachePlugin)
- improved dmFileLog buffer system and removed deprecated method getFilteredEntries
- added filesystem dependency to front code generators
- tracked and destroyed nearly all sfContext::getInstance call (or similar bad static practice) in all codebase
- removed deprecated methods in dmHelper and fixed coding style in the others
- simplified widget_type_manager service dependencies
- added getPage method to abstract class dmWidgetProjectForm and used it in inherited classes to remove sfContext::getInstance calls
- improved the setup task with step by step doctrine migration wizard
- removed deprecated classes dmDoctrineMigrationBase & dmGenerateMigrationsDiff
- overriden sfDoctrineForm(Filter)Generator filterModels method to unset weird ToPrfxModels? generated by doctrine migrations
- improved all tasks output
- removed wrong assets symlink creation on publish assets task
- added dmMigrate task and dmDoctrineBuildFiltersTask
- sfEasyAuthPlugin: edited the generator to only show relevant fields, the remember_key field is now indexed not unique, modified the processForm method to fix a redirection bug where symfony was generating invalid urls, fixed an issue redirecting users after the auto-log in filter
- mgDynamicEmbeddedFormsPlugin: fixed a delete bug
- omCrossAppUrlPlugin: fixed helper
- sfPhpunitPlugin: fixed cannot run single test instead of it runs all test in the dir
- pkContextCMSPlugin: packaging, minor documentation tweaks, updated layout that loads search properly as a partial, merges completed and conflics resolved, updated navigation, added getTreeInfo() method and sample pk_context_cms_navtree() helper, implemented getAccordionInfo()
- sfDoctrineApplyPlugin: added task to clean up usernames and full names containing potential XSS and CSRF nonsense, don't display the rejected password as part of the error message shown when the password is too short
- sfPropelActAsNestedSetPlugin: fully migrate plugin to symfony 1.2 and release 0.9.2
- sfPhpExcelPlugin: updated externals of phpexcel
- sfTaskLoggerPlugin: fixed database schemas
- sfUnobstrusiveWidgetPlugin: updated js template for autocompleter transformer (bug ie6), implemented Countable PHP 5 interface on sfUoWidgetTable class
- sfMapFishPlugin: fixed incorrect type cast & prepare 1.0.3 release
- pkMediaPlugin: added a link next to media search to reset search criteria, media browser partial now has before and after partials as an alternative to overriding the whole thing, the current search can now be removed from the active search criteria without resorting to a breadcrumb trail
- sfDoctrineJCroppablePlugin: made field ids non-camelcase, changed embedded form prefix from 'embedded' to 'embedded_'
- pkToolkitPlugin: create-task-user task creates a locked superadmin account for use by tasks such as cron jobs when the model layer of the application checks privileges for particular objects based on user identity
- sfDoctrineActAsRattablePlugin: changes some doctrine code and now it's compatible with doctrine 1.0
- sfDoctrineGuardExtraPlugin: added schema.yml for email_address field
- boote-schiffe-yachten.de: (Deutsch) classified ads site dedicated to ships, boats and yachts
- A5 Solutions: (English, and Portuguese) a company focused on integrating communication solutions to meet the most complex environments
- Tarif-Angebote: (Deutsch) mobile phone plans comparator
- Prepaidtarife.net: (Deutsch) prepaid phone rates comparator
- The E-Society: (English) a simple online social network for the Entrepreneur Society at the Darden Business School at UVA
- MyBailiwick: (English) a question and answer site
- Éditions de l'Envolée: (French) the client portal lets user download their electronic books
- Bodegas Muriel: (English, and Spanish) web oficial de Bodegas Muriel, productoras de vino D.O. La Rioja
- Leprodupoker: (French) poker rules online learning
They talked about us
- Participez au forum PHP avec Sensio Labs
- Zend/PHP conference sees framework battle royale
- Symfony 1.3 beta 1
- symfony cheat sheet
- Give back some love at Symfony BugHuntDay
- Caching your API calls using symfony's functional call caching
- Sympal: Formularze jako Komponenty
- Forwarding to an action within a filter
- El creador de Symfony estará en la PHP Barcelona 2009
- sfDoctrineGuardPlugin: Récupération de l’id utilisateur
- PHP community news roundup
- Cansei de digitar “php symfony”, agora uso “sf”
- Quick Doctrine NestedSet reference
- Postcrossing symfony-driven site review
- Las novedades de Symfony 2 + PHP 5.3
- Bash Script to create a new symfony project and install optional plugins
- symfony 1.2. Admin Generator mit Datepicker
- First step in small-sized symfony web app - oDesk
- 検索窓のつけ方
- Levantando proyectos symfony existentes con Netbeans 6.8 Xampp + Windows
- Validasi No Telepon menggunakan symfony validator
- Barcelona PHP Conference Day 2 #phpbcn2009
- Symfony, Swift Mailer y Gmail alltogether now
- Once Again SENSIO LABS comes with great things for developers
- PHP Conference 2009. Día 2
- Ajax in Symfony
- symfony partialに渡した変数をエスケープしないで表示したい
- Personalizzare l'aspetto dei form in symfony
- Curso de Symfony en ideateca
- Usando JSON con jQuery en Symfony
- Los comportamientos en Symfony (Behaviors)
- Symfony framework 1.3 BETA ออกแล้ว
- symfony1.3のDoctrineモデルでgetter/setterのPHPDocコメントが生成されるようになった
- Symfony: Gültiger Application-Context in Task
- Symfony ile Doctrine behavior template oluşturma
- symfony如何添加分页?
- Protéger ses formulaires Symfony contre les spams
- NetBeans 6.8 y Symfony
- Rendimiento Symfony = f(ORM)