PHP Namespaces
Namespaces prevent class conflicts.
PocketMine heavily relies on namespaces.
Without namespaces:
class Player {}
class Player {}
Fatal error.
Namespace Example
namespace zyro\economy;
Class Example
namespace zyro\player;
class User {
}
Using Classes
use zyro\player\User;
Aliases
use pocketmine\player\Player
as PMPlayer;
Fully Qualified Name
\pocketmine\player\Player
Folder Structure
src/
└── zyro/
└── Main.php
PocketMine Example
namespace zyro;
use pocketmine\plugin\PluginBase;
PSR-4
Namespace:
zyro\utils
Folder:
src/zyro/utils
Best Practices
✅ One namespace per file.
✅ Match folders.
✅ Use imports.
Next Chapter
➡ Composer