简体   繁体   中英

Using php namespaces properly

I am trying to figure out how to use the namespace in php. I have been reading about how to use it and for some reason I can not get it to work. I have two files one which I have stored in Applications/Database/Classes file name is DatabaseConnection.php and the other in the root directory called DB.php inside the DatabaseConnection.php file I have the following code:

<?php
    function hello()
    {
        echo "hello";
    }
?>

This is the DB.php file contents:

<?php
namespace Applications\Database\Classes;
ini_set('display_errors', true);
hello();
?>

Maybe I am completely missing how to use it properly but if I set a namespace is that the same as using include or require ? I might be completely misunderstanding how to use it. I am new to OOP and have never heard of namespaces until I started trying to learn OOP? Can someone point out what I did wrong.

Namespaces are for organizing your code in so that you can divide components up and help with the readability. For example if I have a class Pittbull and another Dashund I can place them into a namespace like so for organization:

Animals.Dogs.Pittbull
Animals.Dogs.Dashund

This also helps with potential collisions like the below:

Animals.Dogs.Misc
Animals.Cats.Misc

The Misc class exists twice in this instance, but instead of there being a conflict of which Misc to use, you can use the same class name for both classes (and have different properties and methods inside of them) and not have a conflict of which one you want to use.

The require keyword is a completely different concept and is used to load actual files into the executing script.

Instruction how to use autoloading in PHP (PSR-0):
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM