DZone.com: Q&A with Jason Gilmore: The Zend Framework
March 10th, 2010
In this second part of a four-part series, I rebuild the example application developed in the previous tutorial. As you'll recall, it used a protected constructor to prevent the instantiation of the base array iterator class. In this case, a better result will be achieved by declaring the iterator abstract; still, the example demonstrates a simple utilization of a restrictive constructor in a concrete situation.
- Unquestionably, the introduction of a more robust object model in PHP 5 has provided developers with additional features that allow them to build efficient and thorough object-oriented applications without the need to appeal to the ugly programming hacks used frequently in the bad old days of PHP ...
- Unquestionably, the introduction of a more robust object model in PHP 5 has provided developers with additional features that allow them to build efficient and thorough object-oriented applications without the need to appeal to the ugly programming hacks used frequently in the bad old days of PHP ...
The Reflection API: Working with Reflected Methods
March 8th, 2010
This third part of a seven-part series explores the methods of the PHP Reflection API. You will learn how to take advantage of their functionality to retrieve useful information about the methods defined by a reflected class.
- One of today's most powerful approaches for retrieving information about the internal structure of classes and interfaces in PHP 5 is via the language's native reflection API. What's more, not only does this API comes packaged with a huge variety of methods that let developers perform all sorts of ...
- One of today's most powerful approaches for retrieving information about the internal structure of classes and interfaces in PHP 5 is via the language's native reflection API. What's more, not only does this API comes packaged with a huge variety of methods that let developers perform all sorts of ...
A week of symfony #166 (1->7 March 2010)
March 7th, 2010
Symfony 2 development got a boost this week with lots of chagesets, mostly related with the upcoming Doctrine 2 bundle.
Development mailing list
- Discussions about Eclipse Plugin for Symfony 2
Development highlights
Symfony 1.X branch:
- r28347: [1.2, 1.3, 1.4] removed cookies from Response objects serialization as it does not make any sense and can cause weird behaviors
- r28348: [1.3, 1.4] added a check for the php_posix extension as some distrib disable it
- r28365: [1.3, 1.4] added a way to change the default max forward in the controller for edge cases
- r28366: [1.3, 1.4] fixed sfGeneratorConfigHandler.class.php doesn't work with Windows path
Symfony 2.X branch:
- 3671..e0a4: [DependencyInjection] made a small performance enhancement (no need to lowercase three times the same)
- 0c3a..c731: [DoctrineBundle] cloned cache driver service for each usage so we can set a prefix to avoid caching conflicts
- 165b..fb76: [Console] added hasOption and hasArgument to Input
- b3d8..660f: [Symfony] added isBooted() method so that I can pass an existing kernel to a Console application
- 1a45..f5a3: [DoctrineBundle] enhanced the Doctrine 2 integration further to better handle multiple connections/entity managers
- 85ed..8970: [DoctrineBundle] made mapping information more flexible to allow different metadata mapping files for each bundle
- 1be4..87e7: [DoctrineBundle] added doctrine:import-mapping command to allow you to easily import the mapping information from an existing database connection to a bundle
- 2db0..f579: [DoctrineBundle] Fixes for building when you have multiple bundles which mixes mapping information types
- 6ead..a392: [DoctrineBundle, WebBundle] enhanced API for retrieving database connections and entity managers from controllers to allow for specifying the name of the connection or entity manager
- 42ad..41d1: [DoctrineBundle] improvements for building entities and getting started
- 47ae..d3eb: [DoctrineBundle] integrated the new Doctrine 2.0 entity alias feature for the query language
- 3fbe..bc81: [DoctrineBundle] removed the need to pass the container to the extension (which is dangerous)
- 2e42..5aba: [ProfiledBundle] moved debug tools from WebBundle to ProfilerBundle
- 17d4..80bb: [DependencyInjection] stored references to shared services as soon as possible to avoid circular references on legal code
- e811..9ec2: [OutputEscaper] renamed Safe to SafeDecorator
- 4505..14f4: [ProfilerBundle] fixed storage read() method and unpack/pack data to avoid weird character in the data stream
- 8ed1..2311: [DoctrineBundle] fixed alias support to be in sync with the latest version of Doctrine
sfDoctrinePlugin:
- r28353: [1.3, 1.4] fixed escaping of Doctrine query parameters in WDT
sfPropelPlugin:
- r28393: [1.2, 1.3] removed unneeded code (which breaks the separation of concerns)
Development digest: 90 changesets, 18 bugs reported, 16 bugs fixed, 2 enhancements suggested, 3 enhancements closed, 8 documentation defects reported, 25 documentation defects fixed, and 16 documentation edits.
Documentation
- Updated symfony and TextMate, and How to Sort Admin Generator List By Foreign Table Name pages
- Updated symfony 1.4 reference:
- chapter 7: fixed default value
- chapter 10: fixed description of some settings and added an example
- Cristiano G. Betta (cristiano [at] cgbdigital [dot] com): Developer, UX designer and devoted geek from London, UK. Experience with Facebook and other social media development in Symfony and Kohana. Likes to tinker with data visualisations and craves a good user experience.
Plugins
- New plugins
- upPropelLockTableBehaviorPlugin: add methods on Propel objects to set locks.
- upPropelActAsTracableBehaviorPlugin: adds two fields on Propel objects to save its last edition.
- sfDoctrineDynamicFormRelationsPlugin: (no description)
- sfKrumoPlugin: uses Krumo (http://krumo.sourceforge.net/) to implement a nice replacement for print_r() and var_dump() PHP functions.
- sfHtml5FormPlugin: provides you with widgets and validators to use the new HTML5 input types for forms and filters.
- sfG1mrEditorPlugin: allows the use of Yahoo Rich Text Editor with sending pictures/uploads to text, on the forms.
- sfG1mrToolsPlugin: common tools of G1mr's projects.
- sfEasyAuthPlugin: created a compact log in form for sidebars, added a method to the Security User to retrieve the url users should be redirected to after logging in, profiles are now correctly retrieved by doctrine
- swBaseApplicationPlugin: added colorbox and jquery 1.4.2, removed jNice.css reference
- csDoctrineCommentsPlugin: created the initial directory structure
- sfDoctrineDynamicFormRelationsPlugin: initial import, updated README
- fcDbBackupPlugin: first commit, cleaned up syntax
- sfTrafficCMSPlugin: unbroken the updating of embedded models, fixed the bug with deleting embedded models and not getting an error message about it
- sfDoctrineJCroppablePlugin: fixed fatal bug when uploading new image
- sfExtjsThemePlugin: added edit_combo for non foreign edit fields, fixed the jsonCombo action to not show is null marker for edit combos, fixed a notice in jsonCombo with edit combos
- sfDoctrineSimpleForumPlugin: cleaned schema.yml (removed some useless 'performance enhancers'), updated and cleaned fixtures.yml, updated CSS and added some images, created admin features such as lock topic, sticky topic, delete, etc. (integrated into sfGuard permissions group of sf_doctrine_simple_forum_moderator_group), updated feed, updated routing.yml, tidied templates
- dcPropelReportsPlugin: updated event handling
- sfDoctrine2Plugin: updated form class to use D2 style reflection instead of ActiveEntity, moved isNew check out of constructor for better performance
- sfEasyGMapPlugin: added reverse geocoding an fix some bugs
- sfAmfPlugin: updated typo in amfBrowser link, updated secure flag for symfony 1.3-1-4 versions
- mgI18nPlugin: removed Doctrine dependency, merged lib, ajax and application tabs to one tab named 'Files', added a new database tab, the user can now lookup the database for messages, the import task now update target if the target is already in the database, fixed utf8 errors
- swCrossLinkApplicationPlugin: created the 1.2 and 1.3 branches, compile method is now public
- sfSympalPlugin: allowing for a lot rendering method to also be on the content type, setting proper project config instance when context is loaded, cleaned up some config options related to slot types, moved icons into CSS, rearranged the order of where we look for the getXXXSlotValue method when rendering a slot, changed the unpublished slot value to something more helpful
- sfSympalAdminPlugin: changed admin menu labels
- sfSympalEditorPlugin: re-established an "edit" mode with save and cancel buttons that save all content slots
- apostropheBlogPlugin: put titles on category admin generator pages, you can now properly attach media to events again, changes to index view of blog engine, created rss feeds for all blog filters, csrf and 1.4 compatibility fix for admin theme, changes to post and upcoming events partials
- apostrophePlugin: initial commit of minify module, made some private methods protected for easier overrides, renamed to lib/base to lib/action for consistency with the symfony standard, fixed apostophe logo in admin bar to link to the proper controller, added autocomplete plugin to assets because the Rich Time Picker uses autocomplete, added a new PDF slot (the default setting shows a basic PDF icon on the left, with the title, description and a download link on the right), significant progress on I18N, search markup was invalid with a strict doctype, wrapped aSlideshowSlot JS in CDATA tag to help with Strict DocType validation
- apostropheFormBuilderPlugin: slot type for rendering charts from form data
- New gallery: (English, and Russian) website of art exhibition called "New gallery" located in Kiev
They talked about us
- PHP Conference UK 2010
- Doctrine_Query_Extra: Extending the Doctrine Query Object
- Migration d’un gros projet symfony de la version 1.2 à 1.4
- Философия Symfony 2
- Symfony newsletter using Swift mailer
- Что новенького в Symfony 2?
- Job Queue in Symfony
- symfony: sfDoctrineGuardPlugin and customizing user profile
- OpenPNE3プラグイン開発勉強会、の復習
- Day 1 of learning Symfony
- О «symfony best practices»
- symfony 404 cache error in production
- Are you a plugin developer? Then sign up to receive donations from this site
- Apprentissage de la framework Symfony
- My Favorite Symfony Resources
- Ordenar por campos virtuales con el AdminGenerator de symfony
- Symfony 2.0 – Notes
- Reusing a edit/create form
- Accessing Symfony 1.0 Database attributes
- How to add a custom filter for the admin listing
- Symfony: Detect Which Version is Installed
- Symfony 2 wird die Welt retten aber was soll ich bis dahin machen? Teil 3/3 – Die Unterschiede
- Для экспертов в Symfony
- Static methods vs singletons: choose neither
- Symfony 2のアプリケーション構成を読む
- Symfony reloaded or same old frameworks speed holy wars
- symfony1.4(1.3)で簡単に確認画面を作るアドミンジェネレータ
- symfonyで sfWidgetFormInputCheckboxの隣にlabelを出力する
- Windows下Symfony的安装
- Symfony Live 2010
Ben Scholzen’s Blog: Modern Application Design – Part 1
March 6th, 2010
Matthew Weier O’Phinney’s Blog: Responding to Different Content Types in RESTful ZF Apps
March 5th, 2010
Continuing on from his previous articles on working with REST in Zend Framework applications (and making the endpoints for a web service) Matthew Weier O'Phinney has a new tutorial with the next logical step in the series, automatically responding to different content types in your application based on the content-type the client sends.
Do you queue? Introduction to the Zend Server Job Queue
March 5th, 2010
There has been a lot of talk over the past several years about the difference between performance and scalability. Never mind that the difference between the two will probably not really affect most developers. Never mind that the “difference between performance and scalability” argument is often used when someone’s code performs poorly and their best argument is “Yeah, but my code scales”. Yeah, sure it does.
Creating Scalable Vector Graphs with PHP
March 5th, 2010
The Scalable Vector Graphics (SVG) specification provides a way to programmatically generate images using vector paths expressed in XML. This makes it ideal for generating images that need to be scaled to different resolutions without losing fidelity.
A common requirement in Web applications is to dynamically generate charts and graphs from numerical data. If these graphs are expressed using SVG, they can be blown up to different sizes without any deterioration in quality, and they are also typically smaller in size as compared to their GIF or JPEG counterparts. With this in mind, this article examines various open source PHP libraries that allow you to add SVG charting capabilities to your PHP application.
