News Feed
Sections




News Archive
Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Jani Hartikainen's Blog:
Practical uses for reflection
February 17, 2009 @ 10:22:36

Reflection can be a handy tool when you need it, but how many times have you actually found a use for it in the past few applications you've written? Jani Hartikainen has one suggestion of a place it can be used - form generation.

Most web applications use forms. Forms often represent some model, such as a news post. If the model is simple, writing the form in HTML is not too bad, or we might be able to use a scaffolding feature in our framework. [...] Here's a good use for reflection! Since in models we often have a naming scheme for the data the users would be able to input, we can utilize this knowledge with reflection to generate a list of possible fields in the model, and then generate the form with less typing required from us.

His example looks into the model class and pulls out the "get" functions and, after pulling out the name, adds it to a fields array. This array is then passed out to the display part of the script and looped over to create a text field for each. He expands it a bit to also include checking for "@return" values in docblock comments for the type of form field that should be displayed.

1 comment voice your opinion now!
reflecton api form generation practical suggestion model view


blog comments powered by Disqus

Similar Posts

Brian Swan's Blog: PHP Driver for SQL Server - Request for Feature Feedback

Matt Curry's Blog: One More Tip For Speeding Up CakePHP Apps

Sameer Borate's Blog: Accessing Amazon Product Advertising API

NETTUTS.com: Getting Started With Cake PHP: Part 2

Keith Casey's Blog: My Book Recommendations


Community Events





Don't see your event here?
Let us know!


language composer conference introduction version voicesoftheelephpant release symfony framework interview laravel security community library podcast tool opinion series artisanfiles list

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework