JohnOP Posted August 9, 2011 Share Posted August 9, 2011 So i have a quick question if someone could be kind enough to shed some light on. Say i have 5 forms on a page and i process them all on that same page at the top if (isset($form1)){ //code } if isset($form2)){ //code } //so on.. That will pile up to alot of php code on one page now. Now i know that only one peice of that code will be run when there respective button is clicked but would the rest of the code slow down the page or cause load even know it cant run untill we click there button, i mean after all the code is still on the page weather its being ran or not. Quote Link to comment Share on other sites More sharing options...
the182guy Posted August 9, 2011 Share Posted August 9, 2011 It won't be a problem to have all the process code together. I would add a hidden input element to each form to give it a name e.g. <input type="hidden" name="form_name" value="contactus" /> Then in your PHP process code I would handle it like if($_SERVER['REQUEST_METHOD'] == 'POST') { $formName = isset($_POST['form_name']) ? $_POST['form_name'] : ''; switch($formName) { case 'contactus': // handle contact form break; case 'search': // handle search form break; default: // unknown form } } If there is a lot of process code then it could be better to create for example a base class form handler, then extend it for each form, to keep the code organised etc. Quote Link to comment Share on other sites More sharing options...
Psycho Posted August 9, 2011 Share Posted August 9, 2011 There should be no significant performance if those lines are not actually being executed. There is always a cost as you add more complexity, but unless the files grew to many megabytes in size you should never see a difference. But, on the other hand I would suggest breaking out the code just for the sake of maintainability and flexibility. Have your five forms submit to the same page, but break the processing code for each form into separate file and use a switch to determine which processing code to include. if (isset($form1)){ include('form1processing.php'); } if isset($form2)){ include('form2processing.php'); } // Etc. That makes your files much more manageable IMHO. I abhor files with tons of code. It makes any modifications very difficult. Quote Link to comment Share on other sites More sharing options...
JohnOP Posted August 9, 2011 Author Share Posted August 9, 2011 Yeah i though that i would use includes for them but then i thought that it would be the same outcome as including the file is basically the same as having the code on the page as it gets included. Quote Link to comment Share on other sites More sharing options...
PFMaBiSmAd Posted August 9, 2011 Share Posted August 9, 2011 Php is a parsed, tokenized, and interpreted language. All the lines of code in your main file will be parsed and tokenized when the page is requested (included/required code is parsed/tokenized/executed when the include/require statement is executed), so yes each line of code that is present will take an amount of time to parse and convert to tokens. During the interpretation/execution phase, each conditional statement will be evaluated when execution reaches that point in the code and if the condition evaluates as false, execution jumps to the end of the conditional block. The statements that are within the conditional block are not executed and don't consume processing time. Quote Link to comment Share on other sites More sharing options...
JohnOP Posted August 9, 2011 Author Share Posted August 9, 2011 Php is a parsed, tokenized, and interpreted language. All the lines of code in your main file will be parsed and tokenized when the page is requested (included/required code is parsed/tokenized/executed when the include/require statement is executed), so yes each line of code that is present will take an amount of time to parse and convert to tokens. During the interpretation/execution phase, each conditional statement will be evaluated when execution reaches that point in the code and if the condition evaluates as false, execution jumps to the end of the conditional block. The statements that are within the conditional block are not executed and don't consume processing time. I see thank you for the information. Quote Link to comment Share on other sites More sharing options...
Psycho Posted August 9, 2011 Share Posted August 9, 2011 Yeah i though that i would use includes for them but then i thought that it would be the same outcome as including the file is basically the same as having the code on the page as it gets included. As PFMaBiSmAd explained, the conditional blocks are not executed unless the condition is true. That means the include files would never be read into memory, except for the ones where the condition is true. But, I think you are really over thinking this. unless you are building a site that will have massive traffic from day one, build it to be logical and functional. The additional time for the parser to read all the code in one page would be inconsequential. But, as I stated above you should break the code out into separate pages just for the fact that it would be more logical and be easier to manage. The fact that the code won't need to be read (unless needed) is an added benefit. You should always take performance into consideration, but don't go overboard. You can spend 10x the effort to squeeze every ounce of performance out of the application and only get 5% increase in performance. That's not to say there aren't some things you should absolutely do and/or not due. The biggest performance issue I see in most scripts posted to this site is where the scripts run queries within loops. You should never do that. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.