HOBALL 筆記簿

October 31, 2008

PHP *_once vs require/include

Filed under: PHP — Tags: , , , , — hoball @ 4:08 pm

There are criticisms that require_once/include_once are slow. To speed up them, I find this solution from http://www.php.net/require_once

antoine dot pouch at mcgill dot ca
10-Mar-2006 11:13

require_once (and include_once for that matters) is slow.
Furthermore, if you plan on using unit tests and mock objects (i.e. including mock classes before the real ones are included in the class you want to test), it will not work as require() loads a file and not a class.

To bypass that, and gain speed, I use :

<?php
class_exists(‘myClass’) || require(‘path/to/myClass.class.php’);
?>

I tried to time 100 require_once on the same file and it took the script 0.0026 seconds to run, whereas with my method it took only 0.00054 seconds. 4 times faster ! OK, my method of testing is quite empirical and YMMV but the bonus is the ability to use mock objects in your unit tests.

Reference: http://www.php.net/manual/en/language.operators.logical.php

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: