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.
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.
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:
__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.