Results 1 to 3 of 3

Thread: PHP Function / Class

  1. #1
    Join Date
    Aug 2006

    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

  2. #2
    Join Date
    Aug 2006
    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.

  3. #3
    Join Date
    Aug 2004
    Quote Originally Posted by Revolution View Post
    It seems people are viewing the question and don't know the answer or don't understand the question.
    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.

    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.
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.13600 seconds
  • Memory Usage 2,859KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (3)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates