PHP Function / Class
Should PHP Functions / Classes be used to create html script or
should it primarily be used to generate and manipulate data via php and or a database.
Generally, I create functions and classes for commonly utilized code... but not single use code.
For example: generating a list of States... could be used in different parts of an applications.
But - displaying a list of States would might only be used in 1 part of an application.
With other languages... I would create an object to retrieve the associated data and let a non-function / class display the data.
To use a CSS equivelent... CSS allows you to remove the design layer from the presentation layer.
I hope I made this question understandable
It seems people are viewing the question and don't know the answer or don't understand the question.
So please let me expound on my question.
Please bear in mind.. I an C# developer - and a Cold Fusion developer
transitioning into PHP OO. I know PHP non-OO fairly well
- but PHP OO is still NEW to me. And I'm having some difficulties understand how PHP does OO.
I have an object: oState.
with 4 methods:
getStates, getCities, displayStates, displayCities
getStates - queries MySql to retrieve a list of States
getCities - queries MySql to retrieve a list of Cities associated to the specific State.
displayStates - simply loops through the query using php, and creates html code to display the resulting data into an html select.
--- the select uses JS to hide / show specific DIVs as generated from displayCities (below).
displayCities - simply loops through the query using php, and creates html code to display the resulting data... for the requested the State
--- cities are displayed in DIVs.. and hidden or shown via an html select using JS (above)
The problem I have is this... the methods displayStates and displayCities... really only creates html output.
In other languages - I've always placed this "this type of code" in a parent script ie: index.php... instead of inside a class.
A friend of mine... says (with PHP OO... because displayStates and displayCities "are associated" with my "general concept" I have called "Locations"...
all code related to "States" and "Cities" should be "grouped into a Location Object".
The problem I have with this is... I've always used objects to retrieve and manipulate data - not to display / generate html code.
The parent script would display / generate html code by cycling / looping through the resulting data / query.
I'm trying to understand - which is "better or more proper" way of using PHP OO ?
Should all or most code "related to a class" to be placed in 1 object file... even if it's related to design /data and presentation
or like CSS... should there be a separation of design and presentation.
With CSS - design is the css script - presentation would be html or php.
With PHP OO... data or value sets / puts would be class... and presentation would be php.
Thanks again. I do hope I made this understandable and didn't ramble.
Probably most of the people who view a post are either people searching for answers to their own questions, or else aren't even "people" (e.g. search bots). Besides, it's Saturday morning here in the US. ;)
Originally Posted by Revolution
Anyway, for larger tasks (for some undefined value of "larger") I use a Model/View/Controller approach, usually using a framework such as CodeIgniter. In that case, pretty much everything goes into classes that has to do with application logic and data. All HTML goes into the View, which should be just concerned with the user interface. However, I may have support classes to handle typical display tasks.
As projects/tasks get smaller and more likely to be one-off/throw-away things that won't require maintenance and are unlikely to grow into larger applications, I'm more likely to go with more procedural code. However, working with classes/objects is a good way to help me organize my design and logic, and it definitely makes code maintenance easier down the line.
Anyway, I'd suggest getting your hands on a copy of [i]PHP Objects, Patterns, and Practice" by Matt Zandstra. It did a lot to help me think in an OO manner, and understand how to do so with PHP.