如何在php中加载类

I need to understand how to load classes in php. I want to access classes methods by instantiate the class only with its name, for example:

$foo = new Foo();
$foo->method();

And not like this:

$foo = new \Class\Bar\Foo();

I'm in a Symfony 2.7 environment. Thanks in advance!

EDIT My bad, I should have specified that I'd like to use classes like this in the whole project, not only in a few files.

You should use those classes (i.e. import them) like:

use strrife\MyBundle\Entity as Entity;

...

$e = new Entity();

The official docs can be found here.

PS

If you're using some IDE (for example, PHPStorm which personally I highly recommend), then, when you type Entity and this class wasn't imported yet, it gives you a list of options to import that class from.

EDIT

You shouldn't do that.

Importing the classes like that in the entire project is actually a bad idea because that might cause naming conflicts (and probably will if you'd like to do that for Symfony classes).

As a workaround for your project classes you can add a few lines to composer.json specifying the autoload paths to all your project folders.

You can also:

  • put all your entities to one single folder (very bad)
  • or write a custom __autoload() function that would iterate through files and folders searching for your class (docs), but it'd bring the same problems + some performance issues.

But I highly discourage you from doing that because... well, namespaces bring order and structure and you're likely to end up with class redeclarations.