I have started building my code library since PHP 4. I have used require_once
to import classes. Now with PHP 5.3 I have met defining namespaces and importing them.
I would like to change my source files to use importing (use
statement) instead of using require_once
. Is this the right decision, I am not sure.
I guess it would be easy. Defining namespace at the top of class files and doing a search & replace on other files that use them (replace require_once
with use
). On practice what may go wrong?
And will there be performance improvement? On including file it is obvious how PHP finds the file. But on importing namespaces it is not that obvious. Is there a performance loss on searching namespaces and indexing them by PHP?
use
and require_once
are completely different things. use
is not doing any file importing at all. use
is just making your life easier. Instead of writing Full\Path\To\Class
every time, you can do
use Full\Path\To\Class
$bar = new Class();
Your are still responsible to include the right files.
Instead of loading all the files by hand, you could rely on PHP auto class loading.
You can use Composer or Frameworks like Symfony 2 or Zend2 which are handling all the autoloading stuff for you.
Migrating existing code to use autoloading and use
statements instead of include_once
may be very time consuming. There's most likely no search and replace solution.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With