News Feed

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

Jani Hartikainen's Blog: Practical uses for reflection

Community News: Finally, Phorum 5.2 has made it to stable!

Jim Wynia's Blog: Tracking Accomplishments with PHP, Google Calendar and Zend Framework

Utah PHP Users Group: Model-view-controller frameworks

Rob Allen's Blog: Access view variables in another view model

Community Events

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

community framework series api application project podcast laravel composer yii2 programming symfony list php7 part2 interview example language opinion introduction

All content copyright, 2015 :: - Powered by the Solar PHP Framework