Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Will including unnecessary php files slow down website?

The question might prompt some people to say a definitive YES or NO almost immediately, but please read on...

I have a simple website where there are 30 php pages (each has some php server side code + HTML/CSS etc...). No complicated hierarchy, nothing. Just 30 pages.

I also have a set of purely back-end php files - the ones that have code for saving stuff to database, doing authentication, sending emails, processing orders and the like. These will be reused by those 30 content-pages.

I have a master php file to which I send a parameter. This specifies which one of those 30 files is needed and it includes the appropriate content-page. But each one of those may require a variable number of back-end files to be included. For example one content page may require nothing from back-end, while another might need the database code, while something else might need the emailer, database and the authentication code etc...

I guess whatever back-end page is required, can be included in the appropriate content page, but one small change in the path and I have to edit tens of files. It will be too cumbersome to check which content page is requested (switch-case type of thing) and include the appropriate back-end files, in the master php file. Again, I have to make many changes if a single path changes.

Being lazy, I included ALL back-end files inthe master file so that no content page can request something that is not included.

First question - is this a good practice? if it is done by anyone at all.

Second, will there be a performance problem or any kind of problem due to me including all the back-end files regardless of whether they are needed?

EDIT

The website gets anywhere between 3000 - 4000 visits a day.

like image 571
thedeveloper Avatar asked Feb 04 '10 08:02

thedeveloper


3 Answers

You should benchmark. Time the execution of the same page with different includes. But I guess it won't make much difference with 30 files.

But you can save yourself the time and just enable APC in the php.ini (it is a PECL extension, so you need to install it). It will cache the parsed content of your files, which will speed things up significantly.

BTW: There is nothing wrong with laziness, it's even a virtue ;)

like image 60
soulmerge Avatar answered Sep 29 '22 21:09

soulmerge


If your site is object-oriented I'd recommend using auto-loading (http://php.net/manual/en/language.oop5.autoload.php).

This uses a magic method (__autoload) to look for a class when needed (it's lazy, just like you!), so if a particular page doesn't need all the classes, it doesn't have to get them!

Again, though, this depends on if it is object-oriented or not...

like image 26
Dan Beam Avatar answered Sep 29 '22 22:09

Dan Beam


It will slow down your site, though probably not by a noticable amount. It doesn't seem like a healthy way to organize your application, though; I'd rethink it. Try to separate the application logic (eg. most of the server-side code) from the presentation layer (eg. the HTML/CSS).

like image 36
Johannes Gorset Avatar answered Sep 29 '22 22:09

Johannes Gorset